hllinas

1 Introducción

Primero, debemos instalar y descargar las librerías que vamos a utilizar.

library(dplyr)

2 Data frame

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).

3 Nuestro data frame

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')

4 Ejemplo 1: Enunciado

El objetivo de este documento es realizar los ejercicios que se indican a continuación. Para su realización puede apoyarse en los documentos 2.1 y 3.1 de https://rpubs.com/hllinas/toc.

a) Considere solamente las observaciones que van desde la 2 hasta la 390.  Defina el siguiente data frame: 
   - "datos2a390": con estas observaciones. Verifique su tamaño.
b) Defina los siguientes dos objetos y diga cuáles son sus respectivos niveles: 
   - "Fuma": estudiantes que fuman (dentro de "datos2a390"). Conviértalo en factor.
   - "Estatura": Estatura de los estudiantes (dentro de "datos2a390"). Conviértalo en factor.
c) Construya una tabla de frecuencias para la variable Estatura y el diagrama de barras correspondiente.
d) ¿Cuántos estudiantes son de estatura baja? ¿Proporción?
e) ¿Cuántos estudiantes son de estatura media? ¿Proporción? 
f) ¿Cuántos estudiantes son de estatura media o baja? ¿Proporción?
g) ¿Cuántos estudiantes son estatura media y baja? ¿Proporción?
h) Construya una tabla de contingencia (cruzada) para Estatura y Fuma y el diagrama de barras correspondiente.
i) ¿Cuántos estudiantes son de estatura alta y fuman? ¿Proporción?
j) ¿Cuántos estudiantes son estatura alta o fuman? ¿Proporción? 
k) En el grupo de las personas de estatura media, ¿cuántos estudiantes no fuman? ¿Proporción? 
l) En el grupo de estudiantes que no fuman, ¿cuántos estudiantes son de estatura media? ¿Proporción? 
m) Defina el siguiente data frame: 
    - "Fumadores": obtenido al filtrar "datos2a390" y representa a los estudiantes fumadores. 
       Verifique su tamaño. 
n) Defina el siguiente objeto y diga cuáles son sus niveles: 
   - "EstaturaF": estatura de los estudiantes (dentro de "Fumadores"). Conviértalo en factor.   
o) Dentro de "Fumadores": Construya una tabla de frecuencias solo para EstaturaF. Compare con la tabla  construida en (h). 
p) Dentro de "Fumadores": ¿Cuántos estudiantes son de estatura baja? ¿Proporción? Compare con (d). 
q) Dentro de "Fumadores": ¿Cuántos estudiantes son de estatura media? ¿Proporción? Compare con (e).
r) Dentro de "Fumadores": ¿Cuántos estudiantes son de estatura media o baja? ¿Proporción? Compare con (f).
s) Dentro de "Fumadores": ¿Cuántos estudiantes son de estatura media y baja? ¿Proporción? Compare con (g).

5 Ejemplo 1: Solución

5.0.1 Solución parte (a)

Filtramos nuestra base de datos:

datos2a390 <- datosCompleto[2:390,]    #A) La nueva base de datos
d <- dim(datos2a390)                   #B) Número observaciones y número de variables
n <- nrow(datos2a390); n               #C) Número observaciones (tamaño muestral)
## [1] 389

5.0.2 Solución parte (b)

Definimos las variables categóricas y revisamos sus niveles:

Fuma <- as.factor(datos2a390$Fuma)         #D) La variable Fuma en "datos2a390"
levels(Fuma)                               #E) Sus niveles. Sale: "No" "Si"
Estatura <- as.factor(datos2a390$Estatura) #F) La variable Estatura en "datos2a390"
levels(Estatura)                           #G) Sus niveles. Sale: "Alta"  "Baja"  "Media"

5.0.3 Solución parte (c)

La tabla de frecuencias para Estatura es:

xtabs(~Estatura, data=datos2a390)       #H) Tabla para Estatura
## Estatura
##  Alta  Baja Media 
##    62   116   211

El diagrama de barras es:

Cuentas1 <- table(Estatura)             #I) Tabla de frecuencias no agrupadas para Estatura
barplot(Cuentas1,                       #J) Se aplica barplot a esa tabla
        main="Diagrama de barras",      #K) Título principal     
        xlab="Estatura",                #L) Tíulo del eje X
        ylab="Frecuencia",              #M) Título del eje Y
        legend = rownames(Cuentas1),    #N) Mostrar las leyendas
        ylim = c(0, 350),               #O) Ajustar límites en eje Y
        col=c("brown","blue", "green")  #P) Colorear las barras
        )  

5.0.4 Solución parte (d)

Observamos que hay \(f= 116\) con estatura baja, lo que corresponde al \(29.82\%\).

