scipy回归模型的残差之和

时间:2018-06-28 15:15:39

标签: python-3.x scipy statistics poisson

我正在使用python进行统计工作簿,我遇到了一个实践问题。它与泊松回归相关,这里是问题陈述:-

执行以下任务:

  1. 从MASS包中加载R数据集保险并将数据捕获为熊猫数据框
  2. 用一个对数的对数建立一个Poisson回归模型 自变量,持有人和因变量声明。
  3. 使模型适合数据。
  4. 找到残差之和

我坚持上面的第4点。任何人都可以帮助执行此步骤吗?

这是我到目前为止所做的:-

import statsmodels.api as sm
import statsmodels.formula.api as smf
import numpy as np
df = sm.datasets.get_rdataset('Insurance', package='MASS', cache=False).data
poisson_model = smf.poisson('np.log(Holders) ~ -1 + Claims', df)
poisson_result = poisson_model.fit()
print(poisson_result.summary())

Here is the output so far :-

现在如何获得残差之和?

8 个答案:

答案 0 :(得分:2)

尝试下面的壁画播放代码

import statsmodels.api as sm
import statsmodels.formula.api as smf
import pandas as pd
import numpy as np
df_insurance=sm.datasets.get_rdataset("Insurance","MASS")
df_data=df_insurance.data
insurance_model=smf.poisson('Claims ~ np.log(Holders)', df_data).fit()
print(np.cumsum(insurance_model.resid))

答案 1 :(得分:1)

np.sum(poisson_result.resid)

工作正常

您使用了错误的变量来构建Karthikeyan指出的泊松模型。 改用

poisson_model = smf.poisson('索赔〜np.log(持有人)',df)

答案 2 :(得分:1)

1.a)从MASS包中加载R数据集保险

1.b)并将数据捕获为熊猫数据框

2)用自变量,Holders和因变量Claims的对数建立泊松回归模型。

3)用数据拟合模型。

4)求出残差之和。

import statsmodels.api as sm
import statsmodels.formula.api as smf
import pandas as pd
import numpy as np

#load the R data set insurrance from MASS package
ins = sm.datasets.get_rdataset('Insurance','MASS').data
# capture the data as pandas data frame
ins_pd = pd.DataFrame(ins)
# build a poisson regressions model with
# a log of an independent variable "Holders" 
# and dependent variable "Claims"
# fit the model with data
result = smf.poisson('Claims ~ np.log(Holders)',data=ins).fit()
# you can also use
# model = smf.poisson('Claims ~ np.log(Holders)',data=ins)
# result = model.fit()

# Find tue sum of residuals
print('Sum ot the residuals:',np.sum(result.resid))

我是新来的,所以我不知道是否以熊猫数据框的形式捕获数据是否正确,但现在让我来

问候

答案 3 :(得分:1)

壁画墨西哥人

import statsmodels.api as sm
import statsmodels.formula.api as smf
import pandas as pd
import numpy as np

df_data=sm.datasets.get_rdataset("Insurance","MASS").data
df_dataf= pd.DataFrame(df_data)
insurance_model=smf.poisson('Claims ~ np.log(Holders)',df_data)
insurance_model_result=insurance_model.fit()
print(np.sum(insurance_model_result.resid))

答案 4 :(得分:0)

在poisson_model = smf.poisson('np.log(Holders)〜-1 + Claims',df)语句中,因变量“ Claims”应该出现在右侧

poisson_model = smf.poisson('索赔〜np.log(Holders)-1',df)

答案 5 :(得分:0)

如果有人正在寻找解决方案,则有“壁画”资格

df_insurance=sm.datasets.get_rdataset("Insurance","MASS")
df_data=df_insurance.data
insurance_model=smf.poisson('Claims ~ np.log(Holders)',df_data)
insurance_model_result=insurance_model.fit()
res=(insurance_model_result.resid)
print(np.sum(res))

答案 6 :(得分:0)

我不知道它是否可以工作。但是我参考了这份文档

https://vincentarelbundock.github.io/Rdatasets/doc/MASS/Insurance.html https://vincentarelbundock.github.io/Rdatasets/datasets.html

所以我希望这也会起作用。

import statsmodels.api as sm
import  statsmodels.formula.api as smf 
import numpy as np
import pandas as pd 

data=pd.DataFrame(sm.datasets.get_rdataset("Insurance","MASS",cache=True).data)
model=smf.poisson('Claims ~ District + Group + Age + np.log(Holders)',data).fit()
print(np.sum(model.resid))

答案 7 :(得分:0)

尝试np.cumsum(model.resid)这个问题。

理想情况下,np.sum(model.resid)应该是该问题的正确答案...但是,如果系统不接受,请尝试cumsum