Continuación de aplicaciones usando vectores

Ejemplo 5: Tabla de frecuencia

De una población de 800 ventas efectuadas durante una semana, se desea obtener una muestra de tamaño 60 y luego obtener estadísticas de ella.

Simulemos disponer de 800 ingresos por ventas en una semana que constituirán la población:
>pob =sample(50:1200, 800, rep=T)
Extraeremos una muestra de tamaño 60:
>m = sample(pob, 60, rep=T)

Función summary(...)

Esta función nos permite obtener las estadísticas básicas de una muestra.

>summary(m)

La siguiente imagen muestra los resultados emitidos por la función summary(m).

Nota:
Pueso que estamos trabajando con datos aleatorios, es probable que tus resultados y resultados no coincidan con lo que aquí mostramos.


En esta muestra:
- El ingreso promedio de las ventas fue de 579.4 soles.
- El ingreso mediano fue de 522 soles; es decir, el 50% de las ventas fueron inferiores a 522 soles.
Como el ingreso promedio es superior a la mediana, las ventas no son simétricas, presenan un sesgo a la derecha.
- El 25% de las ventas tuvieron un máximo de 335.2 soles, siendo la venta mínima de 93 soles.
- El 75% de las ventas fueron superiores a 836.5 soles.
- Siendo la desviación estándar igual a 368.66 soles, podemos afirmar que las ventas presentan mucha desviación respecto al promedio.
- Finalmente, las ventas presentan una variabilidad de 56.72%; es decir, no son homogéneas.

Obtención de la tabla de frecuencia de las ventas

La función que nos permite obtener la tabla de frecuencia es fdt(...) de la librería fdth.
Veamos si está en memoria: >search()
En la lista no encontramos la librería fdth.

Veamos si ha sido instalada cuando se instaló el R.
Si el comando library(fdth) no es rechazado, enonces fdth se cargará a memoria y la función fdt(...) estará disponible. Ingresemos el comando.

>library(fdth)

La siguiente imagen nos muestra lo que se obtiene cuando se ejecuta este comando

Podemos apreciar que nos está indicando que las funciones var() y sd() (desviación estandar) se han cargado encima de las que ya estaban.

Obtención de la tabla de frecuencia de la muestra:
>t = fdt(m)
>t
La siguiente imagen muestra los resultados para la muestra que manejamos aquí.
 

Según esta tabla, en la muestra
- Hay 10 ventas que están entre 411.2 y 579.7 soles.
- Hay 46 ventas que alcanzan un máximo de 889.9 soles.
- El 21.67% de las ventas están entre 92.07 y 251.6 soles.
- El 30% de las ventas tuvieron un monto mínimo de 570.7 soles.

Ahora veamos el histograma de frecuencias de esta muestra. Para ello usaremos la función hist(...) en su sintaxis básica.
&tg;hist(m)
Se puede apreciar cierta inclinación a la izquierda con un sesgo a la derecha.

Para activar la ventana de la consola, haga clic en ella o use [CTRL]+F6
Podemos rellenar de colores las barras; para ello debemos añadir la opción col como un vector:
>hist(m,col=c("red","blue","green","magenta","cyan"))
Del mismo modo, podemos añadir la frecuencia de cada intervalo añadiendo la etiqueta de las barras.
> hist(m,col=c("red","blue","green","magenta","cyan"),label=T)
La siguiente imagen muestra el histograma.


Ejemplo 6: Simulación con datos numéricos y de tipo texto

Ante todo, como dijimos al principio:: Una cadena es una secuencia de caracteres. Un vector de tipo cadena contiene elementos cada uno de los cuales es una cadena de caracteres.
>c1 = "Esta es una cadena de caracteres"
>c1
>c1may = c("La cadena anterior en mayúscula: ",toupper(c1))
>c1may
>c1min = c("La cadena anterior en minúscula: ",tolower(c1))
>c1min

Un vector de caracteres:
>dias = c("Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sábado", "Domingo")
>dias

Se puede pasar a mayúscula con: toupper(dias) y a minúscula con: tolower(dias).

Definiremos un vector del número de visitas por día a la Iglesia San Francisco en Lima.

>nv = c(350, 422, 380, 250, 300, 380, 420)

¿Cuántas visitas tuvo la iglesia el día Miercoles?
>nv[dias=="Miercoles"]

¿En qué días el número de visitas fue superior a 350?
>dias[nv>350]


