首页 > 编程知识 正文

python回归分析结果如何看

时间:2023-11-22 14:17:34 阅读:296185 作者:DZVC

回归分析是统计学中常用的一种数据分析方法,用于研究两个或多个变量之间的关系。python提供了多种回归分析方法,包括线性回归、多项式回归、岭回归等。在进行回归分析后,我们可以通过一些指标来评估模型的拟合效果和变量的显著性。本文将从多个方面介绍如何看待python回归分析结果。

一、模型拟合效果的评估

模型拟合效果是评估回归分析结果的重要指标之一。常用的评估指标包括R平方、均方误差(MSE)、平均绝对误差(MAE)等。

import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, mean_absolute_error

# 构造数据
X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
y = np.dot(X, np.array([1, 2])) + 3

# 拟合线性回归模型
model = LinearRegression()
model.fit(X, y)

# 预测
y_pred = model.predict(X)

# 计算R平方
r2 = model.score(X, y)

# 计算均方误差
mse = mean_squared_error(y, y_pred)

# 计算平均绝对误差
mae = mean_absolute_error(y, y_pred)

print("R平方:", r2)
print("均方误差:", mse)
print("平均绝对误差:", mae)

上述代码演示了如何使用python的sklearn库进行线性回归模型的拟合,并计算拟合效果的指标。R平方表示模型对观测值的解释程度,值越接近1表示拟合效果越好;均方误差和平均绝对误差表示预测值与真实值之间的差异,值越小表示拟合效果越好。

二、变量的显著性

在回归分析中,我们还可以通过检验变量的显著性来判断其对因变量的影响是否显著。通常使用t检验或F检验来进行显著性检验。

import numpy as np
import statsmodels.api as sm

# 构造数据
X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
X = sm.add_constant(X)  # 添加常数项
y = np.dot(X, np.array([1, 2, 3])) + 4

# 拟合线性回归模型
model = sm.OLS(y, X)
results = model.fit()

# 查看回归系数的显著性
print(results.summary())

上述代码演示了如何使用python的statsmodels库进行线性回归模型的拟合,并查看回归系数的显著性。在结果的summary中,我们可以查看每个变量的t值和P值。t值表示变量的显著性,P值表示变量对因变量的影响是否显著,一般取0.05作为显著性水平。

三、残差分析

残差分析可以帮助我们检验回归模型是否满足一些基本的假设,如线性性、独立性、正态性、等方差性等。

import numpy as np
import statsmodels.api as sm
import scipy.stats as stats
import matplotlib.pyplot as plt

# 构造数据
X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
X = sm.add_constant(X)  # 添加常数项
y = np.dot(X, np.array([1, 2, 3])) + 4

# 拟合线性回归模型
model = sm.OLS(y, X)
results = model.fit()

# 计算残差
residuals = results.resid

# 残差正态性检验
residuals_norm = (residuals - np.mean(residuals)) / np.std(residuals)
stats.probplot(residuals_norm, dist="norm", plot=plt)

plt.show()

上述代码演示了如何使用python的statsmodels库进行线性回归模型的拟合,并进行残差正态性检验。在残差的正态性检验中,我们可以使用QQ图来判断残差是否服从正态分布。如果QQ图上的点大致位于一条直线上,则说明残差大致服从正态分布。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。