f <- 116   #A) Frecuencia absoluta
(f/n)*100  #B) Frecuencia relativa (en porcentajes)
## [1] 29.82005

5.0.5 Solución parte (e)

Observamos que hay \(f= 211\) de estatura media, lo que corresponde al \(54.24\%\).

f <- 211   #C) Frecuencia absoluta
(f/n)*100  #D) Frecuencia relativa (en porcentajes)
## [1] 54.24165

5.0.6 Solución parte (f)

El número de estudiantes que son de estatura media o baja es: \(f= 211 + 116 = 327\), lo que equivale a un \(84.06\%\).

f <- 211+116   #E) Frecuencia absoluta
(f/n)*100      #F) Frecuencia relativa (en porcentajes)
## [1] 84.0617

5.0.7 Solución parte (g)

El número de estudiantes que son de estatura media y baja es \(f=0\) (ya que no hay estudiantes que tengan estatura baja y media al mismo tiempo).

f <- 0    #G) Frecuencia absoluta

5.0.8 Solución parte (h)

Una tabla de contingencia (cruzada) para Estatura y Fuma es:

xtabs(~Estatura + Fuma, data=datos2a390)   #H) Tabla para Estatura vs Fuma
##         Fuma
## Estatura  No  Si
##    Alta   35  27
##    Baja   59  57
##    Media 127  84

El diagrama de barras solicitado es:

Cuentas2 <- table(Estatura, Fuma)       #I) Tabla cruzada (Distribución de Estatura dentro de cada Fuma)
barplot(Cuentas2,                       #J) Se aplica barplot a esa tabla
        main="Diagrama de barras",      #K) Título principal     
        xlab="Fuma",                    #L) Tíulo del eje X
        ylab="Frecuencia",              #M) Título del eje Y
        legend = rownames(Cuentas1),    #N) Mostrar las leyendas
        ylim = c(0, 200),               #O) Ajustar límites en eje Y
        col=c("brown","blue", "green"), #P) Colorear las barras
        beside=TRUE                     #Q) Para agrupar las barras
        )                               #R) No olvidar cerrar el paréntes

5.0.9 Solución parte (i)

Se observa que hay \(f=27\) estudiantes que son de estatura alta y fuman. Esto corresponde a un \(6.94\%\).

f <- 27      #A) Frecuencia absoluta
(f/n)*100    #B) Frecuencia relativa (en porcentajes)
## [1] 6.940874

5.0.10 Solución parte (j)

El número \(f\) de estudiantes que son de estatura alta o fuman se calcula, así:

