martes, 21 de abril de 2015

Eliminar outlier en Regresion Lineal

Si se tienen outlier en una regresion lineal, puede usarse la medida "Distancia de Cook" para identificar estos valores atípicos y eliminarlos.

La distancia de cook (tambien le dicen Cook's D), es una medida normalizada de la influencia que tiene cada observación sobre el promedio de todas las predicciones. Para detalle, ver referencias.


El siguiente scrip elimina los outlier y vuelve a generar la regresión de manera repetida hasta sacar todos los outlier del set de datos:

datos           <- read.csv('https://www.dropbox.com/s/r2ext2rlqwc65o1/cook.csv?dl=1')
eliminados      <- datos[datos$cant=='none',] # data.frame sin registros
modelo_lm       <- lm(cant ~ precio, datos)
max.cook        <- max(cooks.distance(modelo_lm))
umbral          <- 1 #tambien puede ser 4/n, donde n=total registros. ver ref.1
 
while (max.cook >= umbral) 
  { 
    datos$cook  <- round(cooks.distance(modelo_lm),4) 
    eliminados  <- rbind(eliminados, datos[datos$cook>umbral,])  
    datos       <- subset(datos,!datos$cook>umbral)
    datos       <- within(datos, rm(cook))
    modelo_lm   <- lm(cant ~ precio, datos)
    max.cook    <- max(cooks.distance(modelo_lm))
  } 



NOTA:
1. Deben eliminarse o imputarse todos los NA del set de datos, sino da error.
2. La tabla "eliminados" guarda todos los registros eliminados




Referencia:
1. http://en.wikipedia.org/wiki/Cook's_distance



domingo, 19 de abril de 2015

Supuestos en Regresion Lineal


Para validar si un modelo de regresión lineal es bueno, existen algunos "supuestos" estadísticos (o assumption en ingles) que el modelo debe cumplir. Estos son algunos:


SUPUESTO DE LINEALIDAD
Existe linealidad si se presenta una relación significativa entre la variable  que se quiere predecir y las otras variables. Puede usarse el coeficiente "R cuadrado ajustado", para saber si existe linealidad (mayor o igual a 0.7 suele ser "indicio" de linealidad)

Ejemplo en R:



viernes, 10 de abril de 2015

Mejores variables para Regresión

Si se quiere identificar las mejores variables para una regresión, se pueden crear diferentes modelos  con distintos grupos de variables seleccionadas de forma aleatoria, y luego elegir el modelo que tenga mejor "R Ajustado".

El resultado seria una tabla así:





















miércoles, 1 de abril de 2015

Regresion Lineal Simple

NOTA: Para detalles sobre conceptos usados en regresiones, ver nota publicada AQUI.

Si se quiere predecir una variable continua (numérica), puede usarse el modelo de regresión lineal, que consiste en crear una ecuación de la siguiente forma:






El siguiente ejemplo usa la regresión lineal para predecir la cantidad de compra(o demanda) según el precio. El calculo "manual" en excel puede descargarse AQUI. El resultado del excel seria este: