3

基于Python代码的相关性热力图,VIF共线性诊断图及残差四图的使用及解释 - 一眉师傅

 5 months ago
source link: https://www.cnblogs.com/hongbao/p/18091668
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

基于Python代码的相关性热力图,VIF共线性诊断图及残差四图的使用及解释

注:热力图共线性诊断图易看易解释,这里不再阐述

残差四图(Residuals vs Fitted Plot,Normal Q-Q Plot,Scale-Location Plot,Cook's Distance Plot)

各种现象的相关解释如下:

  1. Residuals vs Fitted Plot(残差与拟合值散点图):
    这个图用于帮助检验回归模型的线性关系假设。在这个图中,我们会将模型的残差(观测值与预测值之间的差异)与模型的拟合值(预测值)进行比较,理想情况下,残差应该随着拟合值的增加而随机分布在0附近,没有明显的模式或趋势。如果残差呈现出某种趋势,可能意味着模型的线性关系假设不成立。

  2. Normal Q-Q Plot(正态概率图):
    这个图用于检验模型残差是否符合正态分布。在这个图中,残差的排序值会和一个理论的正态分布进行比较,理想情况下,残差点应该落在一条直线上,如果残差点偏离直线,可能表示残差不符合正态分布。

  3. Scale-Location Plot(标准化残差与拟合值的散点图):
    这个图也称为“Spread-Location”图,用于检验模型的同方差性假设。在这个图中,我们会将标准化残差的绝对值开方(以消除负值)与拟合值进行比较,理想情况下,点应该在一条水平线上分布,如果点呈现出聚集或特定的模式,可能意味着同方差性不成立。

  4. Cook’s Distance Plot(库克距离图):
    这个图用于识别在回归模型中对结果产生显著影响的个别观测值。Cook’s Distance是一种衡量数据点影响的统计量,这个图可以显示每个数据点的Cook’s Distance值,通常我们会关注那些Cook’s Distance远高于平均水平的数据点,它们可能是影响模型准确性的异常值或离群点。

综合使用这四种图可以帮助分析师评估线性回归模型的准确性、假设是否成立以及是否存在异常值,从而提高建模的质量和可靠性。

1>封装好的代码如下:

ContractedBlock.gifExpandedBlockStart.gif

Multivariable_statistics.py

 2>对上述代码进行简单调用:

import Multivariable_statistics as Ms
import numpy as np
import pandas as pd
p=np.linspace(20,60,100)   #预测值
r=np.random.uniform(-1,1,100)   #残差值
print(r)
Ms.Residuals_plot(residuals=r,predicts=p)   #残差四图


#对于其他两个图的使用教程,以p,r数据为例
#得到一组100*2的数据
df=pd.DataFrame(p,columns=['p'])
df['r']=r
df['y']=np.linspace(50,80,100)   #预测值
print(df)

Ms.Corr_heatmap(df)    #皮尔逊相关系数的热力图
Ms.VIF_calculate(df,'y')        #VIF检验值以及图

3>结果图如下:

2958730-20240323204344439-1736085823.png
2958730-20240323204406671-248014453.png
2958730-20240323211606706-1027855446.png

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK