Python 3.x scipy回归模型的残差和

Python 3.x scipy回归模型的残差和,python-3.x,scipy,statistics,poisson,Python 3.x,Scipy,Statistics,Poisson,我正在用python阅读一本统计工作簿,有一个实践性的问题让我很困惑。它与泊松回归有关,下面是问题陈述:- 执行以下任务: 从MASS package加载R数据集,并将数据捕获为数据帧 建立一个泊松回归模型,用一个 自变量、持有人和因变量索赔 用数据拟合模型 找到残差之和 我坚持上面第四点。有人能帮上忙吗 以下是我迄今为止所做的工作:- import statsmodels.api as sm import statsmodels.formula.api as smf import numpy

我正在用python阅读一本统计工作簿,有一个实践性的问题让我很困惑。它与泊松回归有关,下面是问题陈述:-

执行以下任务:

  • 从MASS package加载R数据集,并将数据捕获为数据帧
  • 建立一个泊松回归模型,用一个 自变量、持有人和因变量索赔
  • 用数据拟合模型
  • 找到残差之和
  • 我坚持上面第四点。有人能帮上忙吗

    以下是我迄今为止所做的工作:-

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


    现在如何获得残差之和?

    在泊松模型=smf.poisson('np.log(Holders)~-1+Claims',df)语句中,因变量“Claims”应位于右侧

    泊松模型=smf.poisson('索赔~np.log(持有人)-1',df)

    np.sum(泊松结果剩余)

    很好

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

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

    如果有人在寻找解决方案,则在“Fresco”中对其进行限定 1.a)从MASS package加载R数据集保险

    1.b)并将数据捕获为数据帧

    2) 建立一个泊松回归模型,包含一个自变量、持有人和因变量索赔的对数

    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))
    
    我在这方面是新手,所以我不知道将数据捕获为panda dataframe是否合适,但现在就告诉我

    问候

    湿壁画Mex

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

    我不知道它是否有效,但我参考了这些文件

    所以我希望这也能奏效

    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
    尝试下面的壁画播放代码

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

    只需执行:
    np.sum(poisson\u result.resid)
    虽然我得到的输出是180,但它仍然表示答案不知何故是错误的。正在尝试找出如何欢迎堆栈溢出!使用格式化工具使文章更具可读性。代码块应类似于代码块。如果需要,请使用粗体斜体。我得到如下输出:优化成功终止。当前函数值:3.468160迭代7 6.679101716144942e-13以下答案未被FP练习排除------>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>。当前函数值:3.468160迭代7 6.679101716144942e-13您能解释为什么需要cumsum而不是sum吗?
    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))