Cómo calcular DFFITS en R

En estadística, a menudo queremos saber qué tan influyentes son las diferentes observaciones en los modelos de regresión.

Una forma de calcular la influencia de las observaciones es mediante el uso de una métrica conocida como DFFITS , que significa «diferencia en los ajustes».

Esta métrica nos dice cuánto cambian las predicciones hechas por un modelo de regresión cuando dejamos de lado una observación individual.

Este tutorial muestra un ejemplo paso a paso de cómo calcular y visualizar DFFITS para cada observación en un modelo en R.

Paso 1: crear un modelo de regresión

Primero, crearemos un modelo de regresión lineal múltiple utilizando el conjunto de datos mtcars integrado en R:

#cargar el conjunto de datos
datos (mtcars)

#ajustar un modelo de regresión
modelo <- lm (mpg ~ disp + hp, data = mtcars)

#ver resumen de
 resumen del modelo (modelo)

Coeficientes:
             Estimar Std. Valor t de error Pr (> | t |)    
(Intercepción) 30.735904 1.331566 23.083 <2e-16 ***
disp -0.030346 0.007405 -4.098 0.000306 ***
CV -0,024840 0,013385 -1,856 0,073679.  
---
Signif. códigos: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0,1 pulg. 1

Error estándar residual: 3,127 en 29 grados de libertad
R cuadrado múltiple: 0,7482, R cuadrado ajustado: 0,7309 
Estadístico F: 43,09 en 2 y 29 DF, valor de p: 2,062e-09

Paso 2: Calcule DFFITS para cada observación

A continuación, usaremos la función dffits () incorporada para calcular el valor DFFITS para cada observación en el modelo:

#calcular DFFITS para cada observación en el modelo
 dffits <- as . datos . marco (dffits (modelo))

#display DFFITS para cada dffits de observación


                    dffits (modelo)
Mazda RX4 -0,14633456
Mazda RX4 Wag -0.14633456
Datsun 710 -0.19956440
Hornet 4 Drive 0.11540062
Hornet Sportabout 0.32140303
Valiente -0.26586716
Duster 360 0.06282342
Merc 240D -0.03521572
Merc 230 -0.09780612
Merc 280 -0,22680622
Merc 280C -0,32763355
Merc 450SE -0.09682952
Merc 450SL -0.03841129
Merc 450SLC -0,17618948
Cadillac Fleetwood -0.15860270
Lincoln Continental -0.15567627
Chrysler Imperial 0.39098449
Fiat 128 0,60265798
Honda Cívico 0.35544919
Toyota Corolla 0.78230167
Toyota Corona -0.25804885
Dodge Challenger -0.16674639
Jabalina AMC -0.20965432
Camaro Z28 -0.08062828
Pontiac Firebird 0.67858692
Fiat X1-9 0,05951528
Porsche 914-2 0,09453310
Lotus Europa 0.55650363
Ford Pantera L 0.31169050
Ferrari Dino -0.29539098
Maserati Bora 0.76464932
Volvo 142E -0,24266054

Por lo general, echamos un vistazo más de cerca a las observaciones que tienen valores DFFITS mayores que un umbral de 2√ p / n donde:

  • p: número de variables predictoras utilizadas en el modelo
  • n: número de observaciones utilizadas en el modelo

En este ejemplo, el umbral sería 0,5 :

# encontrar el número de predictores en el modelo
 p <- longitud (coeficientes de $ del modelo) -1

# encontrar el número de observaciones 
n <- nrow (mtcars)

#calcular DFFITS valor umbral umbral 
<- 2 * sqrt (p / n)

trillar

[1] 0,5

Podemos ordenar las observaciones en función de sus valores DFFITS para ver si alguna de ellas supera el umbral:

#ordenar observaciones por DFFITS, dffits descendentes 
[ order (-dffits [' dffits (modelo) ']),]

 [1] 0,78230167 0,76464932 0,67858692 0,60265798 0,55650363 0,39098449
 [7] 0.35544919 0.32140303 0.31169050 0.11540062 0.09453310 0.06282342
[13] 0.05951528 -0.03521572 -0.03841129 -0.08062828 -0.09682952 -0.09780612
[19] -0,14633456 -0,14633456 -0,15567627 -0,15860270 -0,16674639 -0,17618948
[25] -0.19956440 -0.20965432 -0.22680622 -0.24266054 -0.25804885 -0.26586716
[31] -0,29539098 -0,32763355

Podemos ver que las primeras cinco observaciones tienen un valor DFFITS superior a 0,5, lo que significa que es posible que deseemos investigar estas observaciones más de cerca para determinar si son muy influyentes en el modelo.

Paso 3: Visualice los DFFITS para cada observación

Por último, podemos crear un gráfico rápido para visualizar los DFFITS para cada observación:

#plot los valores de DFFITS para cada 
parcela de observación (dffits (modelo), tipo = ' h ')

#add líneas horizontales en valores absolutos para el umbral
abline (h = trillar, lty = 2)
abline (h = -thresh, lty = 2)

DFFITS en R

El eje x muestra el índice de cada observación en el conjunto de datos y el valor y muestra el valor DFFITS correspondiente para cada observación.

Recursos adicionales

Cómo realizar una regresión lineal simple en R
Cómo realizar una regresión lineal múltiple en R
Cómo calcular estadísticas de apalancamiento en R
Cómo crear una gráfica residual en R

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

Para leer un archivo .txt con pandas en Python, puede usar la siguiente sintaxis básica: df = pd. read_csv ("…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!