Latex

domingo, 29 de mayo de 2011

Análisis de Exploratorio de Datos (EDA) - 2

Exploración de información bivariada

La examinación de patrones y relaciones es tema central para la estadística. El diagrama de dispersión (scatterplot) es una herramienta simple de examinación de datos apareados que hasta nuestros días no ha perdido su importancia.

El siguiente ejemplo lo extraje de la librería R DAAG (para instalarla, ejecutar install.packages("DAAG") y luego library(DAAG). Más información de esta librería aquí).
2 tipos de leche fueron catadas por 17 personas. Un tipo de leche tiene agregado una medida de edulcorante y la otra cuatro medidas. Los catadores deben hallar la medida de edulcorante.

Los 17 resultados son:

-> milk

  four one
1  7.2 5.8
2  7.4 6.9
3  7.0 6.0
4  7.2 6.0
5  4.6 5.4
6  6.0 5.7
7  5.0 6.1
8  4.2 3.7
9  3.8 3.8
10 6.1 4.3
11 3.7 3.4
12 3.9 1.4
13 2.5 1.7
14 4.4 5.4
15 4.2 3.2
16 4.6 2.2
17 5.6 3.6
 
La relación entre pares  puede apreciarse con un gráfico de dispersión
 
xyrange <- range(milk) #rango de valores

plot(four ~ one,data=milk,xlim=xyrange,ylim=xyrange,pch=16)
 
Las siguientes instrucciones agregan puntos de referencia de los puntos muestrales junto a los ejes cartesianos y una recta de 45 grados.
 
rug(milk$one ,side=1) #regla de valores en el eje x

rug(milk$four,side=2) #regla de valores en el eje y
abline(0,1) #recta de 45 grados

Ajuste de una curva

La puntuación dada por los catadores está claramente influenciada por su paladar, y parace que no hallan diferencias entre ambas (no al menos de ser un alecha 4 veces más dulce que la otra).
Para formalizar un poco más la relción hallada, se recurre a trazar una curva o recta de regresión entre los puntos datos. Existen para ellos varios algoritmos, entre ellos el más conocido es la recta de regresión lineal por mínimos cuadrados. En el siguiente gráfico presentamos este método (rojo) y otro más sofisticado (Regresión polinómica local) (verde) para apreciar diferentes resultados, aunque, para este ejemplo, iguales conclusiones.

Código R:
xyrange <- range(milk)

plot(four~one,data=milk,xlim=xyrange,ylim=xyrange,pch=16)
rug(milk$one ,side=1) #regla de valores en el eje x

rug(milk$four,side=2) #regla de valores en el eje y
fit <- lm(milk$four~milk$one)                   
abline(0,1) #recta de 45 grados
lines(fit$fitted.values ~ milk$one,lwd=2, col=2) #regresión mínimos cuadrados
lines(lowess(milk$one,milk$four),lwd=2,col=3)  #regresión polinòmica local

No hay comentarios:

Publicar un comentario