\[\mbox{f $\; =\;$ #(alta) $\;+ \;$ #(fuma) $\;-\;$ #(alta y fuma)}\]

Se calcula que hay \(f=203\) estudiantes que son de estatura alta o fuman. Esto corresponde a un \(52.19\%\).

EstA <- 35+27              #C) Número de estudiantes con estatura alta
SiFuma <- 27+57+84         #D) Número de estudiantes que fuman
Int <- 27                  #E) Intersección (número de estudiantes altos y que fuman)
f <- EstA + SiFuma - Int   #F) Número de estudiantes altos o que fuman
(f/n)*100                  #G) Porcentaje correspondiente
## [1] 52.18509

5.0.11 Solución parte (k)

En la tabla vemos que hay \(127+84 = 211\) estudiantes que son de estatura media, de los cuales \(127\) (\(60.19\%\)), no fuman.

EstM<- 127 + 84   #H) Total de estudiantes con estatura media
f <- 127          #I) Número de estudiantes que fuma (dentro de estatura media)
(f/EstM)*100      #J) Porcentaje correspondiente
## [1] 60.18957

5.0.12 Solución parte (l)

En la tabla vemos que hay \(35+59+127=221\) estudiantes que no fuman, de los cuales \(127\) (\(57.47\%\)) son de estatura media.

NoFuma<- 35+59+127  #K) Total de estudiantes que no fuman
f <- 127            #L) Número de estudiantes con estatura media (dentro de los que no fuman)
(127/NoFuma)*100    #M) Porcentaje correspondiente
## [1] 57.46606

5.0.13 Solución parte (m)

Filtramos nuestro data frame. Se observa que, ahora, se tienen \(m=168\) observacioners y 46 variables:

Fumadores <- datos2a390  %>% filter(Fuma=="Si")    #A) La nueva base de datos
d <- dim(Fumadores)                                #B) Número observacions y número de variables
m <- nrow(Fumadores); m                            #C) Número observaciones (tamaño muestral)
## [1] 168

5.0.14 Solución parte (n)

Definimos las variables categóricas y revisamos sus niveles:

EstaturaF <- as.factor(Fumadores$Estatura)   #D) La variable Fuma en "datos2a390"
levels(EstaturaF)                            #E) Sus niveles. Sale: "Alta"  "Baja"  "Media"

5.0.15 Solución parte (o)

Una tabla de frecuencias para EstaturaF es:

xtabs(~EstaturaF, data=Fumadores)   #F) Tabla para Estatura 
## EstaturaF
##  Alta  Baja Media 
##    27    57    84

5.0.16 Solución parte (p)

Observamos que hay \(f=57\) con estatura baja, lo que corresponde al \(33.93\%\).

f <- 57     #G) Frecuencia absoluta
(f/m)*100   #H) Frecuencia relativa (en porcentajes)
## [1] 33.92857

5.0.17 Solución parte (q)

Observamos que hay \(f=84\) de estatura media, lo que corresponde al \(50\%\).

f <- 27      #I) Frecuencia absoluta
(f/m)*100    #J) Frecuencia relativa (en porcentajes)
## [1] 16.07143

5.0.18 Solución parte (r)

El número de estudiantes que son de estatura media o baja es \(f=57+84=141\), lo que equivale a un \(83.93\%\).

f <- 57+84    #K) Frecuencia absoluta
(f/m)*100     #L) Frecuencia relativa (en porcentajes)
## [1] 83.92857

5.0.19 Solución parte (s)

El número de estudiantes que son de estatura media y baja es \(f=0\) (ya que no hay estudiantes que tengan estatura baja y media al mismo tiempo).

6 Ejercicios

Crear un nuevo documento R Markdown, realizando las siguientes actividades:

  1. Repita el ejemplo 1 considerando solo las observaciones que van desde la 1 hasta la 389.

  2. Repita el ejemplo 1 considerando solo las observaciones que van desde la 3 hasta la 389.

  3. Realizar los siguientes ejercicios. Interprete todas sus respuestas.

    1. Considere solamente las observaciones que van desde la 4 hasta la 389. Defina el siguiente data frame:
      • “datos4a389”: con estas observaciones. Verifique su tamaño.
    2. Defina los siguientes dos objetos y diga cuáles son sus respectivos niveles:
      • “Fuma”: estudiantes que fuman (dentro de “datos4a389”). Conviértalo en factor.
      • “Financiacion”: Medio de financiación de los estudiantes (dentro de “datos4a389”). Conviértalo en factor.
    3. Construya las tablas de frecuencias y los diagramas de barras correspondientes para cada una de las dos variables definidas en (b).
    4. ¿Cuántos estudiantes estudian con beca? ¿Proporción?
    5. ¿Cuántos estudiantes no financian sus estudios a crédito? ¿Proporción?
    6. ¿Cuántos estudiantes financian sus estudios a crédito o estudian con beca? ¿Proporción?
    7. ¿Cuántos estudiantes financian sus estudios a crédito y estudian con beca? ¿Proporción?
    8. Construya dos tablas de contingencia (cruzada) y los diagramas de barras correspondientes. Compárelos.
      • Una para “Financiacion versus Fuma”.
      • Otra para “Fuma versus Financiacion”.
    9. ¿Cuántos estudiantes son becados y fuman? ¿Proporción?
    10. ¿Cuántos estudiantes no son becados o fuman? ¿Proporción?
    11. En el grupo de las personas becadas, ¿cuántos estudiantes no fuman? ¿Proporción?
    12. En el grupo de estudiantes que no fuman, ¿cuántos estudiantes son becados? ¿Proporción?
    13. Defina el siguiente data frame:
      • “Fumadores”: obtenido al filtrar “datos4a389” y representa a los estudiantes fumadores. Verifique su
        tamaño.
    14. Defina el siguiente objeto y diga cuáles son sus niveles:
      • “FinanciaF”: Medio de financiación de los estudiantes (dentro de “Fumadores”). Conviértalo en factor.
    15. Construya una tabla de frecuencias solo para FinanciaF. Compare con la tabla construida en (h).
    16. ¿Cuántos estudiantes no son becados? ¿Proporción?
    17. ¿Cuántos estudiantes financian sus estudios a crédito? ¿Proporción?
    18. ¿Cuántos estudiantes financian sus estudios a crédito o no estudian con beca? ¿Proporción?
    19. ¿Cuántos estudiantes no financian sus estudios a crédito y estudian con beca? ¿Proporción?
  4. Repita el ejercicio 3 considerando solo las observaciones que van desde la 5 hasta la 389.

  5. Repita el ejercicio 3 considerando solo las observaciones que van desde la 6 hasta la 389.

Bibliografía

  1. LLinás, H., Rojas, C. (2005); Estadística descriptiva y distribuciones de probabilidad. Barranquilla: Editorial Universidad del Norte.

  2. Consultar el documento RPubs :: Enlace y materiales de ayuda.

 

 
If you found any ERRORS or have SUGGESTIONS, please report them to my email. Thanks.