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