Pregunta 1.

Importe la base de datos a R y determine el número de UE y de variables en la base de datos. ¿Cuántas UE tienen al menos un datos faltante y cuántas tienen la información completa?.

twins <- read.csv("twins.csv")
Datos<-as.data.frame(twins)
str(Datos)
## 'data.frame':    183 obs. of  16 variables:
##  $ DLHRWAGE: chr  "0.2593466" "." "0.721318058" "0.011581964" ...
##  $ DEDUC1  : int  0 -1 7 0 0 2 -2 -1 -2 0 ...
##  $ AGE     : num  33.3 54.1 43.6 31 34.6 ...
##  $ AGESQ   : num  1106 2922 1898 959 1200 ...
##  $ HRWAGEH : chr  "11.25" "." "18" "16.5" ...
##  $ WHITEH  : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ MALEH   : int  0 0 0 1 1 0 0 0 1 0 ...
##  $ EDUCH   : int  16 9 19 12 14 16 13 13 12 12 ...
##  $ HRWAGEL : chr  "8.68" "7.85" "8.75" "16.31" ...
##  $ WHITEL  : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ MALEL   : int  0 0 0 1 1 0 0 0 1 0 ...
##  $ EDUCL   : int  16 10 12 12 14 14 15 14 14 12 ...
##  $ DEDUC2  : int  0 1 4 0 1 -2 -2 -2 1 0 ...
##  $ DTEN    : chr  "1.333" "8" "3" "-2" ...
##  $ DMARRIED: int  0 1 -1 0 0 1 1 0 -1 0 ...
##  $ DUNCOV  : int  0 0 0 1 -1 0 0 0 0 0 ...

La base de datos tiene 183 UE con 16 variables en las cuales se encuentran 4 variables con datos faltantes:

regLost<- sapply(Datos, function(col) any(col == "."))
names(regLost[regLost])
## [1] "DLHRWAGE" "HRWAGEH"  "HRWAGEL"  "DTEN"

Pregunta 2. \(w_2=7\)

Remueva de la base de datos los registros con al menos un dato faltante. ¿cuál es la dimensión de la tabla resultante?.

registros_perdidos_filas <- apply(Datos, 1, function(row) any(row == "."))
filas_con_perdidos <- which(registros_perdidos_filas)
DatosNew <- Datos[-filas_con_perdidos, ]
DatosNew<-as.data.frame(DatosNew)
DatosNew$HRWAGEH<-as.numeric(DatosNew$HRWAGEH)
DatosNew$HRWAGEL<-as.numeric(DatosNew$HRWAGEL)
dim(DatosNew)
## [1] 147  16

La dimensión de la tabla resultante es de 147 UE con 16 Variables:

Pregunta 3. \(w_3=7\)

Clasifique las variables EDUCL, EDUCH, HRWAGEL, HRWAGEH según su escala y clase, teniendo en cuenta que:

Pregunta 4. \(w_4=7\)

Describa de manera gráfica el salario por hora autoreportado por el gemelo 1 y por el gemelo 2 univariadamente a partir de un diagrama de caja. ¿Qué características observa los datos en términos de centro, localización y dispersión?.

boxplot1 <- ggplot(DatosNew, aes(x = "", y = HRWAGEL)) +
  geom_boxplot() +
  labs(title = " ",x=" ")  +  
  stat_summary(fun=mean, geom="point", shape=18, size=3, color="red") +theme_minimal()


boxplot2 <- ggplot(DatosNew, aes(x = "", y = HRWAGEH)) +
  geom_boxplot() +
  labs(title = " ",x=" ")  + 
  stat_summary(fun=mean, geom="point", shape=18, size=3, color="red") +theme_minimal()
plot_grid(boxplot1, boxplot2, ncol = 2) 

Gráficamente y según los estadísticos obtenidos, podemos evidenciar que ambas variables tienen distribuciones que podrían ser aproximadamente simétricas, con HRWAGEH mostrando una variabilidad ligeramente menor en comparación con HRWAGEL. Los valores máximos y las desviaciones estándar sugieren la presencia de valores atípicos o extremadamente altos en ambas distribuciones

Resumen de Variables HRWAGEL y HRWAGEH
Estadística HRWAGEL HRWAGEH
Min 1.67 1.79
1st Qu. 7.00 7.00
Median 10.67 11.00
Mean 13.11 13.65
3rd Qu. 15.47 16.00
Max 100.00 61.54
SD 12.26 10.18
Var 150.28 103.54

Pregunta 5. \(w_5=7\)

Determine las observaciones atípicas univariadas para la variables HRWAGEL y HRWAGEH usando el diagrama de caja de Tukey. ¿cuál variable presenta mayor número de atipicidades?

outliers_HRWAGEL <- boxplot.stats(DatosNew$HRWAGEL)$out
outliers_HRWAGEH <- boxplot.stats(DatosNew$HRWAGEH)$out

