Está en la página 1de 94

Anlisis Estadstico con R

EL PAPEL DE LA ESTADSTICA EN NUESTROS DAS

Estadstica o ciencia del estado (en su origen)


oRecoleccin Anlisis Interpretacin de datos
Su papel hoy en da en
oSalud
oEducacin
oEconoma, etc y, cmo no, en INVESTIGACIN
Utilidad en el entorno global en el que nos encontramos a
nivel individual (Bond, 2009)
EVOLUCIN DE LOS ORDENADORES PERSONALES

Evolucin del computador acceso a estadstica


De la computadora al ordenador personal
oAvances en desarrollo de componentes electrnicos
oDcada de 1960
Archivos de la Universidad de Illinois
www. apple.com (2013)
PROGRAMAS DE CLCULO ESTADSTICO

Programas comerciales
Gran variedad
oIBM SPSS Statistics
Statistical Software for Social Sciences (SPSS Inc.)
PASW (Predictive Analytic Software)
Desarrollo de una versin libre llamada PSPP
oSAS, MATLAB, Statistica, Stata, InfoStat
PROGRAMAS DE CLCULO ESTADSTICO

Programas libres:
GNU GPL (General Public License) cuyo propsito es
proteger los derechos y libertades de los usuarios
finales (http://www.fsf.org)
Usar, compartir, estudiar, modificar
R es uno de estos programas libres
OBJETIVO DE ESTE CURSO

Proporcionar informacin til para


que tu primer contacto con R sea lo
ms satisfactoria posible
Analoga de la manzana y el estudio
de la Tierra (Bryson, 2003)
QU (Y CMO) ES R

R es un entorno libre de anlisis estadstico de datos


y de creacin de grficos estadsticos
Se basa en una interfaz de usuario de lneas de
comandos
Y, como dira alguno de mis alumnos, es feo
RAZONES PARA UTILIZAR (Y NO) UTILIZAR

Pros Contras
oEs libre oAl principio suele ser
oFlexibilidad rido
oProcedimientos oCuesta un poco si se
disponibles est habituado a trabajar
oSe aprende estadstica con otro tipo de
programas
oLos grficos
OBTENER R

http://www.r-project.org
OBTENER R

Seleccionar un servidor
Colombia
http://www.laqee.unal.edu.co/CRAN/ National University of Colombia

Seleccionar un sistema operativo


OBTENER R

Acceder al directorio que contiene la distribucin

Descargar el archivo ejecutable que instala R


INSTALAR R

Tras la descarga tendrs habr que ejecutar el archivo:


oR-3.0.2-win.exe
oAparecer un asistente
oSeleccionar las opciones que correspondan a tu caso
DEFINICIONES BSICAS

Objetos
oFunciones
nombre.de.la.funcin(argumento/s=, opcin/es=)
Espacio o rea de trabajo
Directorio de trabajo
Paquetes
Archivos de comandos o scripts
DESCRIPCIN DE LA INTERFAZ GRFICA DE
USUARIO EN R

Ejecutar el programa o
el acceso directo del
escritorio
R.lnk

Apertura de la consola
de comandos
OTRAS INTERFACES INTERESANTES

Hay variedad de interfaces para R (Valero-Mora y


Ledesma, 2012):
oR Commander es un paquete de R
oRKWard http://rkward.sourceforge.net
oTinn-R http://www.sciviews.org/Tinn-R
oEmacs http://www.gnu.org/software/emacs
oRStudio http://www.rstudio.com
CONSEGUIR E INSTALAR RSTUDIO

Rstudio es una IDE (Integrated Development


Environment) para trabajar con R
Pasos:
ohttp://www.rstudio.com
oDescargar el archivo que se adapte a tus necesidades
oInstalarlo
INTERFAZ GRFICA DE RSTUDIO
ESTABLECER EL DIRECTORIO DE TRABAJO

El directorio de trabajo
oUsando cdigo
Identificarlo usando la funcin getwd()
Cambiarlo setwd()
oCon RStudio
setwd("w:/Escritorio")
QU SON LOS ARCHIVOS DE CDIGO?

R tiene una interfaz basada en lneas de comandos


Slo podemos ejecutar una lnea de cdigo cada vez
Se hace conveniente el uso de archivos de cdigo
Los archivos de cdigo o scripts son archivos de
texto plano que contienen instrucciones o comandos
que pueden ejecutarse en R
Automatizan y ahorran trabajo
CREAR ARCHIVOS DE CDIGO
ENVIAR CDIGO A LA CONSOLA DE R

En el archivo de cdigo podemos escribir lo que


queramos
Podemos enviar el cdigo lnea por lnea o por bloques
oPodemos hacerlo con teclado Control + Enter o Control + R
oPodemos hacerlo con el icono de la interfaz de RStudio
Tambin podemos enviar el cdigo de un solo golpe a
R utilizando la funcin source()
GUARDAR Y ABRIR ARCHIVOS DE CDIGO

Para guardar el cdigo


oTenemos un icono en el editor
oTambin lo podemos hacer desde el men general
Los archivos de cdigo tienen la extensin .R
Para abrirlos
oDesde el men File Open file
oO haciendo clic en el explorador de archivos de RStudio
Ejemplo
s #EJEMPLOS ANLISIS ESTADSTICO CON R - Vctor Prez
Gmez

#ENVIAR CDIGO A LA CONSOLA DE R

#limpiar la consola ctrl + l

#Lnea por Lnea


a=56
b=25
e=28

#Por Bloques
c=1
f=2
g=3
DESCRIPCIN DE PAQUETES

Funcin packageDescription()
Funcin library(help="nombre.del.paquete")
CARGAR PAQUETES

La funcin library()
Con la interfaz de RStudio
DESACTIVAR PAQUETES

La funcin detach("package:nombre.del.paquete")
Con RStudio
INSTALAR PAQUETES

La funcin install.packages("nombre.del.paquete")
Con RStudio
ACTUALIZAR PAQUETES

La funcin update.packages()
Con RStudio
DESINSTALAR PAQUETES

La funcin remove.packages("nombre.del.paquete")
Con Rstudio
#GESTIN DE PAQUETES

packageDescription("foreign") #El paquete "foreign" (tiene que ver con la opcin que tiene R de importar archivos de otros

Ejemplo software. Ver Priority, Version, Fecha de creacin, De qu versin Depende, Autores, Descripcin...

library(help="foreign") #Se nos abre una nueva pestaa con la descripcin de los paquetes

s #Cmo importar Paquetes?

#Con comandos

library(foreign) #Se ha cargado Foreign, Ver Packages a la derecha en RStudio.

#Con la interfaz RStudio


#Simplemente vamos a Packages en la parte derecha y marcamos o desmarcamos el paquete que deseamos instalar o desinstalar
respectivamente.

#Desactivar paquetes

#Con Comandos
detach("package:foreign")

#Instalar paquetes

#Con Comandos

install.packages("UsingR") #R se conecta a internet, descarga e instala el paquete

#Con RStudio
#Install Packages

#Actualizar Paquetes

#Con Cdigo
update.packages() #Nos busca los paquetes que pueden ser actualizados

#Con RStudio
#Check for Updates

#Desinstalar Paquetes
LOS OBJETOS DE R

Uno objeto es una estructura de datos con la que R


puede trabajar
Por ejemplo:
oUn conjunto de datos base de datos
oEl resultado de un anlisis estadstico
oUna tabla de datos
oUna funcin
TIPOS DE OBJETOS

Vector (numricos, caracteres, lgicos)


Matrices (y arrays)
Listas (pueden contener informacin de diferente tipo)
Tablas (de frecuencia o de contingencia)
Data frame o base de datos
CREACIN DE OBJETOS

La creacin de objetos se lleva a cabo realizando una


asignacin
Para ello utilizamos los smbolos <-, -> o =
oLos cdigos parecidos a flecha funcionan en ambos sentidos
oEl smbolo igual slo en un sentido
Ejemplo
s

#CREACIN DE OBJETOS
A<-46
26->B
C=99
93=D #Produce un error
QU ES UN VECTOR?

No, no es un villano enemigo de Gru


Mi villano favorito
Un vector es conjunto ordenado de
nmeros (Venables et al., 2011, p. 7)
Atencin a lo que nos referimos con
orden
TIPOS DE VECTORES

Vectores numricos
oLas edades de un grupo de amigos: 20, 25, 22, 21, 27, 28
Vectores lgicos
oTienen novia los amigos?: TRUE, TRUE, FALSE, FALSE,
TRUE, FALSE (se truncan a ceros y unos)
Vectores cualitativos o de caracteres
oNombres: Pedro, Manuel, Jos, Esteban, Ral, Damin
CREACIN DE VECTORES

La funcin c()
La funcin assingn()
Los dos puntos :
La funcin seq()
Distribuciones estadsticas
Ejemplo
#CREACIN DE VECTORES
s
novia<-c(TRUE, TRUE, FALSE, FALSE, TRUE, FALSE) ; novia

nombres<-c("Pedro", "Manuel", "Jose", "Esteban", "Raul"); nombres

edad_2<-c(20,25,22,21,27,28) ; edad_2

assign("edad", c(20,25,22,21,27,28)); edad

id<-1:6 ; id

secuencia<-seq(0,60,10) ; secuencia
#Podra ser igual a
sequencia<-seq(from=0,to=60,by=10) ; sequencia

normal.aleatorio<-rnorm(6,mean=3,sd=4); normal.aleatorio
DIFERENCIAS ENTRE MATRICES, ARRAYS Y
TABLAS

Una matriz es la
generalizacin bi-dimensional
de un vector
oContiene vectores fila
oY vectores columna
Un array es la generalizacin
multidimensional de una matriz Tomado de Lpez (2012)
MODOS DE CREAR MATRICES Y ARRAYS

A partir de un vector con la funcin dim()


Con la funcin matrix()
Con la funcin array()
CREACIN DE TABLAS Y SU UTILIDAD

Creacin (entre otras)


oCon la funcin table()
oCon la funcin as.table()
Utilidad:
oPara realizar anlisis de frecuencias
oPara crear grficos (por ejemplo, de barras o de sectores)
#GENERAR MATRICES, ARRAYS Y TABLAS

#dim()

Ejemplo v<-1:30; v

dim(v)<-c(10,3); v #el primer nmero de la fundin dim se refiere a las filas y el segundo a las columnas

s v2<-1:30; v2

dim(v2)<-c(5,2,3); v2 #filas, columnas, numero de matrices

#matrix()

m1<-matrix(data=46,nr=2,nc=2); m1

m2<-matrix(1:4,2,2); m2

#Array

z<-array(1:16, dim=c(4,4)); z #Es una Matriz

z_2<-array(1:32,dim=c(4,4,2)); z_2 #Es un Array

#Tablas

#Con la funcin Table

n<-rnorm(1000);n #media 0 y desviacin estandar 1 por defecto.


n<-round(n,0);n #Redondear para que el vector n no tenga nindun decimal

n<-table(n);n #Genera una tabla

barplot(n)

#Con la funcin as.table()

m1<-as.table(m1); m1 #transformamos una matriz que ya habamos creado en una tabla


QU ES UNA BASE DE DATOS?

En R se le llama data frame


Una especie de matriz bi-dimensional
oColumnas representan variables
oFilas representan personas, registros o casos
Contiene diferentes tipos de datos (es un tipo de lista)
Ejemplo: iris
FUNCIONES INTERESANTES

La funcin data()
La funcin str()
La funcin head()
La funcin tail()
La funcin View()
La funcin dim()
CREACIN DE BASES DE DATOS

Existe la funcin data.frame()


oHay que crear previamente un conjunto de vectores
A partir de otros objetos as.data.frame()
Tambin podemos importar datos desde archivos
externos (Excel, SPSS, .csv, .txt)
#BASES DE DATOS

Ejemplo iris #Base de Datos con 5 variables y 150 observaciones

str(iris) #Nos genera una descripcin por variable

s #Base de datos que contiene informacin (longitud y anchura del sepalo, longitud y anchura del petalo, especies) de 3 especies
de flores

data(iris) #lleva la base de datos a nuestro espacio de trabajo

head(iris) #Vemos los primeros valores de las bases de datos

tail(iris) #Vemos los ltimos valores de las bases de datos

View(iris) #Nos aparece una nueva ventana que nos muestra de forma tabulada la base de datos

dim(iris) #Nos da las dimensiones de la base de datos

#CREAR DATA FRAME

id<-1:6; id
peso<-c(80,75,76,73,85,85); peso
correcto<-c(TRUE, FALSE,TRUE, FALSE,TRUE, TRUE);correcto
letras<-c("A","B","C","D","E","F"); letras

mis.datos<-data.frame(id,peso,correcto,letras); mis.datos

rm(id,peso,correcto,letras) #elimina los vectores entre parentesis

mis.datos

View(mis.datos)

#Crear Base de datos a partir de una matriz

mtx<-matrix(1:9,ncol=3,nrow=3);mtx
as.data.frame(mtx)
View(mtx)
LA FUNCIN PLOT()

Es una funcin genrica para dibujar grficos x-y


Sus dos argumentos bsicos son x e y
Otro argumento interesante que puede tomar es type
o p puntos (por defecto) o o superpuestos
o l lnea o h histograma
o b ambos o s salto de escalera
LA FUNCIN PLOT()

Ejemplos
Usemos la variable Sepal.Length contenida en la
base de datos iris
Recuerda utilizar attach()
Es decir:
oattach(iris)
LA FUNCIN PLOT()

plot(Sepal.Length, type="p") = plot(Sepal.Length)

4.5 5.5 6.5 7.5


Sepal.Length

Argumento y

0 50 100 150
Posicin Index
LA FUNCIN PLOT()

plot(Sepal.Length, type="l")

4.5 5.5 6.5 7.5


Sepal.Length

0 50 100 150
Index
LA FUNCIN PLOT()

plot(Sepal.Length, type="b")

4.5 5.5 6.5 7.5


Sepal.Length

0 50 100 150
Index
LA FUNCIN PLOT()

plot(Sepal.Length, type="o")

4.5 5.5 6.5 7.5


Sepal.Length

0 50 100 150
Index
LA FUNCIN PLOT()

plot(Sepal.Length, type="h")

4.5 5.5 6.5 7.5


Sepal.Length

0 50 100 150
Index
LA FUNCIN PLOT()

plot(Sepal.Length, type="s")

4.5 5.5 6.5 7.5


Sepal.Length

0 50 100 150
Index
GRFICOS DE DISPERSIN

Necesitamos dos variables (x e y)


Como coordenadas (x, y)

1 2 3 4 5 6 7
Petal.Length
o plot(Sepal.Length,Petal.Length)

Con interfaz tipo frmula


o plot(Petal.Length ~ Sepal.Length)

4.5 5.5 6.5 7.5


Sepal.Length
GRFICOS DE BARRAS

Cuando el argumento es una tabla


o plot(table(Sepal.Length))

8 10
table(Sepal.Length)
6
Frecuencia

4
absoluta

2
0
4.3 4.9 5.5 6 6.5 7 7.6
Sepal.Length
LA FUNCIN HIST()

Es una funcin genrica para dibujar histogramas


Toma como argumento un vector Histogram of h
Por ejemplo:

250
1. h = rnorm(1000, 46, 3)

Frequency
150
2. hist(h)

0 50
40 45 50 55
h
OPCIONES ESPECFICAS DE LOS HISTOGRAMAS

La opcin breaks
hist(h, breaks=15) hist(h, breaks=30) hist(h, breaks=70)
Histogram of h Histogram of h Histogram of h
120

60

30
Frequency

Frequency

Frequency
80

40

20
40

20

10
0

0
40 45 50 55 40 45 50 55 40 45 50 55
h h h
OPCIONES ESPECFICAS DE LOS HISTOGRAMAS

La opcin density
hist(h, density=5) hist(h, density=10) hist(h, density=30)
Histogram of h Histogram of h Histogram of h
250

250
250
Frequency

Frequency
Frequency
150

150
150
0 50

0 50
0 50

40 45 50 55 40 45 50 55 40 45 50 55
h h h
OPCIONES ESPECFICAS DE LOS HISTOGRAMAS

La opcin angle density=5

angle=15 angle=75 angle=180


Histogram of h Histogram of h Histogram of h
250

250
250
Frequency

Frequency
Frequency
150

150
150
0 50

0 50
0 50

40 45 50 55 40 45 50 55 40 45 50 55
h h h
OPCIONES ESPECFICAS DE LOS HISTOGRAMAS
colors()
La opcin border
hist(h, border="red") hist(h, border=green") hist(h, border=blue")

Histogram of h Histogram of h Histogram of h


250

250

250
Frequency

Frequency

Frequency
150

150

150
0 50

0 50

0 50
40 45 50 55 40 45 50 55 40 45 50 55
h h h
OPCIONES ESPECFICAS DE LOS HISTOGRAMAS

La opcin col
hist(h, col="pink") hist(h, col="yellow") hist(h, col="turquoise")

Histogram of h Histogram of h Histogram of h


250

250

250
Frequency

Frequency

Frequency
150

150

150
0 50

0 50

0 50
40 45 50 55 40 45 50 55 40 45 50 55
h h h
VARIAS OPCIONES EN UN MISMO HISTOGRAMA

Las opciones que hemos visto (y ms) se pueden


combinar hist(h,
Ejemplo: col = "limegreen",
border = "blue",
density = 15,
angle = 180,
main = "Histograma",
ylab = "Frecuencia"
)
Frecuencia
0 50 150 250

40
45
h
Histograma

50
55
LA FUNCIN PIE()

Sirve para crear grficos de sectores


El argumento principal es x
o Vector de cantidades no negativas reas del grfico
Otro argumento interesante es labels
Ejemplo:

pie(x=c(3,2,5), labels=c("Mamferos", "Reptiles", "Peces"))


LA FUNCIN PIE()
Mamferos
Reptiles

Peces

pie(x=c(3,2,5), labels=c("Mamferos", "Reptiles", "Peces"))


LA FUNCIN PIE()

Cmo funciona con Large

bases de datos? Midsize Compact

Tenemos que crear una


Van
tabla de frecuencias
Small Sporty
Ejemplo:
data(Cars93, package="MASS")
attach(Cars93)
pie(table(Type))
LA FUNCIN BARPLOT()

Sirve para generar grficos de barras


El argumento principal son alturas de barras - height
El argumento que controla las etiquetas de las barras
es names.arg
Ejemplo:

barplot(height=c(3,5,7),names.arg=c("Carne","Fruta","Vegetales"))
LA FUNCIN BARPLOT()

6
4
2
0

Carne Fruta Vegetales


barplot(height=c(3,5,7),names.arg=c("Carne","Fruta","Vegetales"))
LA FUNCIN BARPLOT()

Cmo lo haramos desde una base de datos?


Tendramos que generar una tabla de frecuencias
Ejemplo:
Utilizando la base de datos Cars93 y la variable Type

barplot(table(Type))
LA FUNCIN BARPLOT()

20
15
10
5
0

Compact Large Midsize Small Sporty Van

barplot(table(Type))
DAR COLOR

Con nmeros del 0 al 8


Con su nombre lista en colors()
Paletas especficas
o rainbow
o topo.colors
o cm.colors
barplot(table(Type), col=0:5)

20
15
10
5
0

Compact Large Midsize Small Sporty Van


barplot(table(Type), col=c("violet","tan","gray46","gold","deeppink","coral"))

20
15
10
5
0

Compact Large Midsize Small Sporty Van


barplot(table(Type), col=rainbow(6))

20
15
10
5
0

Compact Large Midsize Small Sporty Van


barplot(table(Type), col=topo.colors(6))

20
15
10
5
0

Compact Large Midsize Small Sporty Van


barplot(table(Type), col=cm.colors(6))

20
15
10
5
0

Compact Large Midsize Small Sporty Van


2.5
2.0
2
1.5

0.6 0.8 1.0 1.2 1.4


Index
LA FUNCIN TEXT()

Sirve para aadir texto en coordenadas concretas

2.5
text(0.8, 1.5, "Un texto")

2.0
2
1.5
Un texto

0.6 0.8 1.0 1.2 1.4


Index
LA FUNCIN POINTS()

Para aadir puntos en coordenadas concretas


points(
x = c(1,1.2,1.4),

2.5
y = c(rep(1.5,3)),

2.0
2
pch = 17,

1.5
Un texto
col = "red"
) 0.6 0.8 1.0 1.2 1.4
Index
LA FUNCIN LINES()

Sirve para aadir lneas


lines(

2.5
x = c(0.6,0.8,1,1.2,1.4),
y = c(1.5,2,2.3,2.4,2.5),

2.0
2
type = "b",

1.5
Un texto
col = 4,
pch = 11 0.6 0.8 1.0 1.2 1.4

) Index
LA FUNCIN ABLINE()

Aade una lnea con intercepto y pendiente arbitrarios


abline(
a = 1.7,

2.5
b = 0.5,

2.0
2
lwd= 6,

1.5
Un texto
lty = 3,
col = 6 0.6 0.8 1.0 1.2 1.4
) Index
LA FUNCIN ABLINE()

Las opciones v y h de la funcin abline()


abline(

2.5
v = seq(0.6,1.4,0.2),
col = "pink",

2.0
2
h = seq(1.5, 2.5, 0.5)

1.5
Un texto

)
0.6 0.8 1.0 1.2 1.4
Index
LA FUNCIN LEGEND()

Sirve para aadir leyendas


legend( Leyenda

2.5
x = "topleft",
legend = "Leyenda",

2.0
2
fill = "yellow"
)

1.5
Un texto

0.6 0.8 1.0 1.2 1.4


Index
LA FUNCIN TITLE()

Sirve para aadir o modificar ttulos Es una prueba

title( Leyenda

2.5
main = "Es una prueba",
sub = "Base",

2.0
2
col.main = "green"
)

1.5
Un texto

0.6 0.8 1.0 1.2 1.4


Index
Base
LA FUNCIN PAR()

Sirve para fijar ciertos parmetros en el dispositivo


grfico
Para saber qu parmetros se pueden modificar
puedes usarla sin argumentos: par()
Mientras no se cierre el dispositivo grfico o mientras
no se haga explcito, los parmetros sern constantes
REFERENCIAS

Diapositivas tomadas del curso Anlisis Estadstico de


Datos con R, Profesor Jos Lpez Puga,
Universidad Catlica de Murcia.
REFERENCIAS

Bond, M. (2009, Octubre 28). Decision-making: risk


school. Nature, 461, 1189-1192. doi:
10.1038/4611189a
Bryson, B. (2003). A short history of nearly everything.
New York: Broadway Books.
University of Illinois Archives (1952). Illiac I (1)
http://cooper.library.uiuc.edu/archives
REFERENCIAS

Venables, W., Smith, D. M., y the R Development Core


Team. (2011). An introduction to R. Notes on R: a
programming environment for data analysis and
graphics. Versin 2.15.0: Descargado desde:
http://cran.rproject.org/doc/manuals/R-intro.pdf.
REFERENCIAS

Lpez, J. (2012). Introduccin al anlisis de datos con


R y R Commander en psicologa y educacin.
Almera: Editorial de la Universidad de Almera.
Disponible en: http://hdl.handle.net/10835/1658
MUCHAS GRACIAS!