Les résidus étudiés sont souvent utilisés dans l'analyse de régression pour identifier les valeurs aberrantes potentielles dans les données. Les valeurs aberrantes sont des points qui diffèrent considérablement de la tendance globale des données et peuvent avoir un impact significatif sur le modèle ajusté. En identifiant et en analysant les valeurs aberrantes, vous pouvez mieux comprendre les modèles sous-jacents de vos données et améliorer la précision de vos modèles. Dans cet article, nous examinerons de plus près les résidus étudiants et comment les implémenter en python.
Le terme « résidus studentisés » fait référence à une classe spécifique de résidus dont l'écart type est divisé par l'estimation. Les résidus de l'analyse de régression décrivent la différence entre la valeur observée de la variable de réponse et sa valeur attendue générée par le modèle. Pour détecter les valeurs aberrantes dans les données susceptibles d'affecter de manière significative le modèle ajusté, des résidus étudiés ont été utilisés.
La formule suivante est couramment utilisée pour calculer les résidus studentisés -
studentized residual = residual / (standard deviation of residuals * (1 - hii)^(1/2))
Où « résiduel » fait référence à la différence entre la valeur de réponse observée et la valeur de réponse attendue, « écart type résiduel » fait référence à l'estimation de l'écart type résiduel et « hii » fait référence au facteur de levier pour chaque point de données.
Le package statsmodels peut être utilisé pour calculer les résidus étudiants en Python. À titre d'illustration, considérons ce qui suit :
OLSResults.outlier_test()
Où OLSResults fait référence au modèle linéaire ajusté à l'aide de la méthode ols() de statsmodels.
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()
Où « note » et « score » font référence à une régression linéaire simple.
Importez numpy, pandas, API Statsmodel.
Créez un ensemble de données.
Effectuez un modèle de régression linéaire simple sur l'ensemble de données.
Calculez les résidus studentisés.
Imprimez les résidus studentisés.
Voici une démonstration de l'utilisation de la bibliothèque scikit-posthocs pour exécuter les tests de 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]})
Créez ensuite un modèle de régression linéaire en utilisant la classe OLS statsmodels -
#fit simple linear regression model model = ols('rating ~ points', data=df).fit()
En utilisant la méthode outlier test(), les résidus studentisés pour chaque observation de l'ensemble de données peuvent être générés dans un 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
Nous pouvons également tracer rapidement les valeurs prédictives par rapport aux résidus studentisés -
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')
Ici, nous utiliserons la bibliothèque matpotlib pour dessiner le graphique avec color = 'black' et lifestyle = '--'
Importer la bibliothèque pyplot de matplotlib
Définir les valeurs prédictives
Définir le résidu studentisé
Créez un nuage de points de prédicteurs par rapport aux résidus étudiantisés
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')
Identifier et évaluer les éventuelles valeurs aberrantes des données. L'examen des résidus étudiés vous permet de trouver les points qui s'écartent considérablement de la tendance globale des données et d'explorer pourquoi ils affectent le modèle ajusté. Identifier les observations significatives Les résidus studentisés peuvent être utilisés pour découvrir et évaluer des données influentes qui ont un impact significatif sur le modèle ajusté. Recherchez des emplacements à fort effet de levier. Les résidus studentisés peuvent être utilisés pour identifier les points de levier élevés. L'effet de levier est une mesure de l'influence d'un point sur le modèle ajusté. Dans l’ensemble, l’utilisation de résidus studentisés permet d’analyser et d’améliorer les performances des modèles de régression.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!