Python PySAL OLS模型:AttributeError:';OLS&x27;对象没有属性';预测';

Python PySAL OLS模型:AttributeError:';OLS&x27;对象没有属性';预测';,python,regression,spatial,predict,pysal,Python,Regression,Spatial,Predict,Pysal,我已经将我的数据分为训练样本和验证样本,并成功地用三种类型的线性模型拟合了我的模型。我不知道如何将模型应用于验证样本以评估适合性。当我尝试将该模型应用于抵制样本时(对不起,我知道这不是一个可复制的示例,但我认为问题非常清楚。我只是为了完整性而将此片段放在这里。请保持温和!): 我收到以下错误消息: AttributeError回溯(最近一次呼叫上次) 在() 8. 9有效=验证。loc[:,x+[“销售金额”]] --->10保持率1=m1。预测(有效) AttributeError:“OLS”

我已经将我的数据分为训练样本和验证样本,并成功地用三种类型的线性模型拟合了我的模型。我不知道如何将模型应用于验证样本以评估适合性。当我尝试将该模型应用于抵制样本时(对不起,我知道这不是一个可复制的示例,但我认为问题非常清楚。我只是为了完整性而将此片段放在这里。请保持温和!):

我收到以下错误消息:

AttributeError回溯(最近一次呼叫上次) 在() 8. 9有效=验证。loc[:,x+[“销售金额”]] --->10保持率1=m1。预测(有效)

AttributeError:“OLS”对象没有属性“predict”`


其他Python OLS回归包有一个“预测”方法,但PySAL似乎没有。我意识到函数系数(Beta)是可用的,并将继续将其直接应用于我的验证数据,但我希望有一个我刚刚错过的简单答案。

如果回答我自己的问题形式不好,我深表歉意,但我确实想出了一个解决方案。我联系了Daniel Arribas Bel,PySAL开发人员之一,他帮助我找到了我想要的结果。请注意,我的PySAL OLS对象名为m1,我的验证数据帧名为“validation”:

m1 = ps.model.spreg.OLS(...)
m1.intercept = m1.betas[0]  # Get the intercept from the betas array
m1.coefficients = m1.betas[1:len(m1.betas)] # Get the coefficients from the betas array
validation['predicted_price'] = m1.intercept + validation.loc[:, x].dot(  m1.coefficients) 


请注意,这是我将用于非空间模型的方法,适用于我在PySAL中构建的KNN模型,对于空间模型,这在技术上可能不完全正确。买主注意。

自行回答您的问题是可以的,尤其是在还没有有效答案的情况下。你甚至可以接受它,尽管你得不到分数:)
m1 = ps.model.spreg.OLS(...)
m1.intercept = m1.betas[0]  # Get the intercept from the betas array
m1.coefficients = m1.betas[1:len(m1.betas)] # Get the coefficients from the betas array
validation['predicted_price'] = m1.intercept + validation.loc[:, x].dot(  m1.coefficients)