Modelos Estadísticos 1

Obteniendo resultados estadísticos con R, parte I

Posted in Tutoriales, Uncategorized by hector on abril 20, 2009

Esta es una breve introducción a los comandos del sistema estadístico R. El objetivo es obtener fácilmente resultados de estadísticas descriptivas, y simulaciones de probabilidades, entre otros.

Introducción

Una sesión interactiva de R se ve así:
screenshot1
Es acá en donde estaremos ingresando comandos e interactuando con los resultados obtenidos.

Ingreso de Datos

Lo primero que deben hacer es bajar el archivo estudiantes.doc. Este es un archivo de texto que contiene los resultados de una encuesta suministrada a 657 estudiantes. Las primeras líneas de este archivo se ven así:

"Estudiante","Estatura","Sexo","Zapatos","Numero","DVDs","Acostarse","Levantarse","CortePelo","Trabajo","Bebida"
1,67,"mujer",10,5,10,-2.5,5.5,60,30,"agua"
2,64,"mujer",20,7,5,1.5,8,0,20,"gaseosa"
3,61,"mujer",12,2,6,-1.5,7.5,48,0,"leche"
4,61,"mujer",3,6,40,2,8.5,10,0,"agua"
5,70,"hombre",4,5,6,0,9,15,17.5,"gaseosa"

Las 11 columnas anteriores corresponden a 11 variables descritas a continuación:

Estudiante: número de estudiante
Estatura: estatura en pulgadas
Sexo: sexo del estudiante
Zapatos: número de pares de zapatos que posee
Numero: un número entre 1 y 10 proporcionado por el estudiante
DVDs: número de películas en DVD que posee
Acostarse: hora a la que usualmente se acuesta
Levantarse: hora a la que usualmente se levanta
CortePelo: costo del último corte de pelo
Trabajo: número de horas que trabaja en una semana
Bebida: bebida preferida (agua, gaseosa, leche)

Antes de poder analizar estos datos debemos importarlos a una sesión de R. Uno de los comandos para importar es read.table (pueden ver la ayuda ejecutando ?read.table, ésta es en general la forma de obtener ayuda en R: ?comando). Además, asignaremos esta tabla de datos a la variable estudiantes. Todo ésto en una sola línea:

> estudiantes = read.table('estudiantes.doc', sep=',', header=TRUE)

Los argumentos en un comando nos permiten ajustar su uso. En el comando anterior el argumento sep=',' nos permite especificar que los distintos valores en el archivo están separados por comas; mientras que el argumento header=TRUE toma en cuenta el encabezado de las columnas.

Pueden ahora ver las respuestas que dió el primer estudiante (atención a la notación):

> estudiantes[1,]
Estudiante Estatura  Sexo Zapatos Numero DVDs Acostarse Levantarse CortePelo
1          1       67 mujer      10      5   10      -2.5        5.5        60
Trabajo Bebida
1      30   agua

O bien, las respuestas dadas por los estudiantes 17 al 20:

> estudiantes[17:20,]
Estudiante Estatura   Sexo Zapatos Numero DVDs Acostarse Levantarse
17         17       62  mujer       8      7   NA       0.0        8.5
18         18       66 hombre       3      7   20       2.5        8.0
19         19       71 hombre       6      7    0       0.5        7.5
20         20       64  mujer       4      7    8      -1.5        7.5
CortePelo Trabajo  Bebida
17        40     0.0    agua
18        13     0.0 gaseosa
19        12    12.5    agua
20        30    16.0    agua

Para cargar las variables de la tabla (tabla se dice data frame en el lingo de R) al ambiente se utiliza el comando attach:

> attach(estudiantes)

Ahora podemos referirnos a las variables incluidas en la data frame (tabla) estudiantes; por ejemplo, las estaturas de los primeros 10 estudiantes o el tamaño de la variable Estatura (657 datos correspondientes a cada uno de los estudiantes encuestados):

> Estatura[1:10]
[1] 67 64 61 61 70 63 61 64 66 65
> length(Estatura)
[1] 657

Descripción de Datos

El comando table permite contar rápidamente los distintos valores que toma una variable, por ejemplo:

> table(Bebida)
Bebida
agua gaseosa   leche
355     178     113
> table(Sexo)
Sexo
hombre  mujer
222    435

Noten que la mayoría de los estudiantes prefieren tomar agua (355); podríamos acaso decir que esta es una población estudiantil saludable? Será porque la mayoría son mujeres (435)?

Ahora bien, podemos graficar estos resultados con el comando barplot:

> t = table(Bebida)
> barplot(t)

barplot

En una sesión de R los comandos son interactivos, como en muchos otros sistemas de cómputo, e.g. Matlab, Python, Octave, Scilab, etc. Sin embargo, si queremos exportar los gráficos obtenidos podemos seguir una secuencia de comandos similar a la siguiente:

> png('grafica-01.png')
> barplot(t)
> dev.off()

En Windows también pueden hacerlo con el menú, como en la siguiente figura:
screenshot2

Supongan ahora que estamos interesados en las horas usuales de sueño de los estudiantes; pues consideramos que un estudiante cansado es un estudiante que rinde menos. No tenemos esta información de manera explícita, pero sí la tenemos de manera implícita, i.e. simplemente comparamos las variables Acostarse y Levantarse; definimos la variable horas.de.sueno como la diferencia:

> horas.de.sueno = Levantarse - Acostarse
> summary(horas.de.sueno)
Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's
2.500   6.500   7.500   7.385   8.500  12.500   4.000

Inmediatamente ejecutamos el comando summary que devuelve un resumen numérico de los datos, i.e. mínimo, máximo, primer cuartil, tercer cuartil, mediana (segundo cuartil), así como la media. Vemos entonces que estos estudiantes usualmente duermen alrededor de 7.5 horas.

Noten que al definir la variable horas.de.sueno como la resta Levantarse - Acostarse, R ejecuta esta operación componente por componente; es decir, de forma vectorizada.

Gráficamente podemos ver las horas de sueño de varias maneras. Una alternativa es usar un diagrama de caja y bigotes (“box-and-whisker”).
horas-de-sueno

Otra alternativa para visualizar las horas de sueño es emplear un histograma:
horas-de-sueno2

Los comandos que generaron estas gráficas son:

> boxplot(horas.de.sueno)
> hist(horas.de.sueno)

¿A que distribución de probabilidad les recuerda este histograma de horas de sueño?

Preguntas

  1. Utilice el comando summary para obtener un resumen numérico de la variable DVDs.
  2. Construya un histograma de frecuencias para DVDs.
  3. Construya una gráfica de barras de las frecuencias de los distintos valores que toma la variable DVDs. Ayuda: emplee los comandos table y barplot.
Tagged with: , ,

Una respuesta

Subscribe to comments with RSS.

  1. […] parte II Posted in Uncategorized by hector on Abril 22, 2009 Esta es la segunda parte de una breve introducción a los comandos del sistema estadístico R. El objetivo es obtener fácilmente resultados de […]


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: