问题描述
import numpy as np
import pandas as pd
from scipy import stats
import statsmodels.api as sm
import matplotlib.pyplot as plt
d = {'City': ['Tokyo','Tokyo','Lisbon','Madrid','London','Tokyo'],'Card': ['Visa','Visa','Master Card','Bitcoin','Bitcoin'],'Client Number':[1,2,3,4,5,6,7,8,9,10,11],}
d = pd.DataFrame(data=d).set_index('Client Number')
df = pd.get_dummies(d,prefix='',prefix_sep='')
X = df[['Lisbon','New York','No','Yes']]
Y = df['Total']
X1 = sm.add_constant(X)
reg = sm.OLS(Y,X1).fit()
reg.summary()
我想导入每个变量的系数,以便将模型应用于新数据。我该怎么办?
解决方法
reg.params
包含参数估计。摘要中提供的其他数量可用reg.bse
(标准误差),reg.tvalues
(t统计量)和reg.pvalues
(P值)提供。
全套可用属性可以在文档中看到:
如果要将相同的参数应用于不同的数据集,最简单的方法是使用新数据构建新的OLS模型,例如,
mod = OLS(y_new,x_new)
,然后使用predict
方法,
mod.predict(reg.params)
其中res.params
来自您的原始身材。请注意,x_new必须在与原始回归相同的位置处具有相同的变量。