Topic outline
-
ESTADÍSTICA APLICADA V - P1078-TEÓRICO-PRACTICO-N0173-05-N01
PRIMER NIVEL
CARLOS JULIO MAYORGA ARIAS
—
CARLOS JULIO MAYORGA ARIAS
—
-
Análisis de información contextual
-
Introducción
En la clase 1 explicamos que, de todas las variables contenidas en un dataset, podríamos distinguir entre aquellas que son predictoras y las que son consideradas variables de respuesta. Esto lo pudimos establecer a través de la función de correlación. En la clase 3 revisamos que, para asegurar esta relación, el levantamiento de datos debía seguir un proceso formal con el fin de garantizar que la data no estuviera sesgada. Por otro lado, en la clase 2, revisamos los conceptos de distribución de probabilidades de los valores de una variable.
Una vez que descubrimos las relaciones entre variables, nos preguntamos si podemos establecer una ecuación que modele la relación entre dichas variables. Si pudiéramos encontrar esta ecuación (que en adelante llamaremos modelo), podríamos, en primer lugar, validar que se ajusta a las observaciones y, en segundo lugar, predecir nuevos valores de las variables de respuesta dentro de determinados intervalos de confianza.
ANALISIS DE RESIDUOS
Conocido también como límites de confianza. Es un rango de valores en el cual se encontraría el valor del parámetro, con una probabilidad determinada.
INTERVALO DE CONFIANZA
Conocido también como límites de confianza. Es un rango de valores en el cual se encontraría el valor del parámetro, con una probabilidad determinada.
-
Modelos de regresión11.1 Determinación de linealidad y homocedasticidad
1. Modelos de regresión lineal
Un modelo no es más que la representación del funcionamiento de un proceso mediante una o más ecuaciones matemáticas que tratan de explicar cómo funciona dicho proceso. En estos modelos, es básicamente una ecuación, pero otros tipos de modelos podrían representarse mediante un sistema de ecuaciones. Un ejemplo de esto son los modelos epidemiológicos.
MODELOS LINEALES Y NO LINEALES
Las funciones R de correlación cor() nos indican si existe una relación entre la variable predictora y la variable de respuesta a través del cálculo del índice de correlación. Este puede ser calculado mediante métodos paramétricos y no paramétricos. Para el propósito de los modelos, preferimos siempre el método paramétrico conocido como la correlación de Pearson.
Figura 1: Fórmula de la correlación de Pearson Creación de autor Alfonso Prado Figura 1: Fórmula de la correlación de Pearson Creación de autor Alfonso Prado
Es importante mencionar que el coeficiente de Pearson solo nos indica que, si la variable predictora sube o baja en valor, la variable de respuesta también subirá o bajará, sin decirnos en qué proporción lo hará o si esa proporción es constante. Estos son los conceptos de linealidad y homocedasticidad. Dependiendo de si la relación es lineal o no, utilizaremos distintos tipos de modelos. En esta clase, iniciaremos con modelos lineales. Por lo tanto, cuando hacemos el análisis de correlación, debemos encontrar ya sea una correlación positiva o negativa como se muestra en la Figura 2. Si utilizáramos una variable que muestra una correlación nula o curvilínea, esta abonaría al incremento de la incertidumbre y, por ende, al error estándar de la estimación.
Figura 2: Relación lineal y no lineal Creación de autor Alfonso Prado Figura 2: Relación lineal y no lineal Creación de autor Alfonso Prado
El problema es que los valores rara vez están alineados perfectamente, como se ve en la Figura 3a. Esto se debe a que las observaciones incluyen un error de muestreo. Lo que buscamos es que la recta se ubique más o menos por la media de las observaciones para un valor dado de X (Figura 3b).
Figura 3: Índice Pearson ideal (a) Creación de autor Alfonso Prado Figura 3: Índice Pearson ideal (a) y realista (b) Creación de autor Alfonso Prado
Figura 3: Índice Pearson realista (b) Creación de autor Alfonso Prado Figura 3: Índice Pearson realista (b) Creación de autor Alfonso Prado
11.2 Mínimos cuadrados ordinarios MCOLa homocedasticidad se refiere a una condición en la cual la varianza del residuo, o término de error, en un modelo de regresión es constante. Es decir, el término de error no varía mucho a medida que cambia el valor de la variable predictora. Si hay demasiada variación, diremos que su comportamiento es heterocedástico y, como consecuencia, el modelo no estará bien definido. La siguiente figura visualiza la varianza de la relación entre dos variables X y Y.
Figura 4: Concepto de cedasticidad Creación de autor Alfonso Prado Figura 4: Concepto de cedasticidad Creación de autor Alfonso Prado
Aprende más
Describe en concepto y pruebas (Homocedasticidad y heterocedasticidad), puedes leer el siguiente artículo ¡Accede aquí!
Creación de modelos de regresión simple
En estos modelos tenemos solamente una variable predictora y por supuesto una variable de respuesta. La ecuación lineal estará definida por tres coeficientes:
La intercepción (a) indica cual es el valor de la variable de respuesta cuando la predictora es igual a 0.
La pendiente (b) indica cuánto cambia “Y” cuando “X” cambia en 1 unidad.
El error ε o SE, conocido como error estándar de la regresión, representa la distancia promedio a la que caen los valores observados desde la línea de regresión, le dice cuán incorrecto es el modelo de regresión en promedio usando las unidades de la variable de respuesta
Figura 5: Fórmula de la regresión lineal Creación de autor Alfonso Prado Figura 5: Fórmula de la regresión lineal Creación de autor Alfonso Prado
11.3 Coeficiente de determinaciónDe acuerdo con Webster (2000), “El propósito del análisis de regresión es determinar una recta que se ajuste a los datos muestrales mejor que cualquier otra recta”. El algoritmo MCO producirá esta recta que se extiende por el centro del diagrama de dispersión. Este algoritmo calculará los valores de a y b de acuerdo con las siguientes fórmulas.
Figura 6: Fórmulas de cálculo de los coeficientes de regresión mediante Algoritmo MCO Creación de autor Alfonso Prado Figura 6: Fórmulas de cálculo de los coeficientes de regresión mediante Algoritmo MCO Creación de autor Alfonso Prado
Para la creación del modelo, R provee algunas funciones, la más simple es lm cuya sintaxis se muestra en la siguiente figura.
Figura 7: Función programática lm() Creación de autor Alfonso Prado Figura 7: Función programática lm() Creación de autor Alfonso Prado
La fórmula es el argumento más importante, misma que define cuál será la variable predictora y la variable de respuesta, y toma la forma de la siguiente expresión: respuesta ~ predictora. El “~” se lee como decir “se distribuye como” o “dependiendo de" cuando se ve en las funciones de regresión
Coeficientes, valores ajustados y residuos
Como resultado de la ejecución de lm, este devuelve un objeto que contiene varias propiedades, mediante las cuales podemos visualizar la relación entre las observaciones y los valores de la regresión y vamos a ubicar los siguientes conceptos:
Los coeficientes corresponden al cálculo hecho por el algoritmo MCO para estimar la regresión, ver figura 6.
Valores ajustados, corresponden a los valores que la función de regresión estima para cada valor de las observaciones en base a lo indicado en la figura 5. Estos valores se los denota como Ŷ (y-hat).
Los residuos corresponden a la diferencia entre Ŷ y la observación (Y) y nos interesa que estos residuos sean lo más pequeño posible porque de eso depende la precisión del modelo.
Figura 8: Valores ajustados y residuos Creación de autor Alfonso Prado Figura 8: Valores ajustados y residuos Creación de autor Alfonso Prado
Análisis de coeficientes
Al ejecutar la función summary sobre un objeto de la clase lm, nos retornará una cantidad de estadísticos que debemos analizar. La primera sección está relacionada con los coeficientes, donde encontraremos no solo los coeficientes generados por el MCO, sino también algunos estadísticos mencionados en la tabla 1.
Tabla 1: Sección de Coeficientes Creación de autor Alfonso Prado Tabla 1: Sección de Coeficientes Creación de autor Alfonso Prado
La primera columna contiene los nombres de las variables que son parte del modelo. El “intercept” corresponde al coeficiente a de la fórmula de la regresión y siempre estará presente con este nombre. A continuación, estarán los nombres de las variables (por ejemplo, “fheight”) que han sido incluidas en el modelo.
La segunda columna contiene la estimación de los coeficientes; nótese la palabra estimación, es decir, que estos no son exactos y que los mismos pueden tener un intervalo de confianza, que figura en la tercera columna como Error Estándar. Lo que nos interesa es que el error estándar sea lo más pequeño posible con respecto al coeficiente. Esto se refleja en la cuarta columna, t-value, que es la relación entre el valor estimado y el error estándar.
La columna Pr>|t| corresponde a p-value de un t-test que prueba la hipótesis de si el valor del coeficiente podría ser igual a 0. Esta debe contrastarse con el nivel α, que por defecto es .05 (95%). En otras palabras, nos permite validar si el coeficiente pudiera ser 0. Si la hipótesis es correcta, indicaría que la variable no es estadísticamente significativa.
En conclusión, valoramos la pertenencia de las variables en base a los siguientes criterios:
- • t-value alto indicará que el error en su cálculo es bajo
- • p-value bajo indicará que el coeficiente no es cero.
Por último, summary nos presenta unos códigos de significación del p-value, es una forma de indicar que tan importante es la variable y preferimos variables con “***” .
Una forma gráfica de entender la importancia de cada variable es mediante la función coefplot del paquete coefplot. Este gráfico nos presenta la probabilidad de que el coeficiente sea 0 mediante un diagrama de barras de error. Este diagrama contiene un punto correspondiente al valor estimado de los coeficientes y dos barras que representan la variabilidad de ±1 σ (traza gruesa) y ±2 σ (traza delgada). Valoramos una variable como significativa si las barras nunca cruzan la línea punteada de 0.
Figura 9: Coefplot de una regresión Creación de autor Alfonso Prado Figura 9: Coefplot de una regresión Creación de autor Alfonso Prado
Otra sección del summary del modelo que es de particular interés es la relacionada con los residuos.
Figura 10: Estadísticos de los Residuos C reación de autor Alfonso Prado Figura 10: Estadísticos de los Residuos Creación de autor Alfonso Prado
En general, nos interesan dos temas:
- • Los residuos deben ser pequeños, residuos altos nos indican que el modelo no está bien definido
- • Los residuos deben ser pequeños, residuos altos nos indican que el modelo no está bien definido
Lo que el summary del modelo nos presenta es esta distribución en términos de cuartiles. La forma más fácil de validar si este supuesto se cumple es mediante un diagrama de caja, según el cual la distancia del Q1 a la media debe ser similar a la distancia de la media al Q3.
Figura 11: Diagramas de Caja de una distribución normal (a) Creación de autor Alfonso Prado Figura 11: Diagramas de Caja de una distribución normal (a) Creación de autor Alfonso Prado
Figura 11: Diagramas de Caja de una distribución sesgada(b) Creación de autor Alfonso Prado Figura 11: Diagramas de Caja de una distribución sesgada(b) Creación de autor Alfonso Prado
En este punto, nos preguntamos ¿cuáles son las causas para que la distribución de los residuos no sea normal? Comúnmente, esto tiene que ver con los valores atípicos (outliers en inglés) representados en el diagrama de caja por un color diferente (rojo en el ejemplo). En general, cualquier punto de datos que se encuentre fuera del rango intercuartílico (ejemplo: 1.5 * IQR) se considera un valor atípico, donde IQR se calcula como la distancia entre los valores del percentil 25 y 75 para la variable. Estos valores atípicos harán que el diagrama de caja se desvíe hacia cualquiera de sus extremos. El analista debe encontrar la razón por la cual se presentan estos “outliers", siendo posible que los mismos sean errores de medida, en cuyo caso el analista podría eliminar dichas observaciones.
Pero también es posible que los valores sean verdaderos, en cuyo caso su eliminación afectará el modelo al no poder predecir valores tan extremos. Muchos autores toman una opción intermedia conocida como imputación, que implica el reemplazo de valores atípicos por un valor máximo o mínimo.
Aprende más
Para conocer más sobre (Imputación ), puedes leer el siguiente artículo ¡Accede aquí!
Otra sección importante que nos entrega el summary es la relacionada con las métricas de la bondad del modelo.
Figura 12: Métrica de la bondad del modelo Creación de autor Alfonso Prado Figura 12: Métrica de la bondad del modelo Creación de autor Alfonso Prado
Error estándar de los residuos: Este valor nos indica la varianza de los residuos, es decir, qué tan dispersos están los valores de los residuos. Una dispersión muy grande significa que, para muchas observaciones, el residuo es alto, y en general queremos que la varianza sea pequeña o moderada.
R2 y R2 cuadrado ajustado: También llamado coeficiente de determinación es una medida de qué tan bien se ajusta su modelo a los datos. Como habíamos visto en la fórmula de la regresión (figura 5), el valor Ŷ está afectado por el ε o SE. R2 indica que tanto de la variable de respuesta está dado por la variable predictora y que tanto por el error ε.
Valores más altos representan diferencias más pequeñas entre los datos observados y los valores ajustados.
En el mejor caso, los valores observados coinciden con los ajustados, la suma de cuadrados de los residuos (RSS) es 0 y R2 =1 El valor ajustado contiene además una penalización en función de cantidad de variables que contiene y es una medida apropiada para medir un modelo de regresión múltiple.
Veamos un ejemplo completoUsaremos el dataset father.son que es parte del paquete UsingR, este dataset contiene 1078 observaciones de altura de padres con respecto a la altura de sus hijo. El propósito es demostrar que se puede obtener un modelo que permita predecir la altura del hijo (variable de respuesta) en función de la altura del padres (variable predictora)
#Cargamos el dataset
require(UsingR) data(father.son) names(father.son)#En primer lugar analizamos la data
#Vamos a validar que existe una relación entre las variables
cor(father.son)
DATASET DATASET
#Vemos que la correlación es positiva pero no fuerte, lo cual puede ser debido a que la relación no es completamente lineal. #Podemos validad la linealidad mediante un diagrama de dispersión ggplot (data=father.son , aes(x=fheight , y= sheight)) + geom_point()+ geom_smooth(method=loess)+ xlab("Altura Padre")+ ylab("Altura hijo")
Altura Padre Nombre_de_la_figura
#Del gráfico podemos observar que la relación si parece ser lineal pero lo que se nota es una varianza alta #En segundo lugar debemos validar si la data presenta datos atípicos (outliers), lo haremos con un diagrama de caja ggplot (data=father.son , aes(x=fheight,y=sheight)) + geom_boxplot(outlier.colour="red", outlier.shape=16, outlier.size=2, notch=FALSE)
Fheight Nombre_de_la_figura
#Del diagrama anterior concluimos que existen outliers, pero no sabemos exactamente cuantos son, el diagrama de caja solo muestra un punto por cada valor, por lo que es mejor superponer las observaciones con el siguiente código. ggplot (data=father.son , aes(x=fheight,y=sheight)) + geom_boxplot(outlier.colour="red", outlier.shape=16, outlier.size=2, notch=FALSE)+ geom_point( aes(x=fheight, y=sheight), color="LIGHTBLUE")
Fheight Nombre_de_la_figura
#Notamos que existen varios datos atípicos. Pero como indicamos anteriormente, estos datos no necesariamente deben ser borrados, solo por propósito de demostración, indicaremos como proceder en caso de que se desee borrarlos. NROW(father.son) #Definimos una función is_outlier <- function(x) { #obtenemos el vector de cuantiles qs = quantile(x, probs = c(0.25, 0.75), na.rm = TRUE) #Sacamos el valor los cuantiles 1 y 3 lowerq <- qs[1] upperq <- qs[2] iqr = upperq - lowerq #Definimos los límites, los valores para base usados son 1.5 o 3, #depende de que tan exigentes queremos ser en el análisis (1.5 más exigente, 3 es menos exigente). base=1.5 extreme.threshold.upper = (iqr * base) + upperq extreme.threshold.lower = lowerq - (iqr * base) #Creamos un vector lógico que nos indica si es outlier o no x > extreme.threshold.upper | x < extreme.threshold.lower } vect1 <- is_outlier(father.son$sheight) #filtramos fs1 <- father.son$fheight[!vect1] fs2 <- father.son$sheight[!vect1] #Creamos un nuevo dataset father_son_sin_outliers <- data.frame(fheight=fs1, sheight=fs2) NROW(father_son_sin_outliers) #Se han eliminado 19 observaciones #Creamos nuestro modelo padre_hijoLM <- lm(sheight ~ fheight , data= father_son_sin_outliers) #Revisando el modelo summary(padre_hijoLM)
Nombre_de_la_figura
#Podemos validar si los residuos son normales residuos <- padre_hijoLM$residuals resdf <- data.frame(X=residuos, Y=dnorm(residuos)) ggplot (data=resdf , aes(x=X, y=Y)) + geom_line(color="BLUE")
Nombre_de_la_figura
#Podemos validar si los residuos son normales residuos <- padre_hijoLM$residuals resdf <- data.frame(X=residuos, Y=dnorm(residuos)) ggplot (data=resdf , aes(x=X, y=Y)) + geom_line(color="BLUE")
Nombre_de_la_figura Nombre_de_la_figura
#Concluimos que los residuos son normales #Obtenemos un R2 de 0.24, lo cual indica que no es muy bueno #Y error estándar de los residuos de 0.226
-
-
Actividades
-
Make a submission
-
Make attempts: 1
-
Regresión Múltiple
-
Introducción
En la clase anterior, revisamos el concepto de la regresión lineal simple. Sin embargo, la mayoría de los negocios, procesos y eventos que se modelan contienen una gran cantidad de variables que afectan a la variable de respuesta, lo que hace que un modelo con una sola variable dé como resultado un error estándar considerable.
En estos modelos, además de identificar qué variables son importantes, vamos a considerar una serie de aspectos clave como la multicolinealidad y el sobreajuste, que, de no controlarse, podrían llevarnos a un error de predicción exagerado.
DIAGRAMA DE CAJAS
Conocido también como BOXPLOT. Es un importante gráfico del análisis exploratorio de datos. Al igual que el histograma, permite tener una idea visual de la distribución de los datos. Permite determinar si hay simetría, ver el grado de variabilidad existente y detectar los "outliers" (datos muy diferentes al conjunto de información), es decir la existencia de posibles datos discordantes. Además, el Boxplot es bien útil para comparar grupos. Es un diagrama que muestra la distancia en que se encuentran los datos y cómo están distribuidos equitativamente.
-
Regresión múltiple12.1 El error estándar de la estimación
En general, al modelar un proceso, encontramos que existen múltiples variables que influyen en su resultado. Un modelo de regresión lineal múltiple contiene múltiples variables predictoras. Es importante notar que no todas las variables afectarán el modelo en igual medida.
Un modelo múltiple es básicamente el resultado de varios modelos de regresión simple combinados. Por lo tanto, la fórmula general es la misma para cada una de las variables. Matemáticamente, los coeficientes, el error estándar y las observaciones se pueden representar mediante vectores y matrices, como se muestra en la siguiente figura.
Figura 1: Fórmula general de regresión múltiple
Creación del autor Alfonso PradoFigura 1: Fórmula general de regresión múltiple
Creación del autor Alfonso Prado
Notamos que las variable predictoras (X) se halla en mayúscula, indicando que estos representan una matriz, más específicamente una matriz de dimensión n*p, donde n es el número de observaciones y p la cantidad de predictores del modelo (figura 2a). Los coeficientes (ahora llamados β) están representados por un vector de longitud p (figura 2b). El error de cada regresión es también un vector de longitud p, es decir, un error por cada predictor (figura 2c). La variable dependiente Y (en mayúscula) es también una matriz que representa la contribución de cada variable (figura 2d).
Por último, también tenemos un vector ε una matriz de dimensión p X 1, que representa el error como explicamos en la clase anterior.
Figura 2: Componentes de regresión múltiple
Creación del autor Alfonso PradoFigura 2: Componentes de regresión múltiple
Creación del autor Alfonso Prado
Funciones Programáticas de regresión múltiple
La función lm mencionada anteriormente es la misma utilizada para modelos de regresión múltiple; pero en este caso, incorporaremos más variables predictoras mediante los siguientes operadores:
El símbolo "+" es una solicitud implícita de calcular un(os) coeficiente(s) adicionales para otras variable(s) predictora(s).
Por ejemplo: lm(valxSqFt ~TUnits + GSqFt + Boro , data=housing) indicaría que el modelo contiene 3 variables predictoras (TUnits, GSqFt , y Boro )
Por otro lado, hay ocasiones donde nos interesa ver el efecto combinado de dos variables. Por ejemplo, en un modelo para predecir el riesgo de sufrir diabetes, se ha considerado como variable predictora el ejercicio que la persona realiza como mecanismo para reducir la cantidad de glucosa en la sangre. Sin embargo, el ejercicio por sí solo no es suficiente para predecir correctamente el riesgo, por lo que incorporamos una segunda variable, el índice de masa corporal (IMC o BMI en inglés). En este caso, el riesgo está dado por la interacción de estas dos variables. El asterisco (*) se utiliza para indicar todos los efectos principales e interacciones entre las variables a las que se une. Entonces, por ejemplo, el término “ejercicio * IMC” se expandiría a los tres términos: ejercicio, IMC, y ejercicio: IMC.
El símbolo “:” indica que se desea solo el efecto combinado de las variables. Por ejemplo, ejercicio:IMC representa solo el efecto combinado de estas variables y no el efecto de cada variable por separado.
PREDICCIÓN:Una vez establecido el modelo (lm), podemos obtener predicciones para los valores observados y nuevos valores, para lo cual usaremos la función prodict(). La siguiente figura muestra la sintaxis de esta función.
Figura 3: La función de predicción
Fuente: www.rdocumentation.orgFigura 3: La función de predicción
Fuente: www.rdocumentation.org
Esta función retorna un objeto del tipo lm, que contiene una cantidad de elementos como se muestra en la figura 4. Este objeto será pasado como argumento a la función predict para la predicción.
Además, debemos indicar cuáles son los valores de las variables predictoras para los cuales se debe realizar la predicción. Hay dos casos: el primero es realizar una predicción de las mismas observaciones y el segundo consiste en predecir nuevos valores o valores a futuro.
En el primer caso, usaremos las mismas observaciones como valores de entrada para la predicción. Uno podría preguntarse: ¿A qué propósito sirve esto? La respuesta es simple: es una forma rápida de evaluar la bondad del modelo.
En el segundo caso, debernos ingresar un dataframe (newdata) cuyas columnas contengan los valores a predecir.
Figura 4: Características de un modelo
Creación del autor Alfonso PradoFigura 4: Características de un modelo
Creación del autor Alfonso Prado
Adicionalmente, como hemos visto, las predicciones nunca serán exactas, existe una cierta incertidumbre dentro del cual estimamos que estará la predicción correcta. Otra vez, aquí tenemos 2 opciones.
El primer caso se trata de predecir la respuesta para un valor medio. De acuerdo con Szretter M.(2017) “Nos interesa estimar la respuesta media o esperada cuando (X1, . . . , Xp−1) toma el valor dado (Xh1, . . . , Xh,p−1) . Notamos a esta respuesta media por E (Yh) o bien E (Yh | (Xh1, . . . , Xh,p−1)) ”
Por ejemplo, (simplificando con un modelo de regresión simple) podemos tener algunas observaciones para el mismo valor de la variable predictora, con distintos resultados de la variable de respuesta. Esto nos dará un intervalo de confianza dentro del cual asumimos que se incluye el valor de la predicción.
En el segundo caso, de acuerdo con Szretter M.(2017) , “ queremos predecir un resultado individual surgido a partir de la distribución de Y. Por supuesto, la gran mayoría de los resultados individuales se desvían de la respuesta media, y esto debe ser tenido en cuenta por el procedimiento para la predicción de la Yh(nueva).” Por lo tanto, un intervalo de predicción será generalmente mucho más amplio que un intervalo de confianza para el mismo valor.
El argumento de “Interval” permite seleccionar el caso, mediante el valor de “confidence” (figura 4a) o Prediction” (figura 4b) y se lo puede visualizar mediante las rectas punteadas en rojo.
¿Cuál deberíamos usar? En general, estamos interesados en predicciones individuales específicas, por lo que un intervalo de predicción sería más apropiado.
De acuerdo con Bruce ( 2017) “El uso de un intervalo de confianza cuando debería usar un intervalo de predicción subestimará en gran medida la incertidumbre en un valor predicho dado “
Figura 5: A. Intervalos de Confianza y Predicción
Creación del autor Alfonso PradoFigura 5: A. Intervalos de Confianza y Predicción
Creación del autor Alfonso Prado
Figura 5: B. Intervalos de Confianza y Predicción
Creación del autor Alfonso PradoFigura 5: B. Intervalos de Confianza y Predicción
Creación del autor Alfonso Prado
Aprende más
Para conocer más sobre (Diferencias de intervalos), puedes leer el siguiente artículo ¡Accede aquí!
12.2 El problema de la multicolinealidadDentro de la salida de la regresión encontramos el término error estándar residual, es una medida de la variabilidad de los residuos de un modelo lineal.
Figura 6: Error estándar de los residuos
Creación del autor Alfonso PradoFigura 6: Error estándar de los residuos
Creación del autor Alfonso Prado
Este estadístico sirve para comparar que tan bueno es este modelo, pero no sabemos contra que debemos comparar. Para cada modelo estimaremos la suma de cuadrados de los residuos, esto estaría dado por la siguiente fórmula
Figura 7: Suma de cuadrados de los residuos
Creación del autor Alfonso PradoFigura 7: Suma de cuadrados de los residuos
Creación del autor Alfonso Prado
Entonces, usamos las sumas de cuadrados para calcular el ajuste del modelo más básico (que contiene un solo parámetro que ajuste a todas las observaciones). Es decir, elegimos el valor de μ tal que minimice la suma de cuadrados con respecto a la media, y esta es calculada sin tener en cuenta para nada los valores de las covariables (X1, . . . , Xp−1). En otras palabras, el modelo más básico solo toma en cuenta el intercept y no las variables, y la resta de los dos valores indicará que tan bueno es el modelo con respecto a la media, como se muestra en la siguiente figura.
Figura 8: Error Estándar residual
Creación del autor Alfonso PradoFigura 8: Error Estándar residual
Creación del autor Alfonso Prado
Donde: SSTo = suma de cuadrados totales SSRes= suma de cuadrados de la predicción a la media
El siguiente gráfico clarifica estos conceptos
Figura 9: Relación entre SSTo, SSRes, SSReg
Creación del autor Alfonso PradoBásicamente, si el modelo lineal es razonablemente bueno ajustará a los datos significativamente mejor que el modelo básico.Figura 9: Relación entre SSTo, SSRes, SSReg
Creación del autor Alfonso Prado
Además del tema relacionado con los valores atípicos, existen 2 problemas que pueden afectar el rendimiento del modelo.
SobreajusteEl sobreajuste es un error de modelado que ocurre cuando un modelo se ajusta demasiado a las observaciones. Generalmente, esto sucede al crear un modelo demasiado complejo para explicar los datos observados, lo cual conlleva a un mal desempeño al predecir valores no observados o futuros.
Como consecuencia, existirá sobreajuste entre el modelo y la muestra cuando lo que se busca es un modelo que, si bien ha sido entrenado con una muestra específica, sea capaz de realizar buenas predicciones sobre valores no contenidos en ella. La siguiente figura explica este concepto:
Figura 10: Comparación de modelos normal (a) y sobre ajustado (b)
Fuente AWS documentationFigura 10: Comparación de modelos normal (a) y sobre ajustado (b)
Fuente AWS documentation
Algunos factores que contribuyen al sobre ajuste son:
- • La cantidad de variables incorporadas al modelo es alta
- • La muestra es demasiado pequeña y no contiene posibles valores futuros
- • El dato de la muestra contiene información aleatoria que sobre la cual se entrena el modelo
De existir sobre ajuste, podemos utilizar el mecanismo de validación cruzada herramienta que permite limitar la data de entrenamiento. Existen numerosas técnicas de validación cruzada, pero la más efectiva es la llamada k-fold. Este mecanismo lo veremos en detalle en la clase 16. MulticolinealidadDe acuerdo con Webster (2000) “Este problema surge cuando unas de las variables independientes están relacionadas están relacionadas entre sí. Esta situación contraviene una de las condiciones de la regresión múltiple que es que las variables predictoras son independientes entre sí. Esto produce la incapacidad de separar los efectos individuales de cada variable independiente sobre Y. Ante la presencia de la multicolinealidad es imposible desenmarañar los efectos de cada X.”
Aprende más
Para conocer más sobre Multicolinealildad, puedes leer el siguiente artículo ¡Accede aquí!
Detección de la Multicolinealidad con la función VIF
VIF es un diagnóstico simple, conocido como factor de inflación de la varianza. Hay varios paquetes que disponen de esta función; el más común es HH, el cual calcula el VIF para cada predictor y lo compara con el resto. El R² de un predictor se compara con los predictores restantes, y, por lo tanto, se determina si la presencia del predictor i en el modelo es redundante. Los valores calculados de VIF superiores a 5 se consideran sospechosos, y valores por encima de 10 son evidencia clara de multicolinealidad.
Comparación de modelos En esta sección daremos algunas de las mejores prácticas para el desarrollo de modelos. Es importante entender que el desarrollo de un modelo de predicción es un proceso iterativo, en el cual el analista prueba distintas combinaciones de variables predictoras, valida las métricas de bondad del modelo, realiza ajustes y vuelve a iniciar el ciclo.
La selección correcta de variables basados en la correlación, incluir variables con baja correlación solo aumentará el error. Por otro lado, es importante validar la linealidad de la relación, para lo cual la visualización mediante diagramas de caja y dispersión son las herramientas principales
Evaluar la métrica de R2 ajustado que es el principal indicador de la calidad del modelo, cuyo propósito es obtener el mejor modelo con la menor cantidad de variables, esto es fácil de deducir en base a su fórmula de cálculo, que incluye el valor K, que representa la cantidad de variables del modelo.
Figura 11: Formula de R2 ajustado
Creación del autor Alfonso PradoFigura 11: Formula de R2 ajustado
Creación del autor Alfonso Prado
Más aún, al aumentar la cantidad de variables, es posible que el modelo sea afectado por la multicolinealidad. Las pruebas de VIF y análisis de correlación ayudan al analista a corregir este problema, encontrando el subconjunto óptimo de variables.
La siguiente figura muestra las observaciones de 2 modelos de regresión múltiple. Note como el modelo que obtiene R2=0.81 se ajusta mejor a las observaciones que aquella que obtiene un R2=0.45
Figura 12: Ajuste de 2 modelos
Creación del autor Alfonso PradoFigura 12: Ajuste de 2 modelos
Creación del autor Alfonso Prado
Por último, es importante validar si el modelo resultante puede contener un sobre ajuste, esto lo haremos mediante mecanismos de validación cruzada, los cuales ayudará a crear un modelo más equilibrado en cuanto a la predicción de observaciones vs. valores nuevos.
Veamos un ejemplo completohousing <- read.table("housing.csv" , sep=",", header=TRUE, stringsAsFactors=FALSE) names(housing)
Nombre_de_la_figura
#La variable dependiente es valxSqFt #Las siguientes variables parecen ser de interés 3,5:12 #Obteniendo correlación cor_housing <- cor(housing[,c(3,5:12)]) #Creamos unas funciones para visualizar la correlación get_lower_tri<-function(x){ x[upper.tri(x)] <- NA return(x) } get_upper_tri <- function(x){ x[lower.tri(x)]<- NA return(x) } reorder_cor_mat <- function(x){ dd <- as.dist((1-x)/2) hc <- hclust(dd) x <-x[hc$order, hc$order] } #Visualizando cor_mat <-reorder_cor_mat(cor_housing) #Obtenernos el triángulo superior upper_tri <- get_upper_tri(cor_mat) # Transponemos esta matriz melted_cor_mat <- melt(get_upper_tri(cor_mat), na.rm = TRUE) # Creando mapa de calor ggplot(melted_cor_mat, aes(Var2, Var1, fill = value))+ geom_tile(color = "white")+ scale_fill_gradient2(low = "blue", high = "red", mid = "white", midpoint = 0, limit = c(-1,1), space = "Lab", name="Corelación Ordenada") + theme_minimal()+ # minimal theme theme(axis.text.x = element_text(angle = 45, vjust = 1, size = 12, hjust = 1))+ coord_fixed()
Nombre_de_la_figura Nombre_de_la_figura
#Que observamos en este gráfico. #Vemos que las variables que mayor correlación tienen con la respuest son #GIncomexSqFt, ExpSqFt, FullValue, NetIncome. #Y las variables de menor importancia serían TUnits y GSqFt #Para la selección deberemos tambien validar que las varaibles predictoras no esten correlacionadas entre si. #Creamos el modelo house1 <- lm(valxSqFt ~TUnits+ GSqFt +Boro , data=housing) summary(house1)
Nombre_de_la_figura
#analizando residuos resdf <- data.frame(res=house1$residuals) ggplot(data=resdf ,aes (y=res, x=1))+ geom_boxplot(color="blue")
Nombre_de_la_figura Nombre_de_la_figura
#Analizando coeficientes coefplot(house1)
Nombre_de_la_figura Nombre_de_la_figura
#Analizando Intervalos de confianza confint(house1)
Nombre_de_la_figura Nombre_de_la_figura
#Analizando multicolinealidad house1 <- lm(valxSqFt ~TUnits+ GSqFt +Boro , data=housing) length(coef(house1))-1 vars <- c( "TUnits" , "GSqFt" , "BoroBrooklyn" , "BoroManhattan" , "BoroQueens" , "BoroStaten Island") house1vif <- HH::vif(house1) house1r2 <- 1/(1- summary(house1)$r.squared) sprintf("%s %f debe ser menor que %f para no multicolinealidad", vars , house1vif, house1r2) #Obtenemos [1] "TUnits 12.46 debe ser menor que 2.51 para no multicolinealidad" [2] "GSqFt 12.62 debe ser menor que 2.51 para no multicolinealidad" [3] "BoroBrooklyn 8.50 debe ser menor que 2.51 para no multicolinealidad" [4] "BoroManhattan 10.10 debe ser menor que 2.51 para no multicolinealidad" [5] "BoroQueens 6.18 debe ser menor que 2.51 para no multicolinealidad" [6] "BoroStaten Island 1.37 debe ser menor que 2.51 para no multicolinealidad" #Concluimos que TUnits y GsqFt tienen multicolinealidad -
-
Actividades
-
Make a submission
-
Make attempts: 1
-