【问题标题】:Multiple regression using OLS from stats model使用来自 statsmodels 的 OLS 进行多元回归
【发布时间】:2016-05-03 04:37:46
【问题描述】:

我已经查找了与我类似的问题,但我找不到答案。

我的目标:我有生存数据。在考虑了年龄和体重之后,我想要生存数据的残差。

方法:

import statsmodels
from statsmodels import ols
species = ["sample1","sample2","sample3","sample4","sample5"]
Survival = [0.1,0.2,0.3,0.4,0.5]
Age = [1,2,3,4,5]
Weight = [1,3,5.5,7,10]
mymodel = ols.ols(Mortality,[Weight,Age],"Mortality",["Weight","Age"])
print mymodel

输出: 我的理想输出是一个包含两列的表格,一列是物种,另一列是我考虑了年龄和体重后的死亡率残差。

问题: 1.无论我做什么,我都找不到ols方法。我安装了statsmodel。当我打开 python 控制台并执行 dir(statsmodels) 时,我会得到以下选项:

['CacheWriteWarning', 'ConvergenceWarning', 'InvalidTestWarning', 'IterationLimitWarning', 'NoseWrapper', 'Tester', '__builtins__', '__doc__', '__docformat__', '__file__', '__name__', '__package__', '__path__', '__version__', 'compat', 'datasets', 'distributions', 'errstate', 'print_function', 'simplefilter', 'test', 'tools', 'version']

ols 方法在哪里?

  1. 希望一旦我能真正找到方法,我将能够运行代码并询问在哪里可以找到我正在寻找的残差。

谢谢

【问题讨论】:

  • 试试import statsmodels.api as smsm.OLS(y, X).fit()。有用吗?

标签: python regression statsmodels least-squares


【解决方案1】:

谢谢,成功了。

这是我使用的代码:

import numpy as np
import statsmodels.api as sm
import statsmodels.formula.api as smf
import sys

dat = np.loadtxt(sys.argv[1],dtype={"names":("Species","Weight","Mortality","Age"),"formats":("S20","f4","f4","f4")})
mymodel = smf.ols("Mortality~Weight+Age",data=dat).fit()
Residues = list(mymodel.resid_pearson)
for each_species,each_residue in zip(list(dat["Species"]),Residues):
    print each_species + "\t" + str(each_residue)

所以我认为/希望这里发生的事情是我正在阅读表格,对数据进行多元回归,并打印物种名称和每个物种的残差(残差是死亡率相对于体重和年龄)。谢谢。

【讨论】:

  • resid_pearson 是由方差标准化的残差。如果你想要普通的残差,那么正确的属性是resid
猜你喜欢
  • 2015-07-22
  • 1970-01-01
  • 1970-01-01
  • 2014-02-09
  • 1970-01-01
  • 2014-03-30
  • 2014-04-09
  • 2015-12-31
  • 2014-12-22
相关资源
最近更新 更多