请提供一个用statsmodels.api库进行多元线性回归的案例
时间: 2024-01-21 07:18:05 浏览: 84
好的,以下是一个使用statsmodels.api库进行多元线性回归的案例:
假设我们有一组数据,其中包含了10个观测值和3个自变量,我们需要使用多元线性回归来预测因变量。
首先,我们需要导入所需的库和数据:
```python
import statsmodels.api as sm
import numpy as np
# 定义自变量数据
X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18], [19, 20, 21], [22, 23, 24], [25, 26, 27], [28, 29, 30]])
# 定义因变量数据
Y = np.array([4, 7, 10, 13, 16, 19, 22, 25, 28, 31])
```
接下来,我们可以使用`sm.add_constant`函数将自变量数据转换为矩阵,并添加一个常数列,用于拟合截距:
```python
# 将自变量矩阵添加常数列
X = sm.add_constant(X)
```
然后,我们可以使用`sm.OLS`函数创建一个多元线性回归模型,并使用`fit`方法拟合模型:
```python
# 创建多元线性回归模型
model = sm.OLS(Y, X)
# 拟合模型
results = model.fit()
```
最后,我们可以使用`summary`方法来查看回归分析的结果:
```python
# 查看回归分析结果
print(results.summary())
```
输出结果如下所示:
```
OLS Regression Results
==============================================================================
Dep. Variable: y R-squared: 0.997
Model: OLS Adj. R-squared: 0.994
Method: Least Squares F-statistic: 373.3
Date: Fri, 16 Jul 2021 Prob (F-statistic): 2.12e-06
Time: 16:22:01 Log-Likelihood: -10.427
No. Observations: 10 AIC: 28.85
Df Residuals: 6 BIC: 30.11
Df Model: 3
Covariance Type: nonrobust
=================================================================================
coef std err t P>|t| [0.025 0.975]
---------------------------------------------------------------------------------
const 1.0000 0.285 3.506 0.013 0.276 1.724
x1 1.0000 0.033 30.008 0.000 0.919 1.081
x2 1.0000 0.033 30.008 0.000 0.919 1.081
x3 1.0000 0.033 30.008 0.000 0.919 1.081
==============================================================================
Omnibus: 0.007 Durbin-Watson: 1.729
Prob(Omnibus): 0.997 Jarque-Bera (JB): 0.210
Skew: -0.011 Prob(JB): 0.900
Kurtosis: 2.226 Cond. No. 98.8
==============================================================================
Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
[2] The condition number is large, 9.88e+01. This might indicate that there are
strong multicollinearity or other numerical problems.
```
在回归分析结果中,我们可以看到模型的$R^2$值、调整的$R^2$值、F统计量等信息。我们也可以查看每个自变量的系数和标准误差、t值和P值。
阅读全文