如何循环计算线性回归而不需要学习和增加自由度和标准误差?

问题描述 投票:0回答:1

我想要的只是自动计算多组数据的多元线性回归,每次5列,599行,不积累标准误差,也不增加逐组循环数据时的自由度。而不是每列的整行,因为这会导致回归系数的高估。

我正在研究物理数据,我只对计算每组(5 列 599 行)的回归系数感兴趣,而不使用机器学习进行预测。这是我的代码:

for d in range(len(lst)):
    for a,b,c,e,f in zip(temp_list,density_list,Z_list,x2,x3):
          if a==lst[d]:
                density.append(b)
                Z_1.append(c)
                x_2.append(e)
                x_3.append(f)
    independant_variavles = []
    independant_variavles.append(density)
    independant_variavles.append(x_2)
    independant_variavles.append(x_3)
    
    X =np.array(independant_variavles)
    
    X = X.transpose()
     model = sm.OLS(y, X).fit()
    print("Temperture:  ",temp_unique[d], "Coefficients:  ",model.params, "number of rows or df:  ",model.df_resid)

输出为:

温度:1541.5 系数:[-3.99307084e-04 3.19782620e-04 6.71098555e-06] 行数或 df:599.0

温度:1545.3 系数:[-3.68444754e-04 3.20316004e-04 6.69181306e-06] 行数或 df:1201.0

温度:1546.8 系数:[-3.50096899e-04 3.20633181e-04 6.68043142e-06] 行数或 df:1803.0

非常感谢!

for-loop linear-regression
1个回答
0
投票

对不起,我找到了。要做的就是在第一个循环内定义列表,而不是在它之前,以避免累积!

© www.soinside.com 2019 - 2024. All rights reserved.