Python中的多元线性回归(PatsyError:模型缺少必需的结果变量)

2024-04-30 05:04:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python中运行以下回归代码,得到错误(PatsyError:model缺少必需的结果变量)。我该怎么修? 谢谢

Y = spikers['grade'] 
X = spikers[['num_pageview', 'num_video_play_resume', 'eng_proficiency', 'english']] 
model = smf.ols(Y,X).fit() 
model.summary()

Tags: 代码playmodelenglishvideo错误numeng
2条回答

我在尝试对二进制(0或1)的结果变量“y”运行sm.logit时遇到了一个非常类似的问题:让我的所有数据都位于名为“data:

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的符号用法通常是首选的

您应该使用以下命令:

df = pd.DataFrame({'x':X, 'y':Y})
model = smf.ols('y~x', data=df).fit()

其中df是数据帧类型数据。

相关问题 更多 >