viernes, 18 de septiembre de 2009

Problema7: MED

Ej. 7. Los siguientes datos de octanaje de varias mezclas de gasolina fueron tomados de un artículo en Technometrics (vol. 19, p. 425), revista dedicada a las aplicaciones estadísticas en ciencias físicas e ingeniería.

88.5..87.7..
83.4..
91.1..
86.7..
87.5..
91.5..
88.6..
100.3..
95.6..
93.3..
94.7
91.094.287.8
89.9
88.3
87.6
84.3
86.7
88.2
90.8
88.3
98.8
94.2
92.7
93.2
91.0
90.3
93.4
88.5
90.1
89.2
88.3
85.3
87.9
88.6
90.9
89.0
96.1
93.3
91.8
92.3
90.4
90.1
93.0
88.7
89.9
89.8
89.6
87.4
88.9
91.2
89.3
94.4
92.7
91.8
91.6
90.4
91.1
92.6
89.9
90.6
91.1
90.4
89.3
89.7
90.3
91.6
90.5
93.7
92.7
92.2
92.2
91.2
91.0
92.2
90.0
90.7






Trace un diagrama de tallo y hojas para estos datos. ¿Por qué es relativamente fácil identificar un valor de octanaje?¿Revela el diagrama algunas propiedades importantes de los datos?


Para la resolución de este problema emplearemos la herramienta R.

Lo primero que tenemos que hacer, es introducir los datos de la tabla que nos ofrece el enunciado del problema en una variable, en nuestro caso se llamará: octanaje.

Para dicho propósito, podemos introducirlo a mano o leyendo los datos desde un fichero de texto, en nuestro caso, dispondremos del fichero llamado: DatosDeOctanaje.txt donde figuran los valores que el problema nos ofrece.

Pues bien, simplemente nos queda almacenarlos en la variable octanaje:

> octanaje <- scan("C://R Script//DatosDeOctanaje.txt")
Read 79 items

Podemos apreciar que yo dispongo del fichero de datos de octanajes en la dirección marcada por la función scan(), vosotros podéis leerlo de cualquier sitio siempre y cuando le deis la dirección correcta.

Una vez cargados los datos, R nos muestra por pantalla la cantidad total de datos leídos, en nuestro caso, 79. Ahora, simplemente empleamos la función stem() para la creación del diagrama de tallo y hojas:

> stem(octanaje)


..The decimal point is at the |

...82 | 4
...84 | 33
...86 | 77456789
...88 | 23335566790233678999
...90 | 01133444567890001112256688
...92 | 22236777023347
...94 | 22476
...96 | 1
...98 | 8
.100 | 3

Podemos observar que no están disponibles todos los posibles casos, por ejemplo, el octanaje de valor 83.4 no está presente en el diagrama, esto es así porque el propio programa a simplificado el diagrama a los datos más característicos, para verlo completo, le mandamos la orden de crear un diagrama de doble tallo y hojas:

> stem(octanaje,2)

The decimal point is at the |

...83 | 4
...84 | 3
...85 | 3
...86 | 77
...87 | 456789
...88 | 2333556679
...89 | 0233678999
...90 | 0113344456789
...91 | 0001112256688
...92 | 22236777
...93 | 023347
...94 | 2247
...95 | 6
...96 | 1
...97 |
...98 | 8
...99 |
.100 | 3

Podemos verificar que la simplificación ha sido aplicada por que existen valores de octanaje que no están presente en la tabla.

La conclusión que si está clara para ambos diagramas es que el centro de la distribución está en torno al valor de octanaje 90 y que la forma general de la distribución es, prácticamente, simétrica.

También podemos discernir que, la tendencia de apilamiento de los datos es hacia el centro de la distribución.

En conclusión, dicha distribución presenta semejanzas a la famosa Campana de Gauss, es decir, tiende, aproximadamente, a la normal.

El archivo usado para este problema se disponen en el siguiente enlace:


Fichero
DatosDeOctanaje.txt

Para concluir este problema, podemos comprobar que nuestras suposiciones son acertadas empleando la función summary() a la variable octanaje, obteniendo:

> summary(octanaje)
...Min....1st Qu....Median...Mean...3rd Qu....Max.
..83.40..88.80.....90.50.....90.67.....92.20....100.30