Ejemplo 7: Estadísticas con vectores de tipo texto

Supongamos que en Notas tenemos las notas de 20 alumnos y en Nombres tenemos sus nombres:

>Notas = c(12, 17, 10,  9,  7, 14, 13, 17, 11, 12, 10, 11, 12, 15,  8, 5, 12, 15, 16, 11)
> x
>Nombres = c("Luis","Carlos","Celia","Alberto","Karla","Elba","Elena","Miguel", "Domingo","Cesar","Vilma","Rosa")
> length(nombres)
Nos falta 8:
>Nombres = c(Nombres, "María","Cecilia","José","Magdalena","Walter","Jano","Jhon","Daphne")
> length(nombres)

¿Quiénes son los aprobados?
>Nombres[Notas>10]

¿Y los desaprobados?
> Nombres[Notas<=10]

Nota promedio de los 20 alumnos:
>notaProm = mean(Notas)

Promedio de los aprobados:
>promApr = mean(Notas[Notas>10])
>promApr

Promedio de los desaprobados:
>promDes = mean(Notas[Notas<=10])
>promDes

Desviación estándar de las notas de ambos grupos:

> desvApr = sqrt(var(Notas[Notas>10]))
> desvApr

> desvDes = sqrt(var(Notas[Notas<=10]))
> desvDes

¿Cuál de los dos grupos tienen notas más homogéneas?
>cvApr = desvApr/promApr
>cvApr

> cvDes = desvDes/promDes
>cvDes

En mi caso, cvApr = 1645; cvDes = 0.2376. En consecuencia, las notas de los aprobados es más homogénea que los desaprobados pues presentan una variabilidad del 16.45%.

Histograma de frecuencias:

Pongamos los dos histogramas en la misma ventana:
>par(mfrow=c(1,2))
Histograma de los aprobados, de color rojo:
>hist(Notas[Notas>10],col="red")
De los desaprobados, de color azul:
>hist(Notas[Notas<=10],col="blue")


Ahora, los dos histogramas en la misma gráfica y la misma ventana:
Cerramos la ventana de gráficos para volver a la de un gráfico por ventana o se puede usar: par(mfrow=c(1,1))
El histograma:Verde los aprobados y azul los desaprobados:
>hist(c(Notas[Notas<=10],Notas[Notas>10]),col=c("blue","green"),labels=T)

La imagen siguiente nos muestra el histograma múltiple.



Ejemplo 8: Simulación de datos

En este ejemplo obtendremos las estadísticas del ingreso mensual de un grupo de 600 trabajadores del Congreso de la República. Sus ingresos varían entre 3500 y 18200 soles.


>x = sample(3500:18000,600,rep=T)
>x
Clasificaremos a estos trabajadores según sus ingresos:

Grupo 1: Ingresos entre 14000 y 18200.
Grupo 2: Ingresos entre 10000 y 13999.
Grupo 3: Ingresos entre 6500 y 9999.
Grupo 4: Ingresos entre 4500 y 6499.
Grupo 5: Ingresos entre 3500 y 4499.

> gr1=x[x<4500]
> gr2=x[x>=4500 & x<6500]
> gr3=x[x>=6500 & x<10000]
> gr4=x[x>=10000 & x<14000]
> gr5=x[x>=14000 & x<=18200]

El número de elementos de cada grupo:
>ngr1 = length(gr1)
>ngr2 = length(gr3)
>ngr3 = length(gr3)
>ngr4 = length(gr4)
>ngr5 = length(gr5)

Si se suma estas cantidades se tendrá el  total de empleados del Congreso.

Histograma de todos los grupos en el mismo gráfico:

> hist(c(gr1,gr2,gr3,gr4,gr5),col=c("red","green","blue","cyan","magenta"),labels=T,xlab="Grupos",ylab="Número",main="Histograma por grupos")

En la siguiente imagen se muestra el histograma de frecuencia de la muestra con 5 niveles en el Eje X.
 


Ahora vamos a generar el histograma de frecuencias de cada grupo.
 > hist(gr1,5,labels=T,col=c(1,5,4,3,2))
> hist(gr2,5,labels=T,col=c(3,2,4))
> hist(gr3,5,labels=T,col=c(3,2,4,5,1,6))
> hist(gr4,5,labels=T,col=c(3,2,4,5,1))
> hist(gr5,5,labels=T,col=c(1, 2, 3,4,5))
 

Continuaremos en la siguiente sesión