我是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))
输出:
^{pr2}$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
这是另一种使用公式的方法,为此您需要导入
statsmodels.formula.api
您需要更改python代码中x和y变量的顺序,然后您将看到完全相同的结果(尽管输出中显示的有效位数与R中的输出不同:
各种python包都有自己的语法。下面是一个很好的链接,其中包含一些如何在Python中使用公式语法的示例: http://www.statsmodels.org/dev/example_formulas.htmlenter link description here
相关问题 更多 >
编程相关推荐