10/07/21
Abstract
La teoría mencionada puede revisarse en el capítulo 1 de mis notas de clase que aparecen en el siguiente documento: 1.1. Estadística básica. En Rpubs:: toc se pueden ver otros documentos de posible interés.
Primero, debemos instalar y descargar las librerías que vamos a utilizar.
library(dplyr)
library(modeest) # Para hallar la moda
library(moments) # Para hallar las medidas de forma
Recuerde que el data frame (básicamente una tabla) es en realidad solo un tipo específico de otra estructura de datos (la lista). Actualmente, es el formato de entrada de nuestros datos más frecuente para los análisis estadísticos (dentro de R, pero también para otros programas estadísticos y, por supuesto, para softwares de hojas de cálculo). Por esta razón, primero, es importante importar/cargar los datos antes de iniciar nuestro análisis. Esto ya se explicó en el documento Rpubs :: Importar datasets.
En los documentos Rpubs :: Examinar data frames y Rpubs :: Examinar data frames explicamos algunas funciones de R que nos permiten revisar propiedades de los data frames de las variables que contenidads en él. En Rpubs :: Recodificar variables describimos como recodificar las variables. Para más detalles relacionados con los data frames, se puede consultar el documento Rpubs :: data frames (generalidades).
Vamos a utilizar un conjunto de datos, que fueron recogidos aplicando una encuesta a una muestra de estudiantes universitarios. Es un data frame con 400 observaciones y 46 variables, las cuales se describen en este enlace (click aquí). En este documento, se importará la base de datos desde una dirección web (dos opciones):
Opción A (web, desde github): Para esta opción, se necesita cargar la librería “repmis”:
library(repmis)
source_data("https://github.com/hllinas/DatosPublicos/blob/main/Estudiantes.Rdata?raw=false")
datosCompleto <- Estudiantes
Opción B (web, desde Google Drive):
url.dat<- "http://bit.ly/Database-Estudiantes"
datosCompleto <- read.delim(url.dat)
Recuérdense las otras opciones, si tienen las bases de datos descargadas en su sesión de trabajo (ya sea en extensiones en Rdata, en excel o en otros formatos). Para más detalles, véase el documento RPubs :: Importar datasets básico. A manera de ejemplo:
Opción C (local, con archivo en Rdata):
load(file="Estudiantes.Rdata")
datosCompleto <- Estudiantes
Opción D (local, con archivo en excel):
datosCompleto <- read.delim('clipboard')
Se pueden organizar en cuatro (4) grandes grupos, como se muestra en la figura de abajo. En cada grupo mencionamos solo algunas medidas.
La media, varianza y desviación estándar no se interpretan.
Si el coeficiente es próximo al 0%, significa que existe poca variabilidad en los datos y es una muestra muy compacta. En cambio, si tienden a 100% es una muestra muy dispersa.
Es el promedio de las desviaciones de los valores de la muestra respecto de la media muestral, elevadas al cubo, dividido por la desviación típica al cubo. En fórmula:
\[\mbox{Sesgo}= \frac{\sum(x_i - \overline{x})^3\cdot f_i}{s^3} \]
Aquí: \(x_i\) es el $iésimo $dato, \(f_i\) es la frecuencia del \(i\)-ésimo dato, \(\overline{x}\) es la media de la muestra y \(s\) es la desviación estándar de la muestra.
El código para escribir la expresión anterior es:
$$\mbox{Sesgo}= \frac{\sum(x_i - \overline{x})^3\cdot f_i}{s^3}$$
Se dice que la distribución de los datos es:
Asimétrica positiva o a la derecha (o positivamente sesgada): Si \(\mbox{Sesgo}>0\).
Asimétrica negativa o a la izquierda (o netativamente sesgada): Si \(\mbox{Sesgo}<0\).
Simétrica: si \(\mbox{Sesgo}=0\).
La imagen de abajo ilustra gráficamente lo explicado anteriormente.
Es el promedio de las desviaciones de los valores de la muestra respecto de la media muestral, elevadas a la cuarta, dividido por la desviación típica a la cuarta y al resultado se le resta 3. En fórmula:
\[\mbox{Curtosis}= \frac{\sum(x_i - \overline{x})^4\cdot f_i}{s^4} - 3 \]
Aquí: \(x_i\) es el $iésimo $dato, \(f_i\) es la frecuencia del \(i\)-ésimo dato, \(\overline{x}\) es la media de la muestra y \(s\) es la desviación estándar de la muestra.
El código para escribir la expresión anterior es:
$$\mbox{Curtosis}= \frac{\sum(x_i - \overline{x})^4\cdot f_i}{s^4} - 3 $$
La distribución de los datos es:
Platicúrtica, si existe una baja concentración de los valores en torno a su media (\(\mbox{Curtosis}<0\)).
Mesocúrtica, si existe una concentración normal de los valores en torno a su media (\(\mbox{Curtosis}=0\)).
Leptocúrtica, si existe una gran concentración de los valores en torno a su media (\(\mbox{Curtosis}>0\)).
La imagen de abajo ilustra gráficamente lo explicado anteriormente.
En R, la función “summary” muestra un resumen general sobre las variables del data frame (mínimo, máximo, media, mediana, primer y tercer cuartil). Además, R reconoce que las variables categóricas, por lo que muestra la frecuencia de cada categoría.
summary(datosCompleto)
Ahora, vamos a revisar las medidas para una variable numérica en particular, digamos, las notas del tercer parcial (P3):
P3 <- as.numeric(datosCompleto$P3)
x<-P3
Algunos estadísticos de esta variable son:
min(x) #A) Mínimo
max(x) #B) Máximo
range(x) #C) obtenemos (min, max)
length(x) #D) Tamaño
sum(x) #E) Suma los valores de los datos
Hallar la media, media y moda de las calificaciones del tercer paracial. Interprete sus respuestas.
La media se calcula de la siguiente manera:
mean(x) #A) Media aritmética
El valor de la media fue de 3.25125.
Interpretación: La media no se interpreta.
La mediana se puede obtener de dos maneras:
median(x) #B) Mediana
quantile(x, probs=0.5) #C) Mediana o Segundo cuartil
El valor de la mediana fue de 3.3.
Interpretación: El 50% de los estudiantes obtuvo una nota en el tercer parcial menor o igual que 3.3.
Hay varias formas de calcular la moda:
mfv(x) #D) Moda con la librería "modeest"
moda=function(x) { #E) Una función para hallar la moda
q=table(x)
q=sort(q,TRUE)
return(q[1])
}
moda(x) #F) Moda
Moda = function(x) { #G) Otra función para hallar la moda
q <- unique(x)
q[which.max(tabulate(match(x, q)))]
}
Moda(x) #H) Moda
En cualquier caso, el valor de la moda fue 5.
Interpretación: La nota más frecuente fue de 5.0.
Calcule la varianza, la desviación estándar y el coeficiente de variación. Interprete sus respuestas.
La varianza se calcula de la siguiente manera:
var(x) #A) Varianza muestral
El valor de la varianza fue de 0.9786952.
Interpretación: La varianza no se interpreta.
La desviación estándar (o desviación típica) se puede hallar de dos maneras:
sqrt(var(x)) #B) Desviación estándar muestral
sd(x) #C) Desviación estándar muestral
El valor de la desviación estándar fue de 0.9892902.
Interpretación: La desviación estándar no se interpreta.
El coeficiente de variación se halla definiendo y aplicando una función:
CV<-function(x){ #D) Funcion que permite calcular el coeficiente de variación
y<-100*sd(x)/mean(x)
return(y)
}
CV(x) #E) Coeficiente de variación
El valor del coeficiente de variación fue de 30.428.
Interpretación: El porcentaje no es muy alto. Por lo tanto, las calificaciones del terecer parcial tienen una dispersión relativamente buena.
Calcule los percentiles 5 (\(P_5\)), 20 (\(P_{20}\)), 40 (\(P_{40}\)), 70 (\(P_{70}\)), los tres cuartiles (\(Q_1\), \(Q_2\), \(Q_3\)), los percentiles extremos (\(P_0\), \(P_{100}\)) y el rango intercuartil de las notas del tercer parcial. Interprete algunos de los resultados obtenidos.
Los percentiles (y/o cuartiles) se pueden calcular de varias maneras, como se muestra a continuación:
quantile(x, probs=0.05) #A) Percentil 5
quantile(x, probs=0.20) #B) Percentil 20
quantile(x, probs=c(0.4,0.7)) #C) Percentiles 40 y 70
quantile(x) #D) Da los tres cuartiles y los percentiles extremos
quantile(x, probs=0.25) #E) Primer cuartil
quantile(x, probs=0.50) #F) Segundo cuartil o mediana
quantile(x, probs=0.75) #G) Tercer cuartil
median(x [which (x <= median (x))]) #H) Primer cuartil. Compare con (E)
median (x [which (x > median (x))]) #I) Tercer cuartil. Compare con (G)
Observe que \(P_5=1.5\), \(P_{20}=2.4\), \(P_{40}=3.0\), \(P_{70}=3.8\), \(Q_1 =2.575\), \(Q_2=3.3\) (coincide con la mediana), \(Q_3=4.0\), \(P_0=1.0\) (coincide con el dato menor), \(P_{100}=5.0\) (coincide con el dato mayor).
Para el análisis exploratorio, se pueden utilizar las siguientes funciones, entre las cuales, se encuentran los valores mínimos, máximos y el rango intercuartil:
IQR(x) #J). Rango intercuartílico
fivenum(x) #K) min, tres cuartiles, max
RI <- fivenum(x)[4] - fivenum(x)[2]; RI #C. Rango intercuartílico
Interpretación: A manera de ejemplo, solo dos medidas, el percentil 20 y el tercer cuartil (véase imagen de abajo):
El 20% de los estudiantes obtuvo una nota en el tercer parcial menor o igual que 2.4 y el 80%, una nota mayor que 2.4.
El 75% de los estudiantes obtuvo una nota en el tercer parcial menor o igual que 4.0 y el 25%, una nota mayor que 4.0.
Calcule el sesgo y la curtosis de las notas del tercer parcial. Interprete los resultados obtenidos.
El sesgo y la curtosis se hallan de la librería “moments”.
skewness(x) #A) Sesgo
kurtosis(x) #B) Curtosis
Los valores del sego y la curtosis son -0.1090939 y 2.3837897, respectivamente.
Interpetación:
Como el sesgo es negativo, podemos concluir que la distribución de estos datos es segada a la izquierda.
Como la curtosis es menor que 3, podemos concluir que la distribución de los datos es platicúrtica.
Son todas las medidas calculadas de toda la muestra completa (sin particionar), como se indica en la imagen de abajo.
Son las medidas calculadas en una partición de la muestra, ubicada en un segundo nivel. Se pueden calcular de dos maneras:
Caso 1: Medidas en todos los niveles categóricos.
Caso 2: Medidas dentro de un nivel categórico.
Explicaremos, a continuación, cada uno de estos casos.
Supongamos que se quiere calcular una medida (digamos, la media) para cada uno de los niveles de una variable categórica (digamos los colegios privados). Entonces aplicamos la función “tapply” para realizar la operación corespondiente.
La línea de comando básica es:
tapply(Numérica, Categórica, Medida)
Como se observa, esta función tiene tres argumentos:
La media de las calificaciones del tercer parcial para los colegios privados y para los públicos se halla de la siguiente manera:
tapply(x, datosCompleto$Colegio, mean) #A) Media de P3 tanto en públicos como privados
## Privado Publico
## 3.252577 3.250000
En la imagen de abajo se resume los resultados obtenidos.
Supongamos que se quiere calcular una medida (digamos, la media de P3) para un nivel específico de una variable categórica (digamos los colegios privados). Primero, se aplica la función “filter” de la librería “dplyr” para filtrar y luego se obtiene la medida de interés.
a) El promedio de las notas del tercer examen en los colegios privados fue:
datosCompleto%>% filter(Colegio=="Privado")->Privados #A) Grupo de los colegios privados
P3pr <- as.numeric(Privados$P3) #B) Parcial 3 dentro de colegios privados
mean(P3pr) #C) Media de P3 en los colegios privados
## [1] 3.252577
b) El promedio de las notas del tercer examen en los colegios públicos fue:
datosCompleto%>% filter(Colegio=="Publico")->Privados #A) Grupo de los colegios publicos
P3pr <- as.numeric(Privados$P3) #B) Parcial 3 dentro de colegios públicos
mean(P3pr) #C) Media de P3 en los colegios públicos
## [1] 3.25
Compare con los resultados con los del ejemplo 5.
Consideremos solo un grupo de interés (digamos, colegios privados). Supongamos que, dentro de ese grupo, se quiere calcular una medida (digamos, la media de P3) para cada uno de los niveles de otra variable categórica (digamos, el Sexo). Entonces, primero, se aplica la función “filter” de la librería “dplyr” para filtrar y, después, la función “tapply” para realizar la operación corespondiente.
a) Supongamos que nuestro grupo de interés son los colegios privados. La media de las notas del tercer paracial obtenidas por los hombres y las mujeres se obtienen así:
datosCompleto%>% filter(Colegio=="Privado")->Privados #A) Grupo los colegios privados
P3pr <- as.numeric(Privados$P3) #B) Parcial 3 dentro de colegios privados
tapply(P3pr, Privados$Sexo, mean) #C) En Privados: Media de P3 en masculino y femenino
## Femenino Masculino
## 3.204717 3.310227
b) Supongamos que nuestro grupo de interés son los colegios públicos. La media de las notas del tercer paracial obtenidas por los hombres y las mujeres se obtienen así:
datosCompleto%>% filter(Colegio=="Publico")->Privados #A) Grupo los colegios privados
P3pr <- as.numeric(Privados$P3) #B) Parcial 3 dentro de colegios privados
tapply(P3pr, Privados$Sexo, mean) #C) En Privados: Media de P3 en masculino y femenino
## Femenino Masculino
## 3.29619 3.20198
c) En la imagen de abajo se resumen los resultados obtenidos en los incisos a y b.
Otra forma de hallar la nota promedio de P3 (considerando la situación anterior) es como se muestra a continuación (se le han agregado otras medidas a manera de ejemplo):
datosCompleto %>% filter(Colegio=="Privado") %>% group_by(Sexo) %>%
summarise(n = length(as.numeric(P3)),
Promedio = mean(as.numeric(P3)),
Desviacion = sd(as.numeric(P3)),
Minimo = min(as.numeric(P3)),
Maximo = max(as.numeric(P3)))
## # A tibble: 2 x 6
## Sexo n Promedio Desviacion Minimo Maximo
## <chr> <int> <dbl> <dbl> <dbl> <dbl>
## 1 Femenino 106 3.20 0.964 1 5
## 2 Masculino 88 3.31 0.907 1 5
Crear un nuevo documento R Markdown, realizando las actividades que se indican abajo. Interprete los resultados hallados.
Considere la variable Edad. Halle: el mínimo, el máximo, la media, la mediana, la moda, la varianza, la desviación estándar, el rango, los cuartiles, algunos percentiles (por ejemplo, 33, 76, 80) en los siguientes grupos (donde sea necesario, puede utilizar la función filter):
Considere la variable Segundo parcial. Repita el ejercicio anterior.
Considere la variable otra variable numérica y repita el ejercicio anterior.
Considere la variable Edad. Halle: el mínimo, el máximo, la media, mediana, moda, varianza, desviación estándar, el rango, los cuartiles, algunos percentiles (por ejemplo, 33, 76, 80) en los siguientes grupos (donde sea necesario, puede utilizar la función tapply):
Considere la variable que representa el examen final (“Final”). Repita el ejercicio anterior.
Considere la variable otra variable numérica y repita el ejercicio anterior.
Calcule medidas en dos etapas.
Calcule medidas en tres etapas.
LLinás, H., Rojas, C. (2005); Estadística descriptiva y distribuciones de probabilidad. Barranquilla: Editorial Universidad del Norte.
Consultar el documento RPubs :: Enlace y materiales de ayuda.
If you found any ERRORS or have SUGGESTIONS, please report them to my email. Thanks.