statsmodel中的GLM返回错误

时间:2014-08-27 18:22:22

标签: python statsmodels

既然我已经找到了如何使用OLS(Pandas/Statsmodel OLS predicting future values),我试图为我的数据拟合一条更好的曲线...... GLM应该与我假设的相似。

import statsmodels.api as sma
df1['intercept'] = 1
y = df1[['intercept', 'date_delta']]
X = df1['monthly_data']
smaresults_normal = sma.GLM(X,y, family=sma.families.Binomial()).fit()

返回ValueError: The first guess on the deviance function returned a nan. This could be a boundary problem and should be reported.,这是2010年的一个已知问题。我也尝试过:

import statsmodels.api as sm
import statsmodels.formula.api as smf

glm_unsmoothed = smf.GLM('monthly_data ~ date_delta', df1, family=sm.families.Binomial() )

glm_unsmoothed.fit()

引发错误'builtin_function_or_method' object has no attribute 'equals'

我想用ols模型绘制模型和未来值的图形:

#ols model
df1['intercept'] = 1
X = df1[['intercept', 'date_delta']]
y = df1['monthly_data']

smresults_normal = sm.OLS(y, X).fit()
#future values
smresults_normal.predict(df_future12[['intercept', 'future_monthly']])

#model in sample data
import statsmodels.formula.api as smf

smresults_unsmoothed = smf.ols('monthly_data ~ date_delta', df1).fit()

df1['ols_preds_unsmoothed'] = smresults_unsmoothed.predict()

编辑我放弃了尝试使用GLM,而是使用OLS和多项式拟合的公式,我认为这种方法非常好......(尽管未来的预测显然不同于我的其他OLS,总有一天我会希望写一些代码而不用无尽的摆弄!)!不幸的是我的声誉太低了,不能发布漂亮的照片! :(

1 个答案:

答案 0 :(得分:0)

我认为我遇到了同样的问题,您所需要的只是确保您的数据框不包含案例而非案例等于零的行。在估算glm之前,运行:

data = data [(data.cases!= 0)| (data.notcases!= 0)]

显然R会自动完成。