Está en la página 1de 13

Estad stica Pr actica 1: Introducci on a R

J. Corral y J. Gibergans - DMA III/EUETIB Curso 2010-2011/T


Resumen En esta pr actica se introduce el software estad stico R. Se trata de un software en c odigo abierto y freeware de creciente utilizaci on en el ambito universit` ario, tanto en lo concerniente a docencia, c omo a investigaci on. En estos primeros pasos con el programa se repasan las tablas de frecuencias y su representaci on gr aca y tambi en se lleva a cabo una primera introducci on al c alculo de algunos estad sticos importantes.

1.
1.1.

Objetivos, conocimientos previos y evaluaci on


Objetivos
Saber instalar el software R, as como el paquete R-Commander. Conocer las principales caracter sticas de dicho programa. Iniciar una sesi on de trabajo en R, introducir datos desde teclado o desde un chero, llevar a cabo diversos c alculos y guardar los resultados. Calcular tablas de frecuencias, realizar su representaci on gr aca, c alcular algunos estad sticos importantes (media aritm etica, varianza y moda) e interpretar todos estos resultados. Al nalizar esta pr actica, el alumno ha de ser capaz de:

1.2.

Conocimientos previos

Para realizar esta pr actica, es necesario que el alumno lleve le do el siguiente resumen te orico y que haya trabajado los tutoriales resolviendo los ejercicios propuestos.

2.

El programa R

R es un programa de an alisis de datos y realizaci on de gr acos, en c odigo abierto y freeware. Es un dialecto del programa S y altamente compatible con el programa comercial S-plus. La p agina ocial del proyecto R: http://cran.r-project.org contiene un gran n umero de recursos muy utiles, como actualizaciones, documentaci on, y librer as de funciones.

2.1.

Instalaci on del programa

Para la realizaci on de estas pr acticas de Estad stica, utilizaremos la versi on del programa disponible en la p agina web del proyecto R-UCA: http://knuth.uca.es/R/doku.php?id=inicio Es un proyecto que persigue facilitar la implantaci on del paquete estad stico R como est andar para la actividad docente e investigadora dentro del campo estad stico, en especial en la Universidad de C adiz. Los compa neros docentes de la Universidad de C adiz ponen a disposici on de todos los usuarios el paquete R-UCA: http://knuth.uca.es/R/doku.php?id=instalacion_de_r_y_rcmdr:r-uca El paquete R-UCA para Windows es una recopilaci on de R junto a R-Commander y a algunos paquetes de uso frecuente. Las principales ventajas de usar R-UCA para Windows son las siguientes: Se instala en un u nico paso R, R-Commander y los otros paquetes recomendados. Permite instalar R en un ordenador sin conexi on a internet. Se congura R para que inicie autom aticamente R-Commander al iniciar R. En caso de desinstalaci on se borran todos los cheros.

2.2.
2.2.1.

Estructura de R
Inicio de la sesi on de R

Una vez iniciado el programa, se abrir a una ventana denominada Consola R (g.1) que indica la versi on del programa y otras informaciones. Adem as, se abrir a otra ventana correspondiente a la aplicaci on R-Commander (g.2) que tambi en hemos instalado. 2.2.2. Consola R

Es la ventana de trabajo de R. El cursor >| nos indica que el programa est a preparado para aceptar ordenes y efectuar los c alculos correspondientes. Dichas ordenes deben darse en forma de comandos, operadores y funciones. Los m as importantes se ir an introduciendo poco a poco a lo largo de las distintas sesiones de pr acticas. En las siguientes tablas, se muestran los operadores aritm eticos b asicos y algunas funciones tambi en b asicas de las matem aticas y de la estad stica. Tabla 1.1: Operadores aritm eticos + suma resta * producto / divisi on ^ potencia Tabla 1.2: Funciones matem aticas sqrt(x) ra z exp(x) exponencial log(x) logaritmo neperiano sin(x) seno cos(x) coseno tan(x) tangente

Tabla 1.3: Funciones estad sticas mean(x) media aritm etica median(x) mediana var(x) varianza sd(x) cuasidesviaci on max(x) m aximo min(x) m nimo sort(x) ordena

Figura 1: Consola R. La ventana Consola R contiene una barra con diferentes opciones de men u: Archivo: permite efectuar operaciones b asicas con los cheros. A estas alturas de aprendizaje u nicamente utilizaremos la opci on Salir para salir del programa. Editar: se trata del t pico men u de edici on (copiar, pegar, etc.). Misc: para opciones avanzadas. Paquetes: para la gesti on de los distintos paquetes que se pueden cargar en R. Ayuda: facilita informaci on acerca del programa R.

2.3.

Tipos de objetos

A continuaci on y de forma muy breve se introducen los tipos de objetos con los que se puede trabajar con R. Valores num ericos: el programa trabaja con n umeros en notaci on exponencial o cient ca. Por ejemplo, si introducimos 1e5, y lo ejecutamos pulsando intro, aparecer a 100000. 3

Pueden aplicarse los operadores y funciones matem aticas indicados en la tabla 1.1 Es de observar que si el resultado de una operaci on es innito, se indicar a con Inf (por ejemplo, si ejecutamos 7/0), mientras que si no existe resultado, se indicar a por N aN (por ejemplo, si ejecutamos log(-1)). Valores l ogicos: existen operadores l ogicos, que dan como respuesta un valor l ogico. Por ejemplo, si introducimos 5 == 5, despu es de pulsar intro, aparecer a como respuesta T RU E , mientras que si ejecutamos 5 == 3 la respuesta es F ALSE . Cadenas de caracteres: se indican con el texto delimitado por comillas. La asignaci on de estos valores se lleva a cabo mediante el operador: <-. As por ejemplo, para asignar el valor 27,1 a la constante a, deberemos ejecutar a <- 27,1. Adem as de estos valores simples, R tambi en puede trabajar los siguientes tipos de estructuras: Vectores: se crean mediante la funci on concatenaci on, indicada por c. Por ejemplo, si queremos asignar v = (1, 3, 5, 27), ejecutaremos v <- c(1, 3, 5, 27). Matrices: podemos considerarlas como la versi on bidimensional de un vector. Por ejemplo, podemos crear una matriz de la siguiente manera m <- matrix(1 : 8, nrow = 2). Listas: son necesarias para almacenar elelemtos heterog eneos. Por ejemplo, si tenemos el vector v <- c(1, 3, 5, 27), y la cadena cad<-c(texto), podemos introducirlo todo en un objeto de tipo lista de nombre m, mediante la instrucci on m <- list(v, cad). Dataframes: son listas cuyos elementos son vectores, todos de la misma longitud. Por ejemplo, h <- data.frame(u1=c(1,3,5,7,9), u2=c(TRUE,TRUE,FALSE,TRUE,FALSE)). Funciones: s on f aciles de denir con R. Por ejemplo, si se sea denir la funci on f (x) = x3 , s olo hay que ejecutar f <-function(x) x^3. 2.3.1. R-Commander

La utilizaci on de la interfaz gr aca de usuario(GUI) R-Commander pretende, facilitar el uso de R y, adem as, servir como generador de instrucciones R. Es posible que a lo largo de las pr acticas de este curso no sea necesario m as que el uso del R-Commander, sin embargo, una vez superado el respeto inicial a la programaci on de ordenes y funciones, el trabajar directamente con la Consola R, nos puede proporcionar un control total sobre los procedimientos que en cada momento se van a aplicar. Hay que distinguir cuatro ventanas: Ventana de instrucciones: en ella aparecen las instrucciones R generadas por la GUI de R Commander. Tambi en podemos escribir las instrucciones R directamente en la ventana de instrucciones o en la Consola R tras el cursor, sin embargo, como ya se ha dicho anteriormente, el objetivo principal de R Commander es evitar tener que escribir instrucciones. Ventana de resultados: en dicha ventana aparecen impresos los resultados. Ventana de mensajes: es la ventana gris inferior. En ella se muestran mensajes de error, advertencias y otras informaciones. Ventana de gr acos: u nicamente aparecer a cuando se lleven a cabo representaciones gr acas. Existen varios men us en la parte superior de la ventana R Commander: Archivo: con las opciones de men u para cargar y guardar archivos de instrucciones; para guardar resultados y el area de trabajo R; y para salir. 4

Figura 2: Ventana de R-Commander.

Editar: con las opciones para editar (cortar, copiar, pegar, etc.) los contenidos de las ventanas de instrucciones y de resultados. Datos: con las opciones de men u para leer y manipular datos. Estad sticos: con las opciones de men u para una variedad de an alisis estad sticos b asicos. Gr acas: con las opciones de men u para crear gr acos estad sticos simples. Modelos: con las opciones de men u y submen us para obtener res umenes, intervalos de conanza, tests de hip otesis, diagn osticos y gr acas para un modelo estad stico. Distribuciones: con las opciones para obtener probabilidades, cuantiles y gr acos para distribuciones estad sticas habituales. Herramientas: con las opciones de men u para cargar diversos paquetes de aplicaciones. Ayuda: con las opciones de men u para obtener informaci on sobre R-Commander. La interfaz de R-Commander incluye algunos elementos adem as de los men us y di alogos: Bajo los men us hay una barra de herramientas con una la de botones: Conjunto de datos: muestra el nombre de la serie de datos activa. Inicialmente no hay ninguna serie de datos activa. Al pulsar este bot on, se permite elegir entre las series de datos que est an actualmente en la memoria (si hay m as de una). Editar conjunto de datos: permite abrir el editor de datos de R para modicar la serie de datos activa. Visualizar: permite abrir el editor de datos de R para examinar la serie de datos activa. 5

Modelo: indica el nombre del modelo estad stico activo, un modelo lineal (como el modelo de regresi on lineal), un modelo lineal generalizado, etc. Inicialmente no hay ning un modelo activo.

3.
3.1.

Resumen te orico
Variables: cualitativas y cuantitativas

Denici on 1. Atributos Describen cualidades. No toman valores num ericos sino modalidades. Por ejemplo, clasicar una pieza como aceptable o defectuosa, el DNI, la profesi on, etc. Denici on 2. Variables cuantitativas discretas Toman valores u nicamente enteros y corresponden a contar el n umero de veces que ocurre un suceso. Por ejemplo, el pulso, el n umero de hermanos de una persona, etc. Denici on 3. Variables cuantitativas continuas Toman valores reales en un intervalo y corresponden a medir magnitudes reales. Por ejemplo, la longitud, el tiempo que tarda un objeto en caer, etc. En este caso, las diversas observaciones de la variable se clasican en intervalos, denominados intervalos de clase. Se llama marca de clase al punto medio de cada intervalo.

3.2.

Tablas de frecuencias

Denici on 4. Frecuencia absoluta Se denomina frecuencia absoluta de un valor al n umero de veces que se repite dicho valor. Sea n el n umero total de individuos que forman la lista de datos y k el n umero de valores diferentes que toman. Entonces:
k

ni n ,
i=1

ni = n

Denici on 5. Frecuencia relativa Es la relaci on existente entre la frecuencia absoluta y el total de elementos: ni fi = n Denici on 6. Frecuencia acumulada La frecuencia acumulada de un valor dado, es la suma de frecuencias hasta dicho valor. Existen dos posibilidades: frecuencia absoluta acumulada: Ni frecuencia relativa acumulada: Fi

3.3.

Representaciones gr acas

Denici on 7. Diagrama de barras En el eje OX guran los valores de la variable. En el eje OY se situan las frecuencias absolutas o relativas (g. 3). Denici on 8. Histograma En el eje OX se ponen los intervalos de clase. Sobre ellos, tom andolos como base, se construye un rect angulo de area igual a la frecuencia absoluta (o relativa) del intervalo (g. 4). Denici on 9. Diagrama de sectores Consiste en repartir los 360o del c rculo de forma proporcional a las frecuencias (g. 5). Es u til tanto para variables cualitativas, como cuantitativas.

Figura 3: Diagrama de barras de frecuencias.

Figura 4: Histograma de frecuencias.

Figura 5: Diagrama de sectores.

3.4.

Introduciendo algunos estad sticos importantes

En la pr oxima pr actica se estudiar an con detenimiento estos y otros estad sticos de importancia que se utilizar an durante todo el curso. Denici on 10. Media aritm etica Se dene como la suma de todos los valores dividida por el n umero total de ellos:
n

x=

x1 + x2 + + xn = n 7

i=1

xi .

Para tablas de frecuencias: x= 1 n

xi ni =
i=1 i=1

xi fi .

Si se trabaja con los datos agrupados, es a decir, con intervalos de clase, se toma xi igual a la marca de clase. Denici on 11. Moda Es el valor m as frecuente de la tabla estad stica y se nota con Mo. Pueden existir varias modas, en este caso, los datos se distribuyen de forma multimodal. Si la variable viene dada en intervalos de clase, hablamos de intervalo modal. Podemos entonces aproximar la moda por la marca de clase de dicho intervalo. En el histograma, corresponde al rect angulo de mayor area. Denici on 12. Desviaci on t pica o est andar Es el promedio de las desviaciones de los valores respecto a la media:
n

sX = Si los datos estan agrupados: sX == 1 n


k

i=1

(xi x)2 n .

(xi x)2 ni =
i=1 i=1

(xi x)2 fi .

Denici on 13. Varianza Se dene como el cuadrado de la desviaci on t pica: Var(X ) = s2 X.

4.

Tutoriales

En esta secci on se presentan una serie de tutoriales que se tienen que realizar con anterioridad a sesi on de pr acticas en clase, ya que permiten una primera introducci on al programa R. Estos tutoriales deben llevarse a cabo escribiendo las instrucciones en la ventana del RComander y ejecut andolos con el bot on ejecutar. Esto permite mayor comodidad si hay que realizar cualquier modicaci on o correcci on, as como a la hora de guardar las instrucciones empleadas. Para poder escribir comentarios debemos iniciarlos despu es del s mbolo almohadilla, #.

4.1.

Manipulaci on de vectores

R manipula objetos, estos objetos pueden ser n umeros, vectores, matrices, variables, funciones o incluso gr acos. Empecemos por manipular un poco objetos que son fundamentales para R: los vectores. Queremos denir un vector x que contenga los n umeros de errores tipogr acos por p aginas de un documento de 8 p aginas: 2, 3, 0, 3, 1, 0, 0, 1 Para ello, introducimos en la consola de R, la instrucci on: > x<-c(2,3,0,3,1,0,0,1) La funci on c corresponde a la concatenaci on de valores. Podemos ahora operar sobre el vector x, en particular aplicarle algunas funciones: Podemos calcular la media y la varianza en podemos aplicar a x una funci on de los datos contenidos en x con mean(x) y var(x). Tambi aunque esta admita en principios argumentos escalares: en este caso, el resultado es un vector que contiene el valor de la funci on para cada uno de los componentes de x. Por ejemplo, exp(x) : 8

[1] 7.389056 20.085537 1.000000 20.085537 2.718282 1.000000 1.000000 [8] 2.718282 De hecho R est a pensado para manipular vectores y no para realizar bucles. La programaci on por bucles es lenta y poco eciente en R. Podemos en todo momento obtener una lista de los objetos denidos en nuestra sesi on con el comando ls(). Insistimos en que x es un vector. Podemos manipularlo, creando por ejemplo una copia: > y<-x Una caracter stica importante de un vector es su longitud, que podemos obtener con la instrucci on length : > length(x) [1] 8 Para aceder a alg un o algunos elementos concretos del vector x utilizaremos corchetes [ ]: > x[3] [1] 0 > x[-1] [1] 3 0 3 1 0 0 1 > x[c(1,3,8)] [1] 2 0 1 El u ltimo ejemplo es particularmente importante: es f acil extraer de un vector de R un subvector. Para ello, podemos indicar un vector de ndices tal como en x[c(1,3,8]). Podemos obtener los n umeros de erratas en las p aginas que presentan por lo menos una errata introduciendo: > x[x>0] [1] 2 3 3 1 1 Ser a m as u til saber en qu e p aginas hay erratas... Para ello, podemos utilizar el comando which, que indica en qu e indices de un vector l ogico aparecen TRUE: > which(x>0) [1] 1 2 4 5 8 R proporciona muchas facilidades para generar vectores a partir de determinados patrones: > x<-1:1000 genera un vector que contiene los enteros hasta 1000. Una instrucci on relacionada y m as exible es seq que permite especicar el incremento entre cada componente: > x<-seq(1,1000,by=2) Podemos combinar diversas instrucciones en una misma sentencia. Por ejempo, dado un vector x > x<-seq(1,12,by=2) podemos crear un vector y que contenga los ndices de x ordenados de mayor a menor: > y<-seq(length(x),1,-1) Otra funci on u til para generar vectores es rep que permite repetir un argumento, por ejemplo, rep(2,5) dene el vector (2, 2, 2, 2, 2). 9

4.2.

Un poco de estad stica descriptiva

Pasemos ahora a considerar el ejemplo ilustrativo siguiente: queremos introducir los valores obtenidos en mediciones repetidas de contenido en nitratos de una muestra de agua que aparecen tabulados a continuaci on: Concentracion (g/l) 0.45 0.46 0.47 0.48 0.49 0.50 0.51 0.52 Frecuencia 1 2 4 8 8 10 5 2

Introducimos los valores en una variables concentraci on: concentracion<-c(0.45,rep(0.46,2),rep(0.47,4),rep(0.48,8),rep(0.49,8),rep(0.5,10), rep(0.51,5),rep(0.52,2)) Podemos empezar con una exploraci on de los datos. La instrucci on > table(concentracion) nos proporciona la lista de los valores distintos de concentraci on junto con sus frecuencias, mientras que podemos obtener un diagrama de barra con > barplot(table(concentracion)) Un diagrama de sectores se obtiene con > pie(table(concentracion)) En lugar de un diagrama de sectores, podemos preferir un histograma: > hist(concentracion) nos proporciona un histograma de los valores. Por supuesto, podemos personalizar el histograma, podemos por ejemplo, a nadir un titulo, y cambiar las clases: > brk<-seq(0.4,0.6,0.5) > hist(concentracion,breaks=brk, main="Histograma de las concentraciones") Tambi en podemos calcular la media y la desviaci on t pica: > mean(concentracion);sd(concentracion) Supongamos ahora que en una segunda sesi on de mediciones se obtienen otros 20 datos que aparecen a continuaci on: 0,51, 0,51, 0,5, 0,49, 0,5, 0,56, 0,48, 0,49, 0,45, 0,48, 0,49, 0,53, 0,48, 0,48, 0,49, 0,49, 0,51, 0,47, 0,44, 0,49 Problema 4.2.1. A nadir a la variable concentraci on ya denida los valores de la segunda sesi on. Denir una variable sesion que contenga 40 valores iguales a 1 y 20 iguales a 2. Podemos ahora denir un conjunto de datos (data frame en ingl es) que asocie concentraci on con sesi on utilizando la funci on data.frame() : > conc.data<-data.frame(sesion, concentracion); conc.data La estructura de data frame nos permite realizar an alisis comparativo de las dos sesiones. Si queremos calcular caracter sticas del conjunto de datos de concentraci on seg un los grupos denidos por la variable sesi on, por ejemplo la media y la desviaci on t pica, debemos utilizar la funci on tapply : > tapply(concentracion,sesion,mean) > tapply(concentracion,sesion,sd) 10

4.3.

Importar y exportar datos mediante R-Comander

En cuanto tengamos conjuntos de datos m as interesantes, es muy probable que los tengamos que importar de un chero. Es muy sencillo llevarlo a cabo mediante R-Comander. Veamos como R-Commander nos puede ayudar a importar cheros y a realizar unos primeros an alisi estad sticos. En el chero coches.txt aparece una matriz donde guran para diversos coches sus caracter sticas m as importantes: cilindrada, consumo, etc. Seguiremos los siguientes pasos (g.6):

Figura 6: Importar datos con R-Comander.

1. Abre el chero coches.txt mediante la Data -> Import data -> from tetx file ... 2. Visualiza los datos mediante el bot on: View data set

ventana

de

R-Commander:

3. Haz un histograma de los datos de la variable consumo: Graphs -> Histogram ... 4. Calcula la media y la desviaci on t pica del consumo: Statistics -> Summaries ... 5. Interpreta los resultados obtenidos.

4.4.

Importar y exportar datos mediante instrucciones

La potencia del programa R permite la programaci onm para llevar a cabo diversos c alculos y an alisis estad sticos. En este caso, la entrada y salida de datos deber a llevarse a cabo mediante instrucciones. Para ello, utilizaremos la instrucci on read.table. Primero deberemos cambiar el directorio de trabajo mediante la funci on setw(). Por ejemplo, > setwd("C:/Practica-1") Supongamos que queremos importar los datos de un chero llamado datos.txt que se halla en el directorio de trabajo especicado y que se presenta de la manera siguiente:

11

x 1 2 3 4 5

y z 1.2 2 3 1.5 2.2 1.6

1.5 5 4.4 5 5.4 3 6.1 3 5

Podemos introducir los datos en un conjunto (data.frame) que llamaremos datos : > > x 1 2 3 4 5 datos <- read.table(file="datos.txt") datos y z 1.2 1.5 5 2 3 4.4 1.5 5 5.4 2.2 3 6.1 1.6 3 5 Para aceder a las variables del data.frame datos, podemos utilizar los corchetes: > datos[,1] [1] 1.2 2.0 1.5 2.2 1.6 > datos[,2] [1] 1.5 3.0 5.0 3.0 3.0 > datos[,3] [1] 5.0 4.4 5.4 6.1 5.0 C omo podr amos aceder al tercer elemento de z? Por otra parte, tambi en podemos utilizar el hecho que un data.frame corresponde a una lista, constituido por los objetos x, y, z : > datos$x [1] 1.2 2.0 1.5 2.2 1.6 > datos$y [1] 1.5 3.0 5.0 3.0 3.0 > datos$z [1] 5.0 4.4 5.4 6.1 5.0 La instrucci on read.table admite muchas opciones. Supongamos que queremos importar los datos desde un chero que se presenta, por ejemplo, de la manera siguiente 10;8,04;10;9,14;10;7,46;8;6,58 8;6,95;8;8,14;8;6,77;8;5,76 13;7,58;13;8,74;13;12,74;8;7,71 9;8,81;9;8,77;9;7,11;8;8,84 11;8,33;11;9,26;11;7,81;8;8,47 14;9,96;14;8,10;14;8,84;8;7,04 6;7,24;6;6,13;6;6,08;8;5,25 4;4,26;4;3,10;4;5,39;8;5,56 12;10,84;12;9,13;12;8,15;8;7,91 7;4,82;7;7,26;7;6,42;8;6,89 5;5,68;5;4,74;5;5,73;19;12,50 El chero (anscombe.txt en vuestro ordenador) no contiene los nombres de las variables, utiliza el punto y coma ; como separador de columnas, y la coma, como separador decimal. Tampoco contiene etiquetas para cada la. Supongamos que queremos importar los datos en un data.frame llamado ans, y que les queremos dar los nombres x1, y 1, x2, y 2, x3, y 3, x4, y 4 a las columnas: > ans <- read.table(file="anscombe.txt", sep=";", dec = ",", header =F, col.names =c("x1","y1","x2","y2","x3","y3","x4","y4")) 12

Finalmente, utilizaremos tambi en la instrucci on write.table para exportar data.frame a un chero externo. Admite la mayor parte de las opciones de read.table. Podeis adivinar el resultado de la instrucci on siguiente? > write.table(ans,file="ans.txt", sep=";", dec=".") Podemos visualizar el efecto de dicha instrucci on abriendo el chero con un editor de textos.

13

También podría gustarte