Skip to main content
 首页 » 编程设计

python之多元回归 Python

2025年05月04日25zengkefu

我真的不明白我的(简单)代码有什么问题......

我只想测试多元线性回归(......!)。

 import pandas as pd 
 import numpy as np 
 import scipy.stats as st 
 import sklearn 
 n = 1000 
 
 X1 = linspace(2, 8.5, n) 
 X2 = linspace(-4, 2.9, n) 
 X3 = linspace(-1, 16, n) 
 
 X = np.transpose( [X1, X2, X3] ) 
 
 Y = 2*X1 + 3.2*X2 -1.2*X3  +  4  + st.norm.rvs(size = n, loc = 0, scale = 0.6) 
 
 X = pd.DataFrame( X , columns = ["X1", "X2", "X3"]) 
 Y = pd.DataFrame(Y, columns = ["Y"]) 
 
 #Create linear regression object: 
 my_reg = sklearn.linear_model.LinearRegression() 
 
 #Train: 
 my_reg.fit(X, Y) 
 
 print('Coefficients: \n', my_reg.coef_) 
 print('Constant: \n', my_reg.intercept_) 

我得到了一些愚蠢的结果,比如系数是 [0.25127347 0.26673645 0.65717676] ...

我也试过 OLS 方式,但我仍然得到无意义的系数(略有不同但仍然很愚蠢)

(它与单变量线性回归一起工作,比如 Y = 2*X + 5,我会得到非常接近真实值的系数和截距)

请您参考如下方法:

谢谢大家!

我有一段时间没有进行线性回归,当然是因为 X 不可逆(在 R 中,它给了我 'nan')。

所以这不是一个聪明的问题......

再次感谢!