Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于统计模型的OLS多元回归_Python_Regression_Statsmodels_Least Squares - Fatal编程技术网

Python 基于统计模型的OLS多元回归

Python 基于统计模型的OLS多元回归,python,regression,statsmodels,least-squares,Python,Regression,Statsmodels,Least Squares,我查过与我类似的问题,但找不到答案 我的目标:我有生存数据。我想要在考虑了年龄和体重后,生存数据的残差 方法: 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 =

我查过与我类似的问题,但找不到答案

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

方法:

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方法在哪里

  • 希望一旦我真的找到了这个方法,我就能运行代码并询问在哪里可以找到我正在寻找的残差

  • 谢谢

    谢谢你,这很有效

    以下是我使用的代码:

    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)
    

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

    尝试将statsmodels.api导入为sm和
    sm.OLS(y,X).fit()
    。它有效吗?
    resids\u pearson
    是方差标准化的残差。如果需要普通残差,那么正确的属性是
    resid