我想要的只是自动计算多组数据的多元线性回归,每次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
非常感谢!
对不起,我找到了。要做的就是在第一个循环内定义列表,而不是在它之前,以避免累积!