現在,我已經想通了如何使用OLS(Pandas/Statsmodel OLS predicting future values),我想,以適應更好的曲線,以我的數據... GLM應該同樣工作,我假設。GLM在statsmodel返回錯誤
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,總有一天我會希望寫一些代碼沒有無盡的擺弄!)!不幸的是我的聲望太低,發佈不錯的圖片! :(
GLM與家人二項式,或的Logit或概率單位是二進制數據,從屬或響應變量,endog,需要在0和1,或二進制的,零和一之間。 – user333700 2014-08-27 19:29:50
感謝洞察力!我試圖讓電源形式現在的工作(威斯康星有些困難)。我需要指數或拋物線(在Excel中,數據適合於二次方 - 我正在運行另一個分析進行比較)...我是否正在使用GLM朝着正確的方向前進? – pythonista 2014-08-28 14:13:28