我在Python中运行以下代码进行回归,我得到错误(PatsyError:模型缺少必需的结果变量)。我如何解决它? 感谢
Y = spikers['grade']
X = spikers[['num_pageview', 'num_video_play_resume', 'eng_proficiency', 'english']]
model = smf.ols(Y,X).fit()
model.summary()
答案 0 :(得分:1)
您应该使用以下命令:
df = pd.DataFrame({'x':X, 'y':Y})
model = smf.ols('y~x', data=df).fit()
df
是您的DataFrame类型数据。
答案 1 :(得分:0)
我有一个非常类似的问题,试图在结果变量'y'上运行sm.logit,它是二进制(0或1):让我的所有数据都在一个名为'data:
的pandas数据框中import statsmodels.formula.api as sm
X = ['Age','Sex','x1','x2','x3','x4']
logit = sm.logit(data['y'],data[X])
result = logit.fit()
print result.summary()
Traceback (most recent call last):
File "<ipython-input-XXX>", line 1, in <module>
logit = sm.logit(data['y'],data[X])
File "C:\...\statsmodels\base\model.py", line 147, in from_formula
missing=missing)
File "C:\...\statsmodels\formula\formulatools.py", line 68, in handle_formula_data
NA_action=na_action)
File "C:\...\patsy\highlevel.py", line 312, in dmatrices
raise PatsyError("model is missing required outcome variables")
PatsyError: model is missing required outcome variables
我收到上面显示的此错误消息。我设法解决了这个问题,并通过使用这种表示法取出了一些明智的结果:
f1 = 'y ~ Age+Sex+x1+x2+x3+x4'
logit = sm.logit(formula = f1, data = data)
result = logit.fit()
据我所知,statsmodels.formula.api的这种符号用法通常是首选的