1、绘制散点图
观察点的分布情况:如果点大致沿直线分布,说明存在线性关系。
import matplotlib.pyplot as plt
import seaborn as sns
sns.scatterplot(x='feature1', y='feature2', data=df)
plt.title('Scatter Plot of Feature1 vs Feature2')
plt.show()
2、计算特征之间的相关系数
correlation = df['feature1'].corr(df['feature2'])
print('Pearson Correlation:', correlation)
相关系数的取值范围为[-1, 1],接近 1 或 -1 表示强线性关系,接近 0 表示线性关系弱。
3、拟合线性回归模型并检查p值和t值。
import statsmodels.api as sm
X = df[['feature1']] # 自变量
y = df['feature2'] # 因变量
X = sm.add_constant(X) # 添加常数项
model = sm.OLS(y, X).fit()
print(model.summary())
对于每个特征,查看其 t 值和p值:
一般情况下,t 值的绝对值大于 2 可能表示该特征与目标变量之间存在一定的线性关系(但具体标准可以根据样本大小调整)。
如果 p 值小于 0.05,说明在 95% 的置信水平下,该特征与目标变量之间存在显著线性关系。
4、残差分析
拟合线性回归后,分析残差(预测值与实际值之间的差异)。如果残差图中的点随机分布,说明线性模型适合数据;如果存在明显模式,说明线性关系不够充分。