# Contar el número de observaciones atípicas
num_outliers_HRWAGEL <- length(outliers_HRWAGEL)
num_outliers_HRWAGEH <- length(outliers_HRWAGEH)

num_outliers_HRWAGEL
## [1] 6
num_outliers_HRWAGEH
## [1] 11

La variable HRWAGEH presenta mayor cantidad de números atipicos, es decir, el salario por hora (en dólares) del gemelo 2.

Pregunta 6. \(w_6=7\)

Describa de manera gráfica el salario por hora autoreportado por el gemelo 1 y por el gemelo 2 bivariadamente a partir de un diagrama de dispersión entre las variables. Añada la estimación kernel de la densidad marginal de cada variable.

La línea diagonal de puntos se inclina hacia arriba de izquierda a derecha, esto indica una relación positiva entre las variables, además vemos una distribución relativamente similar con excepción de algunos puntos atipicos para el salario por hora (en dólares) del gemelo 2, tal como se represento en el diagrama de caja anterior.

Pregunta 7. \(w_7=8\)

Categorice las variables EDUCL y EDUCH como sigue

Dada esta nueva categorización de las variables ¿cuántos pares de gemelos tienen niveles educativos diferentes? ¿cuántos tienen niveles educativos iguales?.

DatosNew <- DatosNew %>%
  mutate(Categoria_EDUCL = cut(EDUCL, breaks = c(0, 12, 16, 24),
                                labels = c("Primaria y secundaria", "Pregrado", "Posgrado"),
                                include.lowest = TRUE),
         Categoria_EDUCH = cut(EDUCH, breaks = c(0, 12, 16, 24),
                                labels = c("Primaria y secundaria", "Pregrado", "Posgrado"),
                                include.lowest = TRUE),
         ValidEduc = Categoria_EDUCL == Categoria_EDUCH)
table(DatosNew$ValidEduc)
## 
## FALSE  TRUE 
##    47   100

Se evidencia que 100 pares de gemelos presentan igual nivel educativo mientras que 47 pares de gemelos presentan diferencias.

Pregunta 8. \(w_8=10\)

Para el siguiente punto considere la discretización del punto anterior y seleccione aquellos gemelos con el mismo nivel de estudio. Considerando únicamente las parejas de gemelos con educación superior (pregrado y posgrado), realice un diagrama de dispersión para el salario por hora autoreportado por el gemelo 1 y por el gemelo 2. Diferencie el color de los puntos por el nivel de escolaridad alcanzado. ¿Observa diferencias entre las distribuciones bivariadas de los dos grupos? ¿Qué puede concluir acerca de la relación entre el nivel educativo y los ingresos?.

DatosEscolar <- DatosNew %>%
  filter(ValidEduc == TRUE, Categoria_EDUCL %in% c("Pregrado", "Posgrado"))
library(ggplot2)

ggplot(data = DatosEscolar, aes(x = HRWAGEL, y = HRWAGEH, color = Categoria_EDUCL)) +
  geom_point(alpha = 0.7) +
  labs(title = "Diagrama de Dispersión de HRWAGEL y HRWAGEH",
       x = "HRWAGEL", y = "HRWAGEH") +
  scale_color_manual(values = c("Pregrado" = "blue", "Posgrado" = "red")) +
  theme_minimal()

No se oberva diferencia entre las distribuciones bivariadas de los dos grupos, la relación entre el nivel de educación y los ingresos es positiva.

Pregunta 9. \(w_9=10\)

Para los siguientes puntos considere la base de datos ORI.csv que contiene información de variables meteorológicas medidas en diferentes puntos de la región Orinoquía de Colombia. Cada observación en la base, corresponde a la medición en algún púnto del día en algún municipio de la región para las variables:

Realice un pair plot de las variables nombradas anteriormente; ¿Qué puede describir de estas variables?, ¿Existe alguna distribución familiar asociada de forma univariada para algunas de estas variables?, ¿Qué correlaciones lineales existen entre estas variables? (investigue porque podría darse dicha correlación entre las variables que usted considere tienen esta estructura)

ORI <- read.csv2("ORI.csv")
DatosORI<-as.data.frame(ORI)
# Convertir las variables a numérico
DatosORI <- DatosORI %>%
  mutate(
    Temperatura = as.numeric(Temperatura),
    Velocidad_del_Viento = as.numeric(Velocidad_del_Viento),
    Direccion_del_Viento = as.numeric(Direccion_del_Viento),
    Presion = as.numeric(Presion),
    Punto_de_Rocio = as.numeric(Punto_de_Rocio),
    Cobertura_total_nubosa = as.numeric(Cobertura_total_nubosa),
    Humedad = as.numeric(Humedad)
  )

# Crear el pair plot utilizando ggpairs
ggpairs(DatosORI,
        columns = c("Temperatura", "Velocidad_del_Viento", "Direccion_del_Viento", 
                    "Presion", "Punto_de_Rocio", "Cobertura_total_nubosa", "Humedad"))

Se evidencia que mientras aumenta la temperatura, se reduce la presión y la humedad principalmente; por otro lado aumenta en menor medida la velocidad del viento, no se evidencia una alta correlación entre temperatura y velocidad.

Pregunta 10. \(w_{10}=10\)

De forma multivariada vamos a suponer que 3 de las variables cuantitativas mencionadas en el punto anterior siguen una distribución normal multivariada (este hecho es solamente un supuesto para efectos del desarrollo del taller); calcule el vector de medias y la matriz de varianzas y covarianzas. Apoyado también en los resultados del punto anterior, ¿qué se puede describir de esta distribución multivariada después de haber calculado los estadísticos anteriores?

se seleccionan las siguientes variables: Temperatura, Presión y Humedad.

# Seleccionar las variables de interés
variables_interes <- c("Temperatura", "Presion", "Humedad")

# Calcular el vector de medias
vector_medias <- DatosORI %>%
  select(all_of(variables_interes)) %>%
  colMeans(na.rm = TRUE)

# Calcular la matriz de varianzas y covarianzas
matriz_covarianzas <- cov(DatosORI %>%
                             select(all_of(variables_interes)),
                           use = "pairwise.complete.obs")

vector_medias
## Temperatura     Presion     Humedad 
##    24.91688  1012.29864    81.99888
matriz_covarianzas
##             Temperatura   Presion    Humedad
## Temperatura   14.160664 -4.436258 -28.111586
## Presion       -4.436258  3.758096   4.101024
## Humedad      -28.111586  4.101024 135.657843

La varianza de la temperatura es aproximadamente 14.16, la varianza de la presión es aproximadamente 3.76 y la varianza de la humedad es aproximadamente 135.66. La covarianza entre temperatura y presión es aproximadamente -4.44, lo que indica una relación negativa entre estas dos variables. La covarianza entre temperatura y humedad es aproximadamente -28.11, lo que también indica una relación negativa. Es decir, a medida que la temperatura aumenta, la humedad tiende a disminuir, mientras que la relación entre temperatura y presión es más débil y negativa.

Pregunta 11. \(w_{11}=10\)

En el punto anterior se pidió calcular el vector de medias y la matriz de varianzas y covarianzas. ¿Son estos parámetros o estadísticos de la distribución generadora de los datos?, justifique su respuesta a partir de la definición de la población de estudio.

El vector de medias y la matriz de varianzas y covarianzas son estadísticos descriptivos de la muestra de datos en “ORI”. Estos estadísticos se utilizan para resumir y comprender la distribución de las variables en la muestra y las relaciones entre ellas. Sin embargo, no son parámetros de la distribución generadora de los datos en la población de estudio.

La diferencia clave radica en que los parámetros son características numéricas que describen la distribución teórica de una población completa, mientras que los estadísticos son valores calculados a partir de una muestra finita de esa población.

La definición de la población de estudio se refiere a todos los elementos que están siendo investigados, mientras que la muestra es una selección representativa de esos elementos. Dado que SE trabaja con una muestra y no se tiene acceso a toda la población, los valores calculados no son parámetros poblacionales, sino estadísticos muestrales que proporcionan información sobre las propiedades de la muestra en sí.

Pregunta 12 \(w_{12}=10\)

La variable Temperatura, se excluye dentro de la distribución normal multivariante analizada en puntos anteriores, esto ya que la distribución de densidad estimada, parece tener dos modas.

Por lo tanto, para determinar si esta distribución se está viendo afectada por algún factor externo, se analizará la temperatura, a través de las diferentes horas del día desde la base de datos original.

Genere gráficos de densidad de la temperatura para las diferentes horas del día, ¿Qué puede analizar de estas distribuciones de la temperatura?, ¿Logra evidenciar porque la temperatura total parece ser bimodal?

# Convertir la columna Hora a formato de tiempo
DatosORI$Hora <- as.POSIXct(DatosORI$Hora, format = "%H:%M")

# Crear el gráfico de densidad
ggplot(DatosORI, aes(x = Temperatura, fill = Hora)) +
  geom_density(alpha = 0.5) +
  labs(title = "Gráfico de Densidad de Temperatura por Hora",
       x = "Temperatura", y = "Densidad") +
  scale_fill_brewer(palette = "Set1") +
  theme_minimal()

Efectivamente vemos un leve signo a que la temperatura sea bimodal, la temperatura con mayor frecuencia por hora es entre los 23° y 25° incialmente pero en menor medida para 30°. Sin embargo, no existe total significancia para afimar que existan 2 modas.