Cómo calcular residuos estandarizados en Python

Actualizado el 17 de julio de 2024, por Luis Benites.

Un residual es la diferencia entre un valor observado y un valor predicho en un modelo de regresión .

Se calcula como:

Residual = Valor observado – Valor previsto

Si graficamos los valores observados y superponemos la línea de regresión ajustada, los residuos para cada observación serían la distancia vertical entre la observación y la línea de regresión:

Ejemplo de residual en estadística

Un tipo de residual que usamos a menudo para identificar valores atípicos en un modelo de regresión se conoce como residual estandarizado .

Se calcula como:

r i = e i / s (e i ) = e i / RSE√ 1-h ii

dónde:

  • e i : El i- ésimo residuo
  • RSE: el error estándar residual del modelo
  • h ii : El apalancamiento de la i- ésima observación

En la práctica, a menudo consideramos que cualquier residuo estandarizado con un valor absoluto superior a 3 es un valor atípico.

Este tutorial proporciona un ejemplo paso a paso de cómo calcular residuos estandarizados 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 los residuos estandarizados

A continuación, calcularemos los residuos estandarizados del modelo:

# crear instancia de influencia
 influencia = modelo. get_influence ()

#obtener residuos
 estandarizados standardized_residuals = influencia. resid_studentized_internal

#display impresión de residuos
 estandarizados (standardized_residuals)

[1,40517322 0,81017562 0,07491009 -0,59323342 -1,2482053 -0,64248883
  0.59610905 -0.05876884 -2.11711982 -0.066556 0.91057211 1.26973888]

De los resultados podemos ver que ninguno de los residuales estandarizados excede un valor absoluto de 3. Por lo tanto, ninguna de las observaciones parece ser un valor atípico.

Paso 4: Visualice los residuos estandarizados

Por último, podemos crear un diagrama de dispersión para visualizar los valores de la variable predictora frente a los residuos estandarizados:

importar matplotlib. pyplot  como plt

plt. dispersión (df.x, residuales_estandarizados)
plt. xlabel (' x ')
plt. ylabel (' Residuos estandarizados ')
plt. axhline (y = 0, color = ' black ', linestyle = ' - ', linewidth = 1)
plt. mostrar ()

Gráfico de residuos estandarizados en Python

Recursos adicionales

¿Qué son los residuos?
¿Qué son los residuos estandarizados?
Cómo calcular residuos estandarizados en R
Cómo calcular residuos estandarizados en Excel

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

Redactor del artículo

  • Luis Benites
    Director de Statologos.com

    Tengo una Maestría en Ciencias en Estadística Aplicada y he trabajado en algoritmos de aprendizaje automático para empresas profesionales tanto en el sector de la salud como en el comercio minorista.

    Ver todas las entradas

¿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:

Deja un comentario

Un diagrama de caja es un tipo de diagrama que podemos usar para visualizar el resumen de cinco números de…
statologos comunidad-2

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

You have Successfully Subscribed!