scipy 回归模型的残差总和

Sum of residuals of scipy regression model

我正在阅读 python 的统计工作簿,有一个练习题让我卡住了。它与泊松回归有关,这里是问题陈述:-

执行以下任务:

  1. 从 MASS 包加载 R 数据集 Insurance 并将数据捕获为 pandas 数据帧
  2. 构建泊松回归模型 自变量、Holders 和因变量 Claims。
  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())

现在如何求残差和?

在poisson_model = smf.poisson('np.log(Holders) ~ -1 + Claims', df)语句中,因变量"Claims"应该在右边

poisson_model = smf.poisson('Claims ~ np.log(Holders)-1 ', df)

np.sum(poisson_result.resid)

工作正常

正如 Karthikeyan 指出的那样,您使用了错误的变量来构建泊松模型。 改用这个,

poisson_model = smf.poisson('Claims ~ np.log(Holders)',df)

如果有人正在寻找解决方案,这在“Fresco”中是合格的

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))

1.a) 从 MASS 包加载 R 数据集 Insurance

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

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))

我是新手,所以我不知道是否可以将数据捕获为熊猫数据框,但现在让我来

问候

墨西哥壁画

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))

我不知道它是否有效。但我参考了这个文档

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))

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

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

试试下面的 Fresco 播放代码

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))