【发布时间】:2021-04-06 15:26:57
【问题描述】:
我有一个类似的数据集
import pandas as pd
import statsmodels.formula.api as smf
import statsmodels.api as sm
data = pd.DataFrame({'a':[4,3,4,6,6,3,2], 'b':[12,14,11,15,14,15,10]}
test = data.iloc[:4]
train = data.iloc[4:]
我为训练数据建立了线性模型
model = smf.ols("a ~ b", data = data)
print(model.fit().summary())
现在我要做的是根据测试数据得到调整后的 R^2 值。有一个简单的命令吗?我一直在尝试从头开始构建它并不断收到错误。
我一直在尝试的:
model.predict(test.b)
但它抱怨形状。基于此:https://www.statsmodels.org/stable/examples/notebooks/generated/predict.html
我尝试了以下
X = sm.add_constant(test.b)
model.predict(X)
现在错误是
ValueError: shapes (200,2) and (200,2) not aligned: 2 (dim 1) != 200 (dim 0)
形状匹配,但是关于“暗淡”,我不明白这一点。但我认为我尽可能匹配链接中的示例,所以我不确定发生了什么。
【问题讨论】:
标签: python statsmodels