學生化殘差通常用于回歸分析,以識別數據中潛在的異常值。異常值是與數據總體趨勢顯著不同的點,它可以對擬合模型產生重大影響。通過識別和分析異常值,您可以更好地了解數據中的潛在模式并提高模型的準確性。在這篇文章中,我們將仔細研究學生化殘差以及如何在 python 中實現它。
什么是學生化殘差?
術語“學生化殘差”是指一類特定的殘差,其標準差除以估計值。回歸分析殘差用于描述響應變量的觀測值與其模型生成的預期值之間的差異。為了找到數據中可能顯著影響擬合模型的異常值,采用了學生化殘差。
以下公式通常用于計算學生化殘差 –
studentized residual = residual / (standard deviation of residuals * (1 - hii)^(1/2))
登錄后復制
其中“殘差”是指觀測到的響應值與預期響應值之間的差異,“殘差標準差”是指殘差標準差的估計值,“hii”是指每個數據點的杠桿因子。
用 Python 計算學生化殘差
statsmodels 包可用于計算 Python 中的學生化殘差。作為說明,請考慮以下內容 –
語法
OLSResults.outlier_test()
登錄后復制
其中 OLSResults 指的是使用 statsmodels 的 ols() 方法擬合的線性模型。
df = pd.DataFrame({'rating': [95, 82, 92, 90, 97, 85, 80, 70, 82, 83], 'points': [22, 25, 17, 19, 26, 24, 9, 19, 11, 16]}) model = ols('rating ~ points', data=df).fit() stud_res = model.outlier_test()
登錄后復制
其中“評級”和“分數”指的是簡單線性回歸。
算法
導入 numpy、pandas、Statsmodel api。
創建數據集。
對數據集執行簡單的線性回歸模型。
計算學生化殘差。
打印學生化殘差。
示例
此處演示了使用 scikit?posthocs 庫來運行 Dunn 的測試 –
#import necessary packages and functions import numpy as np import pandas as pd import statsmodels.api as sm from statsmodels.formula.api import ols #create dataset df = pd.DataFrame({'rating': [95, 82, 92, 90, 97, 85, 80, 70, 82, 83], 'points': [22, 25, 17, 19, 26, 24, 9, 19, 11, 16]})
登錄后復制
接下來使用 statsmodels OLS 類創建線性回歸模型 –
#fit simple linear regression model model = ols('rating ~ points', data=df).fit()
登錄后復制
使用離群值 test() 方法,可以在 DataFrame 中生成數據集中每個觀察值的學生化殘差 –
#calculate studentized residuals stud_res = model.outlier_test() #display studentized residuals print(stud_res)
登錄后復制
輸出
student_resid unadj_p bonf(p) 0 1.048218 0.329376 1.000000 1 -1.018535 0.342328 1.000000 2 0.994962 0.352896 1.000000 3 0.548454 0.600426 1.000000 4 1.125756 0.297380 1.000000 5 -0.465472 0.655728 1.000000 6 -0.029670 0.977158 1.000000 7 -2.940743 0.021690 0.216903 8 0.100759 0.922567 1.000000 9 -0.134123 0.897080 1.000000
登錄后復制
我們還可以根據學生化殘差快速繪制預測變量值 –
語法
x = df['points'] y = stud_res['student_resid'] plt.scatter(x, y) plt.axhline(y=0, color='black', linestyle='--') plt.xlabel('Points') plt.ylabel('Studentized Residuals')
登錄后復制
這里我們將使用 matpotlib 庫來繪制顏色 = ‘black’ 和生活方式 = ‘–‘ 的圖表
算法
導入matplotlib的pyplot庫
定義預測變量值
定義學生化殘差
創建預測變量與學生化殘差的散點圖
示例
import matplotlib.pyplot as plt #define predictor variable values and studentized residuals x = df['points'] y = stud_res['student_resid'] #create scatterplot of predictor variable vs. studentized residuals plt.scatter(x, y) plt.axhline(y=0, color='black', linestyle='--') plt.xlabel('Points') plt.ylabel('Studentized Residuals')
登錄后復制
輸出
結論
識別和評估可能的數據異常值。檢查學生化殘差可以讓您找到與數據總體趨勢有很大偏差的點,并探索它們影響擬合模型的原因。識別顯著觀測值 學生化殘差可用于發現和評估有影響力的數據,這些數據對擬合模型有重大影響。尋找高杠桿點。學生化殘差可用于識別高杠桿點。杠桿是衡量某個點對擬合模型影響程度的指標。總體而言,使用學生化殘差有助于分析和提高回歸模型的性能。
以上就是如何在Python中計算學生化殘差?的詳細內容,更多請關注www.xfxf.net其它相關文章!