Como anticipábamos, la mediana es de 90.50 (entorno a 90) y la media 90.67.

5 comentarios:

under over dijo...

Hola, he encontrado tu blog y me parece muy interesante en cuanto al tratamiento del programa estadístico R que haces y que me sirve de mucha ayuda.
En relación a la solución final de este problema específico indicas que "En conclusión, dicha distribución presenta semejanzas a la famosa Campana de Gauss, es decir, tiende, aproximadamente, a la normal." Mi consulta es la siguiente:
¿Existe en R alguna función o forma para hacer una prueba de hipótesis que nos indique si una variable se distribuye como una normal o no?
He estado buscando por internet y no he podido descubrir todavía nada a este respecto.
un saludo y te seguiré en tus nuevos post.
ciao

Unknown dijo...

Buenas:

La conclusión de que tiende a la Normal es por la forma en que se nos muestra los datos en el diagrama de tallo y hoja.

En R no existe, y creo que no hay técnica, dónde te indique si una variable tiene un comportamiento Normal.

Dicha aproximación o tendencia deberás asumirla o atribuirla tu mismo teniendo en cuenta el comportamiento de dicha variable (Son los casos de la Binomial y la Poisson que se pueden, dadas unas premisas, ajustar a la Normal).

En R, lo que existen, son funciones para operar con distribuciones Normales.

Espero haberte ayudado.

PD: Me alegro de que te sirva de ayuda el contenido que Aqueronte ofrece.

Un saludo.

under over dijo...

Hola Manuel,

Pensaba que, al igual que pasa con SPSS, habría alguna forma de concluir que cierta variable se distribuye como una normal a través de un test estadístico con un cierto nivel de significación.
Muchas veces he leído enunciados de problemas que dice en alguna parte del texto "suponiendo que la distribución es normal, calcular.....". Pero en la vida real no puedo suponer sino comprobar. Te comento ésto porque es de mi interés saber si ciertos datos que tengo (de fútbol concretamente) se distribuyen como una normal. Si no fuera el caso, mi intención es ajustarla (o buscar) a otro tipo de distribución que más se adecue al los datos obtenidos.
Gracias por contestar.

Unknown dijo...

Buenas:

Si que existen procedimientos, mediante contrastes de hipótesis, para realizar un estudio, que se suele llamara, Test de Normalidad.

En el cuál, se estudia si una población o conjunto de datos siguen, y por ende se pueden aproximar, a la distribución Normal.

En R, también existen dichas herramientas, te pongo algunos ejemplos:

· Kolmogorov-Smirnov: Cuya expresión es ks.test(). No se suele usar por no dar resultados concordes al estudio.

· Lilliefors: Es una optimización de la anterior y se suele usar bastante, su expresión es: lillie.test().

· Shapiro-Wilk: Otro contraste de normalidad, su expresión es: shapiro.test().

· Anderson-Darling: Su expresión es: ad.test().

· Cramer-von Mises: Su expresión es: cvm.test().

· Pearson chi-square: Su expresión es: pearson.test().

· Shapiro-Francia: Su expresión es: sf.test().

El más empleado suele ser el contraste de Lilliefors, pero éste ha sido superado por los restantes que te he expuesto en la lista anterior.

Las funciones anteriores están en el paquete: nortest, que normalmente no suele venir, por defecto, en R.

En caso que no lo tengas, lo instalas con el siguiente comando:

> install.packages("nortest")

Espero haberte ayudado un poco a tu consulta.

· PD: Por cierto, pedirte disculpa por haberte respondido a la ligera en el primero comentario, lo debí releer como he hecho ahora.

· PPDD: El estudio de Test de Normalidad es algo que tengo en la agenda para realizar un capítulo en R, espero realizarlo lo más pronto posible y ampliar con ejemplo, lo aquí expuesto en este breve comentario.

Un saludo.

under over dijo...

Hola Manuel,

es lo que estaba buscando. Estudiaré con más profundidad el contraste que me aconsejas.
Esperaré con atención el capítulo de R sobre normalidad (supongo que pondrás algún ejemplo en consonancia a otros post donde también pones ejemplos.

Un saludo y gracias