【发布时间】:2015-03-22 08:37:29
【问题描述】:
数据:https://courses.edx.org/c4x/MITx/15.071x_2/asset/NBA_train.csv
我知道如何使用statsmodels.formula.api 将这些数据拟合到多元线性回归模型:
import pandas as pd
NBA = pd.read_csv("NBA_train.csv")
import statsmodels.formula.api as smf
model = smf.ols(formula="W ~ PTS + oppPTS", data=NBA).fit()
model.summary()
但是,我发现这种类似 R 的公式表示法很尴尬,我想使用通常的 pandas 语法:
import pandas as pd
NBA = pd.read_csv("NBA_train.csv")
import statsmodels.api as sm
X = NBA['W']
y = NBA[['PTS', 'oppPTS']]
X = sm.add_constant(X)
model11 = sm.OLS(y, X).fit()
model11.summary()
使用第二种方法我得到以下错误:
ValueError: shapes (835,2) and (835,2) not aligned: 2 (dim 1) != 835 (dim 0)
为什么会发生以及如何解决?
【问题讨论】:
-
r 语法是 y = x1 + x2。这有什么尴尬?这种表示法在数学方面有些流行
-
也许 awkward 不是正确的词,但我遇到了异常列名的问题(例如“C-11”)
-
这些不是正确的变量名,所以可能是你的问题
-
@rawr 如何拟合列的对数? (在 R 中:log(y) ~ x1 + x2)