Upload
nasly-reyes-payares
View
20
Download
1
Embed Size (px)
Citation preview
1
Universidad De Sucre. Facultad De Educación y Ciencias .Licenciatura en
Matemáticas. Estadística I .Docente De Área: Melba Vertel
ESTADÍSTICA DESCRIPTIVA EN R
Est. Nasly Vanessa Reyes Payares
Universidad De Sucre
Est. Carmen Ana Mercado Herazo
Universidad De Sucre [email protected]
Est. Nancy Carolina Payares Martínez
Universidad De Sucre
Resumen: Se introduce el software estadístico R y sus ventajas y desventajas en
la enseñanza y aprendizaje de la estadística descriptiva. Se trabajará desde su
instalación, el uso de bibliotecas y algunos comandos básicos y algunos
ejemplos de su uso en la enseñanza de la estadística.
Palabras clave: Enseñanza de la Estadística, Software estadístico R,
tecnologías de la información, Estadística Descrptiva
Abstract: We introduce the R statistical software and its advantages and
disadvantages in teaching and learning of descriptive statistics. It will work
since its installation, use oflibraries and some basic commands and some
examples of its use in statistical educational.
Key Word: Academic Performance, Mathematical Education, Diagnostic tests and
Higher Education, descriptive statistics.
INTRODUCCIÓN
R es un lenguaje y entorno de programación, creado en 1993 por Ross Ihaka y Robert
Gentleman del Departamento de Estadística de la Universidad de Auckland, cuya
característica principal es que forma un entorno de análisis estadístico para la
manipulación de datos, su cálculo y la creación de gráficos. En su aspecto R puede
considerarse como otra implementación del lenguaje de programación S, con la
particularidad de que es un software GNU, General Public Licenc (conjunto de
programas desarrollados por la Free Software Foundation), es decir, de uso libre.
La página principal del proyecto “R − project” es http: //www.r − project.org, en
ella podremos conseguir gratuitamente el programa en su última versión, o
cualquiera de las anteriores (para el caso de utilizar paquetes no implementados
para las ´últimas versiones), además de manuales, librerías o package y demás
elementos que forman la gran familia que es R.
Una característica del lenguaje R es que permite al usuario combinar en un solo
programa diferentes funciones estadísticas para realizar análisis más complejos.
Además los usuarios de R tienen a su disponibilidad un gran número de programas
escritos para S y disponibles en la red la mayoría de los cuales pueden ser
utilizados directamente con R.
Primeras nociones
¿Cómo instalar R?
Instalar R es sumamente simple, solo hay que dirigirse a la página http://www.r-
project.org/ donde se le da click a la opción download R, Una vez instalado el
programa, la forma más fácil de usarlo es de forma interactiva mediante la línea de
2
comandos. Cuando R se inicia, aparece la ventana del programa “Gui” (graphical user
interface) con un mensaje de apertura.
Debajo del mensaje de apertura de la consola de r se encuentra el “prompt” que es
el símbolo “>” (mayor que). Las expresiones en r se escriben directamente a
continuación del “prompt” en la consola de r. si se escribe e intenta ejecutar un
comando que se ha escrito en forma incompleta, el programa presenta un “+” que es
el prompt de continuación. una característica de r es que nos permite guardar la
sesión de trabajo, lo que nos será muy útil en el caso de que necesitemos utilizar
bibliotecas o datos que ya hemos implementado. Al cerrar el programa o al teclear
“q ( ) 00 nos preguntara si desea salvar los datos de esta sesión de trabajo. puede
responder yes (si), no (no) o cancel (cancelar) pulsando respectivamente las letras
y, n o c, en cada uno de cuyos casos, respectivamente, salvara los datos antes de
terminar, terminara sin salvar, o volverla a la sesión de r. los datos que se
salvan estarán disponibles en la siguiente sesión de r.
CONCEPTOS INICIALES
R como calculadora
El uso más básico que tiene R es como calculadora, pues se pueden realizar cálculos
aritméticos simples con los simbolos de +, –, *, / ^ para las operaciones básicas.
Algunos ejemplos sencillos y funciones de uso común pueden verse en Verzani (2004),
Por ejemplo
3
ASIGNACIONES
Al igual que ocurre con otros lenguajes de programación R asigna nombres a las
operaciones. Esto lo conseguiremos mediante el símbolo “< −”, “− >” ´o “=”. Como
para poder visualizar un dato renombrado hay de escribir el nombre después de
haberlo asignado, es útil utilizar los “;” después de la asignación para ahorrarnos
espacio.
Ejemplo
> npfam<-c(2,3,3,5,4,7,2,4,2,5,3,6,4,4,2,5,3);npfam
[1] 2 3 3 5 4 7 2 4 2 5 3 6 4 4 2 5 3
En el caso que necesitemos poner notaciones o comentarios en R, estos se realizan
poniendo delante del comentario el símbolo “#”. Esto nos servirá para explicar lo
que estamos haciendo o simplemente recordar de qué trata el programa o función que
estemos implementando.
> #Hola
> #Espero que todo esto te sea ´útil
FUNCIÓN LIBRARY
La función library gestiona los libros de la biblioteca, dando información sobre
los existentes y cargándolos en memoria o descargándolos de la misma. Un libro está
formado por funciones, datos y documentación; todos ellos contenidos en un
directorio que contiene varios subdirectorios, con informaciones diversas, de
acuerdo con un formato establecido. De hecho, al cargar R, se carga al menos un
primer libro denominado base.
Por ejemplo “library ()” devuelve una lista de los libros que hay en la biblioteca
predeterminada de R. “library (help=“base”)” devuelve una pequeña ayuda sobre el
libro base. Si consultamos la lista de búsqueda observaremos los libros que hay
actualmente en memoria.
> library () Packages in library ’C:/PROGRA~1/R/R-210~1.1/library’:
Agricolae Statistical Procedures for Agricultural Research
akima Interpolation of irregularly spaced data
Animation Demonstrate Animations in Statistics
MANIPULACIÓN DE DATOS
Operaciones con Vectores
El primer tipo de objeto que manejaremos es el vector (colección ordenada de
elementos del mismo tipo). Podemos escribir vectores de varias maneras, utilizando
la opción “:” (el vector comienza en el primer número suministrado y finaliza en el
segundo o en un número anterior sin sobrepasarlo, tanto en orden ascendente como
descendente) ´o mediante la función de concatenación “c( )”.
> 1:10 [1] 1 2 3 4 5 6 7 8 9 10
> 10:1 [1] 10 9 8 7 6 5 4 3 2 1
> 1.5:7.5 [1] 1.5 2.5 3.5 4.5 5.5 6.5 7.5
Una opción de R es que podemos asignar nombres a los elementos de un vector
mediante la función “names” (también se podrá utilizar para nombrar cualquier
objeto).
> x<-1:7
> x
[1] 1 2 3 4 5 6 7
> names (x)<-c("Lunes","Martes","Miercoles","Jueves","Viernes","Sabado","Domingo")
> x
Lunes martes Miércoles Jueves Viernes Sábado Domingo
1 2 3 4 5 6 7
A continuación tenemos una tabla con un conjunto de funciones muy útiles a la hora
de trabajar con vectores:
4
Operaciones con Matrices
Las matrices o variables indexadas (Arrays) son generalizaciones multidimensionales
de vectores. De hecho, son vectores indexados por dos o más índices y que se
imprimen de modo especial.
Para crearlas utilizamos la función “matrix”. Los parámetros principales de esta
función son: data (vector que contiene los valores que formarán la matriz), nrow
(número de filas), ncol (número de columnas).
Ejemplo
> m1<-matrix (1, 2,3)
> m1 [,1] [,2] [,3]
[1,] 1 1 1
[2,] 1 1 1
> # Hemos formado una matriz de unos de dos filas y tres columnas
Dispositivos gráficos
Los gráficos disponibles en R son todos de gran calidad y poseen una versatilidad
muy grande. Para hacernos una idea (a modo de ejemplo), podemos ejecutar la función
demo:
> demo ("graphics")
Funciones graficas básicas
5
Gráficos estadísticos
DESARROLLO DE LA ACTIVIDADADES
Para poner en práctica lo aprendido hasta ahora se proponen las siguientes
actividades
1. Realice los siguientes cálculos aritméticos, utilizando el programa R
> (24/-8+7)/(9-6*(2))
[1] -1.333333
> (2^3)*-7+4-((1/3)+(1/2))
[1] -52.83333
6
> (sqrt(16)+5*4-3^-2)/(3*(4-8)+1)
[1] -2.171717
> (1/2)*((5/4-2^-1)*13/4-sqrt(7)+8/(2-(1/5))-3^2)
[1] -2.381903
> 2*sin(pi/3)+5*cos(pi/4)-((tan(pi/6))/4)
[1] 5.123247
> 4*log(5,2)-3*log(7,3)+((1/3)*(log(8))^3)
[1] 6.971203
2. Para los ejercicios de la parte 1, redondee los resultados finales a una cifra
decimal.
A)#Redondeo a un decimal
> round(-1.333333,digits=1)
[1] -1.3
B) )#Redondeo a un decimal
> round(-52.83333,digits=1)
[1] -52.8
C) )#Redondeo a un decimal
> round(-2.171717,digits=1)
[1] -2.2
D) )#Redondeo a un decimal
> round(-2.381903,digits=1)
[1] -2.4
E) )#Redondeo a un decimal
> round(5.123247,digits=1)
[1] 5.1
F) )#Redondeo a un decimal
> round(6.971203,digits=1)
[1] 7
Suponga que se toma una muestra de 20 taxistas que laboran en el centro de la
ciudad de
Heredia durante setiembre de 2011. Los datos obtenidos para los 20 taxistas se
describen a continuación:
7
ID: Identificación del taxista
NP: número de pasajeros
Trasportados por turno
GC: Gasto diario en combustible (en miles de colones)
AS: Años de servicio como taxista
a) Construya dos vectores y denótelos GC y NP para guardar los datos de Gasto de combustible y Número de pasajeros.
>#Vector Gasto de Combustible
> GC<-
c(8.0,7.6,9.7,12.6,12.9,10.2,14.2,8.4,14.0,13.9,8.7,9.4,7.4,13.4,11.1,13.5,8.6,1
3.5,9.7,11.6);GC
[1] 8.0 7.6 9.7 12.6 12.9 10.2 14.2 8.4 14.0 13.9 8.7
[12] 9.4 7.4 13.4 11.1 13.5 8.6 13.5 9.7 11.6
>#Vector Número de Pasajeros
> NP<-c(11,9,9,10,8,9,10,8,13,12,12,12,7,11,13,10,10,11,10,11);NP
[1] 11 9 9 10 8 9 10 8 13 12 12 12 7 11 13 10 10 11
[19] 10 11
b) Calcule la moda, la mediana, la media, desviación estándar, varianza y los cuartiles, par los datos de GC y NP.
>#Vector Gasto de Combustible
> GC<-
c(8.0,7.6,9.7,12.6,12.9,10.2,14.2,8.4,14.0,13.9,8.7,9.4,7.4,13.4,11.1,13.5,8.6,13.5
,9.7,11.6);GC
[1] 8.0 7.6 9.7 12.6 12.9 10.2 14.2 8.4 14.0 13.9 8.7 9.4 7.4 13.4 11.1
[16] 13.5 8.6 13.5 9.7 11.6
> # mediana de la distribución
> median(GC)
[1] 10.65
8
> # promedio o media aritmética de la distribución
> mean(GC)
[1] 10.92
> # calcula la moda
> mfv(GC)
[1] 9.7 13.5
> # desviación estándar de la distribución
> sd(GC)
[1] 2.408669
> # varianza de la distribución
> var(GC)
[1] 5.801684
> # cuatro cuartiles de la distribución
> quantile(GC)
0% 25% 50% 75% 100%
7.400 8.675 10.650 13.425 14.200
>#Vector Número de Pasajeros
> NP<-c(11,9,9,10,8,9,10,8,13,12,12,12,7,11,13,10,10,11,10,11);NP
[1] 11 9 9 10 8 9 10 8 13 12 12 12 7 11 13 10 10 11 10 11
> # mediana de la distribución
> median(NP)
[1] 10
> # promedio o media aritmética de la distribución
> mean(NP)
[1] 10.3
> # desviación estándar de la distribución
> sd(NP)
[1] 1.657519
> # calcula la moda
> mfv(NP)
[1] 10
> # varianza de la distribución
> var(NP)
[1] 2.747368
> # cuatro cuartiles de la distribución
> quantile(NP)
0% 25% 50% 75% 100%
7.00 9.00 10.00 11.25 13.00
c) Represente gráficamente las variables GC y NP.
#Variable GC
> barplot(GC,
col=c("maroon","beige","aquamarine","red","blue","green","yellow","aquamarin
e","orange","pink","yellow","violet","turquoise","orange","sky
blue","brown","green"),main="Gráfico Del Gasto De Combustible Por
Taxista",xlab="Taxista", ylab="Gasto De Combustible", legend = rownames(GC))
9
> boxplot(GC,horizontal=TRUE,col="violet")
#Variable NP
> barplot(NP,
col=c("maroon","beige","aquamarine","red","blue","green","yellow","aquamarin
e","orange","pink","yellow","violet","turquoise","orange","sky
blue","brown","green"),main="N° De Pasajeros Por Turno Del
Taxista",xlab="Taxista", ylab="N° De Pasajeros", legend = rownames(NP))
> boxplot(NP,horizontal=TRUE,col="aquamarine")
Gráfico Del Gasto De Combustible Por Taxista
Taxista
Gas
to D
e C
ombu
stib
le
02
46
810
1214
8 9 10 11 12 13 14
N° De Pasajeros Por Turno Del Taxista
Taxista
N°
De
Pas
ajer
os
02
46
810
12
10
1. De acuerdo con MIDEPLAN durante el 2008 las distintas regiones de Costa Rica han presentado diferencias en cuanto al porcentaje de hogares pobres (PHP) y
la tasa de mortalidad infantil (TMI) por cada mil nacidos vivos, como se
muestra a continuación.
VIII FESTIVAL INTERNACIONAL DE MATEMÁTICA
7 al 9 de junio de 2012. Sede Chorotega, Universidad Nacional, Liberia, Costa
Rica
a) Construya dos vectores y denótelos PHP y TMI para guardar los datos de
porcentaje de hogares pobres y tasa de mortalidad infantil.
> PHP<-c(14.0,24.7,16.4,26.0,25.7,24.6);PHP
[1] 14.0 24.7 16.4 26.0 25.7 24.6
> TMI<-c(8.8,10.2,8.0,9.1,8.2,9.4);TMI
[1] 8.8 10.2 8.0 9.1 8.2 9.4
b) Calcule la moda, la mediana, la media, desviación estándar, varianza y los
cuartiles, par los datos de PHP y TMI.
7 8 9 10 11 12 13
11
# VARIABLE PHP
> # calcula la moda
> mfv(PHP)
[1] 14.0 16.4 24.6 24.7 25.7 26.0
> # mediana de la distribución
> median(PHP)
[1] 24.65
> # promedio o media aritmética de la distribución
> mean(PHP)
[1] 21.9
> # desviación estándar de la distribución
> sd(PHP)
[1] 5.273329
> # variancia de la distribución
> var(PHP)
[1] 27.808
> # cuatro cuartiles de la distribución
> quantile(PHP)
0% 25% 50% 75% 100%
14.00 18.45 24.65 25.45 26.00
#Variable TMI
> # calcula la moda
> mfv(TMI)
[1] 8.0 8.2 8.8 9.1 9.4 10.2
> # mediana de la distribución
> median(TMI)
[1] 8.95
> # promedio o media aritmética de la distribución
> mean(TMI)
[1] 8.95
> # desviación estándar de la distribución
> sd(TMI)
[1] 0.8093207
> # variancia de la distribución
> var(TMI)
[1] 0.655
> # cuatro cuartiles de la distribución
> quantile(TMI)
0% 25% 50% 75% 100%
8.000 8.350 8.950 9.325 10.200
12
c) Represente gráficamente las variables PHP y TMI.
#Variable PHP
#Poligoo de Frecuencias de PHP
> h1<- graph.freq(PHP,col="sky blue",frequency=1,las=2,xlab="h1")
> h2<- graph.freq (PHP, frequency =2, axes= FALSE,las=2,xlab="h2")
> polygon.freq(h2, col="maroon", lwd=2, frequency =2)
> TIC<- h2$breaks[2]- h2$breaks[1]
> axis(1,c(h2$mids[1]-TIC, h2$mids, h2$mids[6]+TIC ),cex=0.6)
> axis(2, cex=0.6,las=1)
#Ojiva de PHP
> h<-graph.freq(resp,plot=F)
> points<-ojiva.freq(h,type="l",col="maroon",frame=FALSE,xlab="Limit of class",
ylab="Accumulated relative frequency", main="ojiva")
> grid(col="green")
15
20
25
0.0
0.5
1.0
1.5
2.0
2.5
3.0
h1 h2
12.5 15.5 18.5 21.5 24.5
0.0
0.1
0.2
0.3
0.4
0.5
0.6
15 20 25
0.0
0.2
0.4
0.6
0.8
1.0
ojiva
Limit of class
Accu
mul
ated
rela
tive
frequ
ency
13
#Histograma de PHP
> h1<-hist(PHP,border=FALSE,xlim=c(7,26))
> polygon.freq(h1,frequency=1,col="maroon")
#Poligoo de Frecuencias de TMI
> h1<- graph.freq(TMI,col="maroon",frequency=1,las=2,xlab="h1")
> h2<- graph.freq (TMI, frequency =2, axes= FALSE,las=2,xlab="h2")
> polygon.freq(h2, col="sky blue", lwd=2, frequency =2)
> TIC<- h2$breaks[2]- h2$breaks[1]
> axis(1,c(h2$mids[1]-TIC, h2$mids, h2$mids[6]+TIC ),cex=0.6)
Histogram of PHP
PHP
Freq
uenc
y
10 15 20 25
0.0
0.5
1.0
1.5
2.0
8.0
8.5
9.0
9.5
10.0
10.5
0.0
0.5
1.0
1.5
2.0
h1 h2
7.7 8.3 8.9 9.5 10.1
0.0
0.1
0.2
0.3
14
#Ojiva
> h<-graph.freq(TMI,plot=F)
> points<-ojiva.freq(h,type="l",col="green",frame=FALSE,xlab="Limit of
class", ylab="Accumulated relative frequency", main="ojiva")
> grid(col="orange")
#Histograma TMI
> h1<-hist(TMI,border=FALSE,xlim=c(8,10))
> polygon.freq(h1,frequency=1,col="green")
8.0 8.5 9.0 9.5 10.0 10.5 11.0
0.0
0.2
0.4
0.6
0.8
1.0
ojiva
Limit of class
Accu
mul
ated
rela
tive
frequ
ency
Histogram of TMI
TMI
Fre
quency
8.0 8.5 9.0 9.5 10.0
0.0
0.5
1.0
1.5
2.0
15
1. Considere el siguiente cuadro referido a un grupo de estudiantes
universitarios en cuanto a su género y estado conyugal.
Estado conyugal
Género Casado Soltero Otro
Masculino 8 14 5
Femenino 12 9 10
a) Construya la tabla anterior mediante el programa R.
EC= Estado Conyugal
> EC<-matrix(c(8,12,14,9,5,10),nrow=2,ncol=3);EC
[,1] [,2] [,3]
[1,] 8 14 5
[2,] 12 9 10
> rownames(EC)= c( "Masculino","Femenino");EC
[,1] [,2] [,3]
Masculino 8 14 5
Femenino 12 9 10
> colnames(EC)=c("Casado","Soltero","Otro");EC
Casado Soltero Otro
Masculino 8 14 5
Femenino 12 9 10
b) Calcule las marginales y las proporciones basadas en el total de la
muestra.
#Personas Casadas
> Casado<-c(8,12);Casado
[1] 8 12
> mean(Casado)
[1] 10
> var(Casado)
[1] 8
> range(Casado)
[1] 8 12
> sd(Casado)
[1] 2.828427
> length(Casado)
[1] 2
#Personas solteras
> Soltero<-c(14,9);Soltero
[1] 14 9
> mean(Soltero)
[1] 11.5
16
> var(Soltero)
[1] 12.5
> range(Soltero)
[1] 9 14
> sd(Soltero)
[1] 3.535534
> length(Soltero)
[1] 2
#Personas Con Otro Tipo De Relación
> Otro<-c(5,10);Otro
[1] 5 10
> mean(Otro)
[1] 7.5
> var(Otro)
[1] 12.5
> range(Otro)
[1] 5 10
> sd(Otro)
[1] 3.535534
> length(Otro)
[1] 2
c) Represente gráficamente la tabla anterior (realice al menos dos gráficos diferentes).
#Gráficos Que Relaciona El Género Con El Estado Civil
> barplot(EC, main="Gráfico Que Relaciona El Género Con El Estado
Civil",xlab="Estado Civil", ylab="Género", legend = rownames(EC))
Casado Soltero Otro
Femenino
Masculino
Gráfico Que Relaciona El Género Con El Estado Civil
Estado Civil
Género
05
10
15
20
17
> mosaicplot(EC, col=c("sky blue","maroon","green"),main="Gráfico que relaciona el
género con el Estado Civil", xlab="Género", ylab="Estado Civil")
Gráfico que relaciona el género con el Estado Civil
Género
Estado C
ivil
Masculino Femenino
Casado
Soltero
Otro