python - 用于制作和输出多个线性回归的循环
问题描述
我有多个要构建的模型。我正在寻找一种方法来遍历我的列表以制作和打印每个模型的摘要。
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' object is not subscriptable
解决方案
您需要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)
推荐阅读
- java - Android Studio BackgroundService 在没有用户交互的情况下一直运行?
- java - 如何在spring中创建自定义查询方法生成器
- javascript - HTML输入元素在EJS中使用电子返回空格
- bash - 如何在蛇形规则中使用 bash for 循环
- python - heroku 电报机器人,BadRequest:Bad webhook:保留 IP 地址 0.0.0.0
- python - 如何在python中做一个堆栈图,按一个类别按百分比排序?
- html - 使用 Selenium Python 和选择器进行爬网
- javascript - React.js“useEffect”不定式循环
- react-router - React Router 和 Behat:如何测试显示的 URL?
- python - 将 Pytorch 数据集转换为从每个类中至少采样一个点的加载器/采样器的有效方法