Contenido de este artículo
- 0
- 0
- 0
- 0
La distancia de Cook se utiliza para identificar observaciones influyentes en un modelo de regresión.
La fórmula para la distancia de Cook es:
D yo = (r yo 2 / p * MSE) * (h ii / (1-h ii ) 2 )
dónde:
- r i es el i- ésimo residuo
- p es el número de coeficientes en el modelo de regresión
- MSE es el error cuadrático medio
- h ii es el i ésimo valor apalancamiento
Esencialmente, la distancia de Cook mide cuánto cambian todos los valores ajustados en el modelo cuando se elimina la i- ésima observación.
Cuanto mayor sea el valor de la distancia de Cook, más influyente será una observación determinada.
Una regla general es que cualquier observación con una distancia de Cook superior a 4 / n (donde n = observaciones totales) se considera muy influyente.
Este tutorial proporciona un ejemplo paso a paso de cómo calcular la distancia de Cook para un modelo de regresión dado en Python.
Paso 1: ingrese los datos
Primero, crearemos un pequeño conjunto de datos para trabajar en Python:
importar pandas como pd #create dataset df = pd. DataFrame ({' x ': [8, 12, 12, 13, 14, 16, 17, 22, 24, 26, 29, 30], ' y ': [41, 42, 39, 37, 35, 39, 45, 46, 39, 49, 55, 57]})
Paso 2: ajustar el modelo de regresión
A continuación, ajustaremos un modelo de regresión lineal simple :
importar modelos de estadísticas. api como sm #define la variable de respuesta y = df [' y '] #definir variable explicativa x = df [' x '] #add constante a las variables predictoras x = sm. add_constant (x) #fit modelo de regresión lineal modelo = sm. MCO (y, x). encajar ()
Paso 3: Calcule la distancia de Cook
A continuación, calcularemos la distancia de Cook para cada observación en el modelo:
#suppress notación científica import numpy as np notario público. set_printoptions (suprimir = Verdadero ) # crear instancia de influencia influencia = modelo. get_influence () #obtener la distancia de Cook para cada observación cocineros = influencia. cooks_distance #display Impresión de distancias del cocinero (cocineros) (matriz ([0.368, 0.061, 0.001, 0.028, 0.105, 0.022, 0.017, 0., 0.343, 0., 0.15, 0.349]), matriz ([0.701, 0.941, 0.999, 0.973, 0.901, 0.979, 0.983, 1., 0.718, 1., 0.863, 0.713]))
De forma predeterminada, la función cooks_distance () muestra una matriz de valores para la distancia de Cook para cada observación seguida de una matriz de valores p correspondientes.
Por ejemplo:
- Distancia de Cook para la observación n. ° 1: .368 (valor de p: .701)
- Distancia de Cook para la observación # 2: .061 (valor de p: .941)
- Distancia de Cook para la observación # 3: .001 (valor de p: .999)
Y así.
Paso 4: Visualice las distancias de Cook
Por último, podemos crear un diagrama de dispersión para visualizar los valores de la variable predictora frente a la distancia de Cook para cada observación:
importar matplotlib. pyplot como plt plt. esparcir (df.x, cocina [0]) plt. xlabel (' x ') plt. ylabel (' Distancia de cocineros ') plt. mostrar ()
Pensamientos finales
Es importante tener en cuenta que Cook’s Distance debe usarse como una forma de identificar observaciones potencialmente influyentes. El hecho de que una observación sea influyente no significa necesariamente que deba eliminarse del conjunto de datos.
Primero, debe verificar que la observación no sea el resultado de un error de entrada de datos o alguna otra ocurrencia extraña. Si resulta ser un valor legítimo, puede decidir si es apropiado eliminarlo, dejarlo o simplemente reemplazarlo con un valor alternativo como la mediana.
- https://r-project.org
- https://www.python.org/
- https://www.stata.com/
¿Te hemos ayudado?
Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:La ayuda no cuesta nada
Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo: