-
Introduccin al R
Vctor Morales Oate
20/02/2013
ndice1. Introduccin 2
1.1. Caractersticas de R y su funcionamiento . . . . . . . . . .
. . . 21.1.1. Caractersticas . . . . . . . . . . . . . . . . . . .
. . . . . 21.1.2. Cmo funciona? . . . . . . . . . . . . . . . . . .
. . . . . 3
1.2. Entorno Grfico . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 31.3. Objetos en R . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 4
1.3.1. Objetos . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 41.3.2. Objetos en R . . . . . . . . . . . . . . . . . . . .
. . . . . 51.3.3. Nombres de los objetos y consideraciones . . . .
. . . . . 9
1.4. Ayuda de R . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 10
2. Operaciones con Objetos 112.1. Operaciones bsicas en R . . .
. . . . . . . . . . . . . . . . . . . 11
2.1.1. Creacin de secuencias . . . . . . . . . . . . . . . . . .
. . 122.1.2. Funciones bsicas y operaciones con matrices . . . . .
. . 12
2.2. Bluces . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 14
3. Funciones grficas 153.1. Grficas de alto nivel . . . . . . .
. . . . . . . . . . . . . . . . . . 15
3.1.1. Plot . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 163.1.2. Boxplot . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 183.1.3. Pie . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 20
3.2. Grficas de bajo nivel . . . . . . . . . . . . . . . . . . .
. . . . . 21
4. Funciones estadsticas 22
5. Anlisis de Varianza 24
6. Estadstica Descriptiva, bases de datos con factor de expansin
266.1. Estadsticas descriptivas mediante el diseo muestral de la
encuesta. 27
1
-
1. IntroduccinR es un sistema para anlisis estadsticos y grficos
creado por Ross Ihaka
y Robert Gentleman1. Al principio R puede resultar un tanto
complejo parauna persona que no ha tenido experiencia en el manejo
de paquetes estadsticos.Esto es verdad en cierta medida. Sin
embargo, la curva de aprendizaje para estetipo de usuario, pese a
ser lenta al principio, llega a tener excelentes resultados.Una vez
que el usuario se familiariza con el lenguaje y la potencialidad de
laherramienta, es capaz de desarrollar funciones y aplicaciones
personalizadas. Eluso de un objeto para el manejo de R es una
ventaja importante que le permitemayor versatilidad en el manejo de
datos. Adems, R es un paquete totalmentelibre que se distribuye
bajo la licencia GNU GPL o General Public Lisence2. Unconocimiento
bsico de Ingls ayuda a manejar R con mayor facilidad.
Se abordar en el presente documento las herramientas necesarias
para quela mencionada curva de aprendizaje sea fcil de llevar y que
el usuario pierdael miedo al uso de R. Es importante mencionar que
la herramienta RStudio3es necesaria para que el usuario tenga un
interfase ms amigable y de ese modoaprovechar la potencialidad de
R.
1.1. Caractersticas de R y su funcionamiento1.1.1.
Caractersticas
Posee una variedad de tcnicas estadsticas de fcil manejo y
generacingrfica verstil y avanzada.
Es un lenguaje completo de programacin, lo cual permite que
usuariosavanzados incrementen la funcionalidad mediante la
definicin de funcio-nes y paquetes.
Es una herramienta de uso intensivo dentro de la comunidad
cientfica.
Posee capacidad de combinar, sin censuras, anlisis
preempaquetadoscon anlisis ad-hoc, especficos para una
situacin.
Capacidad de combinar los diferentes objetos y sus
operaciones.
Genera grficos de alta calidad (Produccin de grficas de
papers).
La comunidad de R es muy amplia y dinmica (Ej., crecimiento del
n-mero de paquetes), integrada por estadsticos de gran
renombre(Ej., J.Chambers, L. Terney, B. Ripley, etc).
Extensiones especficas a reas nuevas (bioinformtica,
geoestadstica, mo-delos grficos).
1Ihaka R. & Gentleman R. 1996. R: a language for data
analysis and graphics. Journal ofComputational and Graphical
Statistics 5: 299314.
2http://www.gnu.org/licenses/gpl.html3http://www.rstudio.com/
2
-
Un lenguaje orientado a objetos.
Muy parecido a Matlab y Octave, y con sintaxis parecidas a C y
C++.
1.1.2. Cmo funciona?
El siguiente esquema4 presenta el funcionamiento de R:
Figura 1: Esquema de funcionamiento de R
Se puede apreciar que R hace un uso efectivo de las memorias que
disponeel ordenador. La memoria activa se refiere a la memoria RAM
del computador.En este lugar se almacenan las funciones, datos y
resultados. Todos ellos sonobjetos (se detallar mas adelante la
definicin de objetos). Por otro lado einterrelacionadamente, R hace
uso de la memoria del disco duro. En este lugarse ubican las
libreras del paquete as como datos almacenados y las
imgenesgeneradas. Complementariamente, R mantiene una comunicacin
permanentecon internet para la descarga de paquetes as como para el
uso y consulta de lasayudas del programa.
1.2. Entorno GrficoR y RStudio presentan dos componentes muy
importantes en el manejo de
la herramienta, a saber: Consola y Scripts. RStudio en su afn de
una mejororganizacin e implementacin de R tradicional, presenta un
componente deobjetos y otro de ayudas e imgenes, entre otros.
4Tomado de R para principiantes, Emmanuel Paradis
3
-
Figura 2: Pantalla de RStudio
Se puede apreciar en la figura 2 que el entorno que presenta
RStudio estdividido en 4 secciones. La parte superior derecha
corresponde al Script que esdonde se escriben los cdigos de R para
ser guardados y ejecutados cuando seanecesario como rutinas
predeterminadas. En la parte inferior derecha se encuen-tra la
Consola de R. En esta consola se pueden ejecutar comandos
directamentey se presentan los resultados de las instrucciones,
pero se recomienda usar elScript para organizar mejor el cdigo.
Hasta este momento se tiene bastantesimilitud entre R y RStudio en
cuanto a estos dos componentes. Complemen-tariamente, RStudio
presenta en la parte superior derecha los Objetos creadospor el
usuario. Finalmente, en la parte inferior derecha se presenta un
apartadopara desplegar las ayudas del paquete, directorios de
trabajo y los grficos deresultado.
1.3. Objetos en R1.3.1. Objetos
Los objetos5 son entidades que tienen un determinado estado,
comporta-miento (mtodo) e identidad. Los objetos tienen las
siguientes caractersticas:
El estado est compuesto de datos o informaciones; sern uno o
variosatributos a los que se habrn asignado unos valores concretos
(datos).
5http://zarza.usal.es/~fgarcia/doc/tuto2/I_1.htm, Universidad de
Salamanca, Jos Gar-ca
4
-
El comportamiento est definido por los mtodos o mensajes a los
quesabe responder dicho objeto, es decir, qu operaciones se pueden
realizarcon l.
La identidad es una propiedad de un objeto que lo diferencia del
resto;dicho con otras palabras, es su identificador (concepto
anlogo al de iden-tificador de una variable o una constante).
En resumen, un objeto es una entidad que contiene datos,
operaciones y unnombre.
1.3.2. Objetos en R
Como ya se ha dicho, los objetos son aquellos que tienen datos,
operacionesy un nombre. En R casi todo es un objeto. A continuacin
abordaremos cadauno de los objetos en R.
Vector: Coleccin ordenada de objetos del mismo tipo. Veamos un
ejemploen R, digite en su Script (se debe ejecutar cada lnea
mediante ctrl+R octrl+ENTER):
x
-
Array: Es una generalizacin multidimensional de un vector. Por
lo tanto sonelementos del mismo tipo.
x x[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17[2,] 2 6 10 14 18[3,] 3 7 11 15 19[4,] 4 8 12 16
20
La palabra array es lo que hace que R reconozca que lo que est
contenido enel parntesis sea un objeto array. En esta instruccin lo
que se hace crear unarray (tambin llamado arreglo) de dimensin 5
por 5. Es decir que se lo puedeinterpretar como una matriz con
valores del 1 al 20 (1:20).
La potencialidad del array est en el manejo adecuado de las
dimensiones delmismo. Es decir, si se tiene un array de tres
dimensiones, usted debe imaginarque tiene un cubo que tiene cajas y
cada caja contiene un nmero del array.En el ejemplo anterior, lo
anlogo sera un cuadrado que contiene cada valor delarreglo. Se
puede tener arreglos de mayores dimensiones a tres.
Observe que se ha usado a x como nombre del objeto para el
array. Dehaber ejecutado correctamente el comando anterior del
ejemplo del vector x,usted notar que la informacin se sobreescribe,
es decir que los valores quecorresponden a x son los del ltimo
comando ejecutado.
Finalmente, advierta que se ha ingresado el signo de numeral (#)
despusde la instruccin de creacin del arreglo x. Este signo sirve
para comentar cadalnea de cdigo generado. Si se desea comentar
bloques de cdigo en el Script sedebe usar comillas simples ( ) el
inicio y al final del bloque.
Dataframe: Como array, pero permiten elementos (columnas que
funcionancomo vectores) de distintos tipos. Es el objeto ms
habitual para manejode datos procedentes de experimentos.
my.data.frame
-
> my.data.frameID Edad Ingreso Sexo Etnia
1 Carla 10 NA TRUE Mestizo2 Pedro 25 34 FALSE Afroecuatoriana3
Laura 33 15 TRUE Indgena
Es decir que usted ha creado un objeto que contiene informacin
numrica,alfabtica y lgica dispuestas en forma de columnas. Cada
columna, a diferenciade lo que suceda en un arreglo, puede tener un
nombre en particular. En nuestroejemplo las etiquetas de las
columnas son: ID, Edad, Ingreso, Sexo y Etnia.
La columna Ingreso presenta un valor particular llamado NA. Este
valorcorresponde a lo que se conoce como valor perdido (o missing
value en ingls).
En este ejemplo se puede ver que el cdigo para crear el objeto
my.data.frameest dispuesto en varias lneas. Para ejecutar la
instruccin debe sealar todo elcdigo y despus ejecutarlo.
Factor: Funciona como un tipo de vector para datos
categricos.
t t[1] letter1 letter2 letter3 letter4 letter5Levels: letter1
letter2 letter3 letter4 letter5
Se ha creado un objeto que repite la palabra que se encuentra en
labels. En esteejemplo se introduce la primera funcin
predeterminada en R llamada letters.Esta funcin crea las 26 letras
del alfabeto romano. Veamos un segundo ejemplo:
t t[1] a b c d eLevels: a b c d e
Como se mencion anteriormente, se ha creado un factor con
etiquetas de la 1a la cinco conteniendo las primeras 5 letras del
alfabeto romano.
List: Es un "vector generalizado". Cada lista est formada por
componentes(que pueden ser otras listas), y cada componente puede
ser de un tipodistinto. Son unos "contenedores generales.
7
-
n = c(2, 3, 5)s = c("aa", "bb", "cc", "dd", "ee")b = c(TRUE,
FALSE, TRUE, FALSE, FALSE)x = list(n, s, b, 3)
Habiendo ejecutado la instruccin anterior e imprimindola, usted
debe visua-lizar lo siguiente (para x):
> x[[1]][1] 2 3 5[[2]][1] "aa" "bb" "cc" "dd" "ee"[[3]][1]
TRUE FALSE TRUE FALSE FALSE[[4]][1] 3
Advierta que en este ejemplo se usa el signo = en vez del de
asignacin paracrear los objetos. Por otro lado, la lista x creada
tiene dimensin 4. Cada uno delos elementos de la lista x responde a
los vectores creados n,s y b ademsde un elemento incluido
directamente en la lista 3. Si se desea imprimir unelemento de la
lista x en particular, se debe ejecutar:
x[3]
Lo cual mostrar:
> x[3][[1]][1] TRUE FALSE TRUE FALSE FALSE
Es decir que muestra el tercer elemento de la lista, corresponde
al vector b. Laforma en que se ha impreso el elemento 3 de la lista
x es mediante corchetes.
Funciones: Las funciones creadas en R no son estrictamente un
objeto, perose cubrir esta apartado en esta seccin por razones
didcticas.
f_x=function(x){y=x^2y}
En la instruccin anterior se ha puesto como ejemplo la funcin f
(x) = x2. Esdecir que cada valor de entrada debe generar el
cuadrado del nmero ingresadoen la funcin. Si est usando RStudio,
note que en la parte superior derecha seha creado un apartado
llamada Functions que es donde se almacenan todaslas funciones
creadas por el usuario.
Para probar que la funcin trabaja correctamente:
8
-
f_x(3)
Lo cual muestra:
> f_x(3)[1] 9
Es decir que se ha generado el cuadrado del nmero ingresado en
la funcinf_x construida.
1.3.3. Nombres de los objetos y consideraciones
Los nombres vlidos para un objeto son combinaciones de letras,
nmeros,y el punto (".").
Los nombres no pueden empezar con un nmero.
R es "case-sensitive". Es decir que x no es igual a X, son
nombres deobjetos diferentes.
Hay nombres reservados ("function", "if", etc). Se debe evitar
el uso denombres que R ya tiene guardados en bases de datos
(swiss), funciones(mean), entre otros.
Otras consideraciones:
Las asignaciones se hacen con"
-
1.4. Ayuda de RLa ayuda de R proporciona informacin de cada una
de las funciones de las
que dispone. Cada librera tambin engloba un conjunto de
funciones que tienensu respectiva ayuda.
help(lm)
Esta funcin help(funcin) le permitir observar una pantalla que
contiene losdetalles de la funcin que desee. Si trabaja en RStudio,
esta ayuda se despliegaen la parte inferior derecha.
Otra forma de acceder a la ayuda es:
?lm
Es decir, ?funcin. Esto producir el mismo efecto que
help(funcin).
A travs de un conocimiento medio de Ingls, el usuario puede
enterarse dela estructura de la funcin as como de las opciones
disponibles en la misma. Engeneral las funciones reportan la
siguiente informacin6:
Description: descripcin breve.
Usage: para una funcin, proporciona el nombre de la misma con
todos susargumentos y los posibles valores por defecto (opciones);
para un operadordescribe su uso tpico.
Arguments: para una funcin, describe en detalle cada uno de sus
argumentos.
Details: descripcin detallada.
Value: si se aplica, el tipo de objeto retornado por la funcin o
el operador.
See Also: otras pginas de ayuda con funciones u operadores
similares.
Examples: algunos ejemplos que generalmente pueden ser
ejecutados sin abrirla ayuda con la funcin examples().
En general, R proporciona una ayuda extensa de las funciones que
contiene.Es importante que se tome con mayor atencin los elementos
Arguments yExamples de la ayuda. Existen foros en internet que
proporcionan ayudas unpoco ms especficas para alguna rutina que
presente algn tipo de problema.Por ejemplo:
http://stackoverflow.com/questions/tagged/r.
6Tomado de R para principiantes, Emmanuel Paradis
10
-
2. Operaciones con ObjetosEn general, R funciona como una
calculadora normal. Por ejemplo, si usted
digita en la consola:
6+2*3
Obtendr como resultado:
12
Advierta que en este caso no se ha asignado este resultado a
ningn objeto, esdecir que lo que se ha digitado en el ejemplo
anterior no es un objeto. Si sedesea guarda el resultado de la
operacin en un objeto se debe escribir:
x x[1] 12
De esta manera puede disponer del valor del objeto (en este caso
12 para elobjeto x) cuando lo requiera. Por ejemplo:
x mayor que x & Y Y lgico* multiplicacin = mayor o igual x |
y O lgico^ potencia == igual x || y O lgico
%% mdulo != diferente de xor(x, y) O exclusivo%/% divisin de
enteros
Cuadro 1: Operadores lgicos
11
-
Antes de continuar con el manejo de las operaciones con objetos,
es impor-tante sealar la creacin de secuencias en R.
2.1.1. Creacin de secuencias
Una secuencia de nmeros, por ejemplo del 1 al 20 se realiza:
x
-
Funcin Descripcinsum(x) suma de los elementos de xprod(x)
producto de los elementos de xmax(x) valor mximo en el objeto
xmin(x) valor mnimo en el objeto xwhich.max(x) devuelve el ndice
del elemento mximo de xwhich.min(x) devuelve el ndice del elemento
mnimo de xlength(x) nmero de elementos en xround(x, n) redondea los
elementos de x a n cifras decimalessort(x) ordena los elementos de
x en orden ascendente; para hacerlo en
orden descendente: rev(sort(x))which(x == a) Devuelve un vector
de los ndices de x si la operaciones (TRUE
(en este ejemplo, los valores de i para los cuales
x[i]==a).Elargumento de esta funcin debe ser una variable de tipo
lgico
Cuadro 2: Funiciones bsicas para el manejo de objetos
which.max(x)[1] 2
Reporta la posicin en la que se encuentra el mximo valor en el
objeto x.
Ahora veamos algunas operaciones bsicas con matrices. En este
contexto esapropiado ver un par de funciones que nos permiten
agrupar nmeros en formade matriz. Estos comandos son cbind y
rbind.
Veamos su uso en el siguiente ejemplo:
m1 cbind(m1,m2)[,1] [,2] [,3] [,4]
[1,] 1 1 2 2[2,] 1 1 2 2
13
-
Como el usuario habr notado, rbind agrupa las matrices o
vectores en filasmientras que cbind los agrupa en columnas.
Para multiplicar matrices se usa el operador%*%:
> m1 %* %m2[,1] [,2]
[1,] 4 4[2,] 4 4
Otras operaciones importantes en matrices son t y solve. Estas
funciones ob-tienen la transpuesta de la matriz y sy inversa
respectivamente.
2.2. BlucesUna ventaja de R comparado con otros programas
estadsticos con mens
y botones es la posibilidad de programar de una manera muy
sencilla una seriede anlisis que se puedan ejecutar de manera
sucesiva.
Por ejemplo, definamos un vector con 50.000 componentes y
calculemos elcuadrado de cada componente primero usando las
propiedades de R de realizarclculos componente a componente y luego
usando un ciclo.
Normal:
x
-
Los bucles pueden manejar ejemplos numricos y no
numricos.Numricos (ivalores):
> for (i in c(3,2,9,6)) {print (i^2)}[1] 9[1] 4[1] 81[1]
36
No numricos:
> medios.transporte for (vehiculo in medios.transporte)+
{print (vehiculo)}[1] "carro"[1] "camion"[1] "metro"[1] "moto"
Sin duda el uso de bucles en la elaboracin de una rutina en
particular puedellegar a parecer una tarea bastante extensa, pero
siempre guarda la estructuraaqu mencionada.
3. Funciones grficasResultara un curso exclusivo de graficacin
en R para poder dar a conocer
todas las posibilidades de R en este campo. Para ilustrar
algunas de las opcionesque se pueden lograr con el uso de R digite
demo(graphics) en la consola.
En general no se puede asignar una grfica a un objeto. Las
grficas son asig-nadas a dispositivos grficos o ventanas donde se
presenta el grfico ejecutado.
Existen dos tipos de funciones grficas: de alto nivel y de bajo
nivel.
3.1. Grficas de alto nivelEstas grficas son generadas por
comandos directos. Esto significa que el
grfico que se desea es generado directamente con la funcin.
Entre otras, lasiguiente tabla recoge las principales funciones
para la generacin de grficas dealto nivel:
Cada una de las funciones grficas expuestas en la tabla anterior
tiene unabatera de opciones para personalizarlas. Sin embargo, los
comandos grficos dealto nivel tienen ciertas opciones
transversales, las principales son:
Veamos algunas de las funciones grficas ms usadas:
15
-
Funcin Descripcinplot(x) graficar los valores de x (en el eje y)
ordenados en el eje xplot(x,y) grfico bivariado de x (en el eje x)
y y (en el eje y)pie(x) grfico circular tipo pieboxplot(x) Grfico
de caja y bigoteshist(x) histograma de las frecuencias de
xbarplot(x) histograma de los valores de x
Cuadro 3: Funciones grficas de alto nivel
Opcin Descripcinadd=FALSE si es TRUE superpone el grfico en el
ya existente (si existe)axes=TRUE si es FALSE no dibuja los ejes ni
la caja del grficotype="p" especifica el tipo de grfico; "p":
puntos, "l": lneas, "h": lneas
verticales, "s": escaleras, los datos se representan como la
partesuperior de las lneas verticales, entre otros
xlim=, ylim= especifica los lmites inferiores y superiores de
los ejes; porejemplo con xlim=c(1, 10) o xlim=range(x)
main= Ttulo principal; debe ser de tipo caractersub= sub-ttulo
(escrito en una letra ms pequea)
Cuadro 4: Principales opciones grficas
3.1.1. Plot
Digite:
x
-
Figura 4: Plot con una variable
El grfico presenta en el eje de las x una escala ascendente por
defult de R.empieza en 1 termina en 11. El eje y recoge la
informacin del objeto graficado
Usando dos variables:
x
-
Figura 5: Plot con dos variables
La figura toma pares ordenados, es decir que el eje x responde a
los valoresdel objeto x mientras que el eje y responde a los
valores del eje y.
3.1.2. Boxplot
Tambin conocido como grfico de caja y bigotes, refleja
grficamente elresumen de estadsticas principales
(Min,Q1,Mediana,Q3,Max, Outlayers).
Para ejemplificar este comando grfico, abramos la base de datos
Mun-do.csv y ejecutar los siguientes comandos7:
boxplot(PNB_PC)boxplot(log(PNB_PC))
De esta manera se tienen los siguientes grficos:7Recuerde usar
el comando attach(datos) despus de haber importado la base de
datos
para poder usar las etiquetas de la base libremente
18
-
Figura 6: Boxplot del Producto Nacional Bruto per cpita
Si al aplicar el boxplot sobre una variable se tiene un
resultado como muestraDirecto, se debe usar el logaritmo para una
mejor lectura de la variable.
Para obtener un boxplot de varias categoras (en nuestro ejemplo
continen-tes) se tiene que crear un objeto como factor que recoja
las etiquetas de lascategoras y luego se grafica el boxplot:
fregion =
factor(REGION,labels=c("Africa","America","Asia","Europa","Oceania"))boxplot(log(PNB_PC)~fregion,
col=rainbow(5),main="Varios Boxplot a la vez con etiquetas")
19
-
Figura 7: Boxplot de varias categoras
Note que se ha usado en este ltimo grfico ciertas opciones como
main ycol. Estas opciones pueden ser usadas y ejecutadas por el
usuario en grficosanteriores si dificultad.
3.1.3. Pie
Recuerde que un grfico de pie tiene sentido nicamente si se
trata de unavariables con categoras de suma 1.
z.pie
-
Figura 8: Grfico de PIE
3.2. Grficas de bajo nivelEstas funciones sirven para agregar
detalles al grfico principal (generado
por funciones grficas de alto nivel).
Funcin Descripcinpoints(x, y) Agrega puntoslines(x,y) Mismo que
points pero con lneassegments(x0, y0, x1, y1) dibuja una lnea desde
el punto (x0,y0) hasta el punto (x1,y1)abline(a,b) dibuja una lnea
con pendiente b e intercepto a
Cuadro 5: Funciones grficas de bajo nivel
Una de las funciones grficas importantes es el comando curve.
Esta opcinpermite graficar una funcin en un determinado rango:
curve(x^3-3*x,-2,2)abline(h=0)
21
-
Figura 9: Grfico de la funcin x3 3x en el intervalo: 2 x 2
Note que en est ejemplo se ha hecho uso de una funcin de bajo
nivel (abline)que permite dibujar la lnea roja.
4. Funciones estadsticasUna forma rpida de obtener un resumen
estadstico de una variable continua
es la siguiente8:
> summary(PNB_PC)Min. 1st Qu. Median Mean 3rd Qu. Max. NAs126
354 995 3635 4700 21330 7
Una funcin como summary se le conoce como una funcin genrica.
Estetipo de funciones reportan una salida diferente en segn el
objeto al que sele aplique. Vemos que usando un vector de datos
continuos reporta el valormnimo, primer cuartil, mediana, media,
tercer cuartil, valor mximo y nmerode valores perdidos (missing
values).
Para obtener valores individuales de los estadsticos bsicos se
aplican lassiguientes funciones: mean, var, sd y corr. A
continuacin veamos ejemplos decada una usando la misma variable
anterior para verificar los datos.
Media8Use la base de datos Mundo.csv. No olvide usar attach para
usar los nombres de las
variables libremente
22
-
> x x[1] 3635.309
note que se ha usado la opcin na.rm. Esta opcin indica que no se
tome encuenta los valores perdidos en el clculo del estadstico
solicitado. Si no se usaesta opcin, el valor reportado sera NA.
Varianza
> x x[1] 26768678
Desviacin Estndar
> x x[1] 5173.846
Correlacin:
> x x[1] 0.5596316
Note que en el caso de la correlacin, dado que se tiene valores
perdidos en lasvariables, se debe usar la opcin: use="complete.obs"
para obtener un resultado.Recordemos un par de detalles de la
correlacin:
La correlacin esta siempre entre -1 y 1. Lo primero que se
interpreta esel signo
Directamente proporcional si es positivo, si es negativo pasa lo
contrario
Se interpreta es la fuerza de la relacin. Si esta ms cerca de 1,
significaque si aumenta una variable, la otra tambin.
Nmeros intermedios, reducen la fuerza de la relacin.
Se puede realizar un anlisis grfico til a partir de variables
normalizadas endos dimensiones. Abra la base de datos tabla2_8.csv9
para realizar este anlisis.Normalicemos las variables10 TOTALEXP y
FOODEXP y realicemos un grficode las variables originales as como
las variables normalizadas.
9gasto en comida y gasto total (en rupias) para una muestra de
55 familias rurales de India
10Xnorm =
XX
x
23
- totnorm
-
Analicemos los siguientes datos11:
data(InsectSprays)
Realizamos una tabla de frecuencias de los datos:
> table(InsectSprays$spray)A B C D E F12 12 12 12 12 12
Note que el signo $ sirve para describir la variable a la que
nos referimos dentrode la base de datos que estamos usando. Una
forma de analizar si hay diferenciaen las medias los grupos es
realizar un boxplot por cada tipo de spray:
Figura 11: Boxplot por tipo de spray
Se puede apreciar que es probable que exista diferencia en las
medias entrevarios grupos. Por ejemplo, es probable que exista
diferencia en las medias entreel tipo A con el tipo C. Es este
punto usemos el anlisis ANOVA para evidenciaresta diferencia:
> aov.spray1 summary(aov.spray1)
Df Sum Sq Mean Sq F value Pr(>F)spray 5 88.44 17.688 44.8
-
En el anlisis ANOVA se tienen las siguientes hiptesis:
Ho : u1 = u2 = . . . = un
Ha : almenos una es diferente
Es decir que dado que nuestro p valor del estadstico F es menor
a 0.05 essignificativo al 95% de confianza y se puede rechazar la
hiptesis nula. De modoque si hay diferencias significativas en el
tipo de insecticidas. Finalmente, paraevidenciar la diferencia
dentro del grupo de usa el anlisis Tukey:
> TukeyHSD(aov.spray1,"spray")Tukey multiple comparisons of
means95 % family-wise confidence level
Fit: aov(formula = sqrt(count) ~ spray, data =
InsectSprays)$spray
diff lwr upr p adjB-A 0.1159530 -0.6369601 0.8688661
0.9975245C-A -2.5158217 -3.2687349 -1.7629086 0.0000000D-A
-1.5963245 -2.3492377 -0.8434114 0.0000006E-A -1.9512174 -2.7041305
-1.1983042 0.0000000F-A 0.2579388 -0.4949744 1.0108519 0.9144964C-B
-2.6317747 -3.3846879 -1.8788616 0.0000000D-B -1.7122775 -2.4651907
-0.9593644 0.0000001E-B -2.0671704 -2.8200835 -1.3142572
0.0000000F-B 0.1419858 -0.6109274 0.8948989 0.9935788D-C 0.9194972
0.1665841 1.6724103 0.0080813E-C 0.5646043 -0.1883088 1.3175175
0.2512638F-C 2.7737605 2.0208474 3.5266736 0.0000000E-D -0.3548928
-1.1078060 0.3980203 0.7366389F-D 1.8542633 1.1013502 2.6071764
0.0000000F-E 2.2091561 1.4562430 2.9620693 0.0000000
De esta manera se puede ver si existe diferencia significativa
dentro de las cate-goras del grupo con la misma regla usada en el
anlisis ANOVA. Por ejemplo,no existe diferencia significativa entre
los tratamientos A y B pero si existediferencia entre el A y el
C.
6. Estadstica Descriptiva, bases de datos con fac-tor de
expansin
Uno de los usos ms frecuentes de la obtencin de estadsticas
descriptivases cuando nos enfrentamos al uso de bases de datos con
factores de expansin.El paquete que nos ayuda a manejar este
problema es Hmisc.
26
-
install.packages(Hmisc)library(Hmisc)
Recuerde que un paquete debe ser instalado solamente una vez,
pero se debellamar a la librera (library) cada vez que se lo use.
La siguiente tabla recogealgunas funciones bsicas del paquete:
Funcin Descripcinwtd.mean Calcula la media pesadawtd.var Calcula
la varianza pesadawtd.quantile Obtiene los cuantiles
pesadoswtd.table Obtiene las frecuencias pesadas
Cuadro 6: Funciones de estadsticos bsicos de Hmisc
Veamos un ejemplo. Abra la base de datos de personas de
diciembre de 2012ENEMDU. Ejecute:
datos=read.dta("per12_2010.dta",convert.factors=TRUE)>
table(p02)p02hombre mujer41208 41566>
wtd.table(p02,weights=fexp)$x[1] "hombre"
"mujer"$sum.of.weightshombre mujer7056148 7223538
Se puede apreciar a diferencia en los valores que incluyen los
pesos de las varia-bles.
6.1. Estadsticas descriptivas mediante el diseo muestralde la
encuesta.
La ENEMDU es una muestra probabilstica trietpica. Cuenta con un
di-seo muestral que permite realizar clculo de errores estndar ms
robustos almomento de calcular indicadores por ejemplo.
En R, el paquete que nos permite trabajar con encuestas que
tienen diseomuestral es el paquete Survey. En primer lugar, se debe
correr el diseo mues-tral de la encuesta12. Se recomienda tener el
cdigo del diseo muestral en unarchivo a parte dado que no cambia y
se hace uso del mismo segn se necesite.
Veamos:12El cdigo del diseo muestral lo tiene en los documentos
de respaldo o tambin puede
copiarlo de los anexos del presente documento
27
- source("dise_muestral_dic2010 (original).R")disem
-
"Cotopaxi","Chimborazo","El
Oro","Esmeraldas","Guayas","Imbabura","Loja","Los
R??os","Manab??","Pichincha","Tungurahua","Santo Domingo","Santa
Elena","Amazon??a","Zonas no Demiliatadas")
### Dominios ###area1
- dominio[which(provincia1==10 &
area==2)]=28dominio[which(provincia1==11 &
area==2)]=29dominio[which(provincia1==12 &
area==2)]=30dominio[which(provincia1==13 &
area==2)]=31dominio[which(provincia1==17 &
area==2)]=32dominio[which(provincia1==18 &
area==2)]=33dominio[which(provincia1==23 &
area==2)]=34dominio[which(provincia1==24 &
area==2)]=35dominio[which(provincia1==89 &
area==2)]=36dominio[which(provincia1==90 )]=37dominio1
-
"Santo Domingo rural","Santa Elena rural","Amazon??a
rural","N/D")
31