¿Qué es la distancia de Cook?

Autor: | Última modificación: 19 de octubre de 2022 | Tiempo de Lectura: 2 minutos
Temas en este post:

La distancia de Cook nos sirve para detectar outliers, valores cuyo valor influye mucho en la salida de la regresión lineal. En este post, profundizamos en qué es la distancia de Cook y cómo calcularla.

Calcular la distancia de Cook

Para entender qué es la distancia de Cook, es imprescindible saber cómo calcularla. Se calcula mirando la diferencia entre el modelo completo con todas las muestras menos el modelo generado eliminando la muestra bajo estudio. La distancia de Cook para la muestra / se puede calcular como:

¿Qué es la distancia de Cook? 1
In [72]: plot (cooks.distance (mode_powerplant))
distancia de cook: gráfica 1

¿Qué ocurre si juntamos un modelo con un grupo de test y luego con otro grupo de test?

La distancia de Cook hace eso, pero sacando una variable de la ecuación. Es decir, el dataset de train crea un nuevo modelo sin un punto y ve si ha cambiado mucho o no; luego, pasa a otro y verifica lo mismo, si ha cambiado mucho o no, y así sucesivamente.

Si el hecho de insertar o sacar el punto cambia mucho la regresión, tiene una gran importancia, ya que modifica muchísimo la gráfica y se genera una especie de outlier.

Podemos eliminar ese outlier del siguiente modo:

In [73]: powerplant.train_clean <- powerplant.train [cooks.distance (model_powerplant) <0.005,]
model_powerplant_clean<-lm(PE-AT+V+AP+RH,data = powerplant.train_clean)
summary(model_powerplant_clean)

Call:
Im(formula = PE – AT + V + AP + RH, data = powerplant, train_clean)

Residuals:
Min: -26.9815
1Q: -3.1315
Median: -0.1563
3Q: 3.1611
Max: 17.7887

Coefficients:

EstimateStd.Errort valuePr(>ltl)
(Intercept)464.04597711.27876141.143< 2e -16 ***
AT.1.9925950.017794-111.980< 2e -16 ***
V-0.2292350.008479-27.034< 2e -16 ***
AP0.0528860.0109464.8321.38e – 06 ***
RH-0.1586850.004837-32.803< 2e -16 ***

Signif. codes:

0 ‘ *** ‘

0.001 ‘ ** ‘

0.01 ‘ * ‘

0.05 ‘ . ‘

0.1 ‘ ‘

1

Residual standard error: 4.453 on 6688 degrees of freedom

Multiple R-squared: 0.9312, Adjusted R-squared: 0.9312

F-statistic: 2.264e+04 on 4 and 6688 DF, p-value: < 2.2e-16

In [ ] : powerplant test$pe_est<-predict (model_powerplant_clean, powerplant.test)
plot(powerplant.test$PE, (powerplant, test$PE-powerplant.test$pe_est))
sqrt (mean ( (powerplant.test$PE-powerplant-test$pe_est)^2))
myrsquared (powerplant.test$PE, powerplant.testspe_est)

El resultado:

4.64242613613001

0.927834557278113

La gráfica quedaría más o menos así:

distancia de cook: gráfica 2

¿Y ahora qué sigue?

Si comparamos el segundo modelo con el primero, básicamente no ha cambiado nada. Sin embargo, debes fijarte en cómo se desenvuelven los residuos entre un modelo y otro para saber si es una mejor o una peor opción.

Como hemos visto, la distancia de Cook puede ser muy útil en análisis estadísticos en Big Data, aunque esto dependerá mucho de qué es lo que buscas. Para adentrarte más en estos conocimientos, te recomendamos seguir nuestro Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp, en donde aprenderás todo lo necesario para ser el mejor profesional. Tendrás a profesores que te guiarán en todo el camino y, en poco tiempo, podrás abrir las puertas del mercado laboral IT. ¡Solicita más información y cambia tu vida!

👉 Descubre más del Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp ¡Descarga el temario!

👉 Prueba el Bootcamp Gratis por una Semana ¡Empieza ahora mismo!

👉 Conoce nuestros otros Bootcamps en Programación y Tecnología

[email protected]

¿Trabajo? Aprende a programar y consíguelo.

¡No te pierdas la próxima edición del Aprende a Programar desde Cero Full Stack Jr. Bootcamp!

 

Prepárate en 4 meses, aprende las últimas tecnologías y consigue trabajo desde ya. 

 

Solo en España hay más de 120.400 puestos tech sin cubrir, y con un sueldo 11.000€ por encima de la media nacional. ¡Es tu momento!

 

🗓️ Próxima edición: 13 de febrero

 

Reserva tu plaza descubre las becas disponibles.