ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

伽玛回归仅拦截

2019-10-25 05:55:30  阅读:256  来源: 互联网

标签:glm regression python r


我是python的新手,我想进行gamma回归,希望获得与R相似的估计,但是我无法理解python的语法,并且它会产生错误,以及如何解决该错误的一些想法.

我的R代码:

set.seed(1)
y = rgamma(18,10,.1)
print(y)
[1]  76.67251 140.40808 138.26660 108.20993  53.46417 110.61754 119.11950 113.57558  85.82045  71.96892
[11]  76.81693  86.00139  93.62010  69.49795 121.99775 114.18707 125.43608 120.63640

# Option 1
model = glm(y~1,family=Gamma)
summary(model)

# Option 2
# x = rep(1,18)
# summary(glm(y~x,family=Gamma))

输出:

summary(model)

Call:
glm(formula = y ~ 1, family = Gamma)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-0.57898  -0.24017   0.07637   0.17489   0.34345  

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 0.009856   0.000581   16.96 4.33e-12 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for Gamma family taken to be 0.06255708)

    Null deviance: 1.1761  on 17  degrees of freedom
Residual deviance: 1.1761  on 17  degrees of freedom
AIC: 171.3

Number of Fisher Scoring iterations: 4

Python代码

y = [76.67251,140.40808,138.26660,108.20993,53.46417,110.61754,
 119.11950,113.57558,85.82045,71.96892,76.81693,86.00139,
 93.62010,69.49795,121.99775,114.18707,125.43608,120.63640]

x = np.repeat(1,18)

import numpy
import statsmodels.api as sm

model = sm.GLM(x,y, family=sm.families.Gamma()).fit()
print(model.summary())

我期望输出类似于R

解决方法:

您需要在python代码中更改x和y变量的顺序,然后您将看到完全相同的结果(尽管输出中显示的有效位数与R中的输出不同:

 sm.GLM(y,x, family=sm.families.Gamma()).fit().summary()

<class 'statsmodels.iolib.summary.Summary'>
"""
                 Generalized Linear Model Regression Results
==============================================================================
Dep. Variable:                      y   No. Observations:                   18
Model:                            GLM   Df Residuals:                       17
Model Family:                   Gamma   Df Model:                            0
Link Function:          inverse_power   Scale:                 0.0625558699706
Method:                          IRLS   Log-Likelihood:                -83.656
Date:                Sun, 20 May 2018   Deviance:                       1.1761
Time:                        17:59:04   Pearson chi2:                     1.06
No. Iterations:                     4
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const          0.0099      0.001     16.963      0.000       0.009       0.011
==============================================================================
"""

各种python软件包都有自己的语法.这是一个很好的链接,其中包含一些如何在Python中使用公式语法的示例:
http://www.statsmodels.org/dev/example_formulas.htmlenter link description here

标签:glm,regression,python,r
来源: https://codeday.me/bug/20191025/1926488.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有