Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.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 用于生成和输出多个线性区域的循环_Python_Python 3.x_Data Science_Statsmodels - Fatal编程技术网

Python 用于生成和输出多个线性区域的循环

Python 用于生成和输出多个线性区域的循环,python,python-3.x,data-science,statsmodels,Python,Python 3.x,Data Science,Statsmodels,我想建立多个模型。我在寻找一种方法,通过我的列表循环,为每个模型制作并打印摘要 x = data[["Prod Order Quantity", "Print Type Complexity " ]] y1 = data["Per Unit Downtime and setup"] y2 = data["Per Unit Runtime"] y3 = data["Setup and downtime&quo

我想建立多个模型。我在寻找一种方法,通过我的列表循环,为每个模型制作并打印摘要

x = data[["Prod Order Quantity", "Print Type Complexity " ]]
y1 = data["Per Unit Downtime and setup"]
y2 = data["Per Unit Runtime"]
y3 = data["Setup and downtime"]
y4 = data["Total Runtime"]
y5 = data["Total Variable Cost over Runtime"] 

#add constant list
Xc = sm.add_constant(x)
#make linear regression for 1 outcome variable at a time
model = sm.OLS(y1, Xc)
results = model.fit()
print(results.summary())

#loop to do it for each variable in my list 
all_outcomes = [y1,y2,y3,y4,y5]
def all_models(variable_list): 
    for v in all_outcomes:
        model = sm.OLS[v,Xc]
        results = model.fit
        print(results.summary())

all_models(all_outcomes)
错误

TypeError:“type”对象不可下标

您需要
sm.OLS(v,Xc)
,最好使用定义的变量。下面类似的方法会起作用,我首先建立了一个类似于您的示例数据:

import numpy as np
import pandas as pd
import statsmodels.api as sm

data = pd.DataFrame(np.random.normal(0,1,(100,7)))
data.columns = ["Prod Order Quantity", "Print Type Complexity","Per Unit Downtime and setup","Per Unit Runtime","Setup and downtime","Total Runtime","Total Variable Cost over Runtime"]
定义一个函数,在这种情况下,它返回一个结果列表:

def all_models(variable_list,df):
    #store results
    allresults = [] 
    
    for v in variable_list:
        Xc = sm.add_constant(df[["Prod Order Quantity", "Print Type Complexity"]])
        model = sm.OLS(df[v],Xc)
        results = model.fit()
        print(results.summary())
        allresults.append(results)

    return allresults
运行它:

all_outcomes = ["Per Unit Downtime and setup","Per Unit Runtime","Setup and downtime","Total Runtime","Total Variable Cost over Runtime"]

res = all_models(all_outcomes,data)