我复制了此处描述的负二项式回归练习: https://docs.pymc.io/notebooks/GLM-negative-binomial-regression.html
但是,当我想将结果与Poisson甚至OLS进行比较时,我得到了完全相同的预测。这是不太可能的,但我不知道自己在做什么错
import statsmodels.api as sm
X = ['constant','alcohol','nomeds','alcohol_nomeds']
nb_results = sm.GLM(df.nsneeze, df[X], family=sm.families.NegativeBinomial(sm.families.links.log)).fit()
po_results = sm.GLM(df.nsneeze, df[X], family=sm.families.Poisson()).fit()
ols_results = sm.OLS(df.nsneeze, df[X]).fit()
df['nb_pred'] = nb_results.predict(df[X])
df['po_pred'] = po_results.predict(df[X])
df['ols_pred'] = ols_results.predict(df[X])
df[['nsneeze','nb_pred','po_pred','ols_pred']].corr()
预测值的相关矩阵:
nsneeze nb_pred po_pred ols_pred
nsneeze 1 0.9 0.9 0.9
nb_pred 0.9 1 1 1
po_pred 0.9 1 1 1
ols_pred 0.9 1 1 1
我希望不同输出之间的相关性明显低于1