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"
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:
Clasifique las variables EDUCL, EDUCH, HRWAGEL, HRWAGEH según su escala y clase, teniendo en cuenta que:
EDUCL y EDUCH: Variables cuantitativas discretas en escala de razón. Puesto toma valores finitos donde además la existencia la presencia del cero como registro indicaría la ausencia de la medición.
HRWAGEL y HRWAGEH: Variables cuantitativas continuas en escala de razón. Puesto toma valores en un intervalo donde además la existencia la presencia del cero como registro indicaría la ausencia de la medición.
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
| 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 |
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.
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.
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.
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.
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.
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.
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í.
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.