Introducción

En este trabajo se evidencia como desde una base de datos cargada en Excel la cual contiene información detallada de 507 individuos y 8 variables diferentes. Utilizaremos esta información para llevar a cabo una serie de análisis y pruebas estadísticas que nos permitirán obtener conclusiones significativas sobre nuestra muestra. Para obtener de manera concreta y concisa comenzaremos creando una semilla única utilizando los últimos dígitos de las cédulas de los integrantes del grupo. Con esta semilla, seleccionaremos una muestra de 50 individuos hombres y 50 individuos mujeres, teniendo en cuenta las variables mencionadas anteriormente. Esto nos permitirá tener una representación equilibrada de ambos géneros y facilitará nuestro análisis comparativo.

Se podrá observar como por medio de 4 actividades propuestas se refleja lo trabajado en las últimas temáticas observadas en el semestre; El manejo de lenguaje R se vera de manera importante reflejado de tal manera que se logra una solución adecuada de cada problema propuesto.



Actividad 1 Creación de la Semilla

# Crear una semilla para reproducibilidad
# set.seed(20261)

# Filtrar 50 hombres aleatoriamente
# hombres <- basedatos[basedatos$X25 == 1, ]
# muestra_hombres <- hombres[sample(nrow(hombres), 50), ]

# Filtrar 50 mujeres aleatoriamente
# mujeres <- basedatos[basedatos$X25 == 0, ]
# muestra_mujeres <- mujeres[sample(nrow(mujeres), 50), ]

# Combinar los resultados en una muestra final
# muestra_final <- rbind(muestra_hombres, muestra_mujeres)

# Mostrar la muestra final
# print(muestra_final)


Actividad 2 Intervalos de Confianza

Punto A.Construya intervalos de confianza del 90% para el promedio de las 3 primeras variables. Escriba la interpretación en el contexto de cada caso.

# Cargamos el paquete necesario para calcular intervalos de confianza
library(stats)

datos <- readxl::read_excel("C:/Users/ELtwo/Desktop/Probabilidad/Parcial 3/file6a9c21df3f11.xlsx")

# Extraemos las tres primeras variables
variables <- datos[, c("X6", "X7", "X8")]

# Calculamos los intervalos de confianza del 90% para el promedio de las tres variables
intervalos <- t(sapply(variables, function(x) t.test(x)$conf.int))

# Asignamos nombres a las filas y columnas
rownames(intervalos) <- c("X6", "X7", "X8")
colnames(intervalos) <- c("Límite inferior", "Límite superior")

# Imprimimos los intervalos de confianza
intervalos
##    Límite inferior Límite superior
## X6        13.17885        13.68915
## X7        10.34987        10.69813
## X8        18.54451        19.05749
# Creaamos un subconjunto de datos con las tres primeras variables
subconjunto <- datos[, c("X6", "X7", "X8")]

# Calculamos los intervalos de confianza para el promedio de las tres variables
intervalo_confianza <- t.test(subconjunto, conf.level = 0.9)$conf.int

# Imprimimos los intervalos de confianza
print(intervalo_confianza)
## [1] 13.90757 14.59843
## attr(,"conf.level")
## [1] 0.9

Al realizar los intervalos de confianza del promedio de las variables, obtenemos un límite inferior y superior, los cuales nos indican que con un nivel de confianza del 90% se espera que el valor verdadero del promedio de esas variables este dentro de ese intervalo. Lo cual también se puede interpretar de la siguiente manera: En promedio el diámetro del codo está entre [13.17885, 13.68915] con un nivel de confianza del 90%; y así para las demás variables.


Punto B.Construya un intervalo de confianza del 99% para la proporción de las mujeres que miden menos de 165 cm.

# Creamos un subconjunto de datos con las variables de interés
subconjunto <- datos[, c("X24", "X25")]

# Filtramos los datos para obtener solo las mujeres
mujeres <- subset(subconjunto, X25 == 0)

# Calculamos la proporción de mujeres que miden menos de 165 cm
proporcion <- sum(mujeres$X24 < 165) / nrow(mujeres)

# Calculamos el intervalo de confianza para la proporción
intervalo_confianza <- prop.test(sum(mujeres$X24 < 165), nrow(mujeres), conf.level = 0.99)$conf.int

# Imprimimos la proporción y el intervalo de confianza
print(proporcion)
## [1] 0.52
print(intervalo_confianza)
## [1] 0.3377213 0.6973507
## attr(,"conf.level")
## [1] 0.99

Con un nivel de confianza del 99% se espera que la proporcion real de mujeres que miden menos de 1.65cm esté entre el [0.33, 0.697].


Punto C.Construya un intervalo del 95% para la diferencia de promedios de la circunferencia abdominal entre hombres y mujeres.

# Creamos un subconjunto de datos con las variables de interés
subconjunto <- datos[, c("X13", "X25")]

# Filtramos los datos para obtener solo las mediciones de hombres y mujeres
hombres <- subset(subconjunto, X25 == 1)
mujeres <- subset(subconjunto, X25 == 0)

# Calculamos la diferencia de promedios de circunferencia abdominal entre hombres y mujeres
diferencia_promedios <- mean(hombres$X13) - mean(mujeres$X13)

# Calculamos el intervalo de confianza para la diferencia de promedios
intervalo_confianza <- t.test(hombres$X13, mujeres$X13, conf.level = 0.95)$conf.int

# Imprimimos la diferencia de promedios y el intervalo de confianza
print(diferencia_promedios)
## [1] 5.544
print(intervalo_confianza)
## [1] 2.015208 9.072792
## attr(,"conf.level")
## [1] 0.95

Con un nivel de confianza del 95% podemos afirmar que la diferencia de promedios de la circunferencia abdominal entre hombres y mujeres esta en el siguiente intervalo [2.015, 9.072]


Punto D.Construya un intervalo del 95% para la diferencia de promedios de las rodillas entre hombres y mujeres.

# Creamos un subconjunto de datos con las variables de interés
subconjunto <- datos[, c("X8", "X25")]

# Filtramos los datos para obtener solo las mediciones de hombres y mujeres
hombres <- subset(subconjunto, X25 == 1)
mujeres <- subset(subconjunto, X25 == 0)

# Calculamos la diferencia de promedios de diámetro de rodilla entre hombres y mujeres
diferencia_promedios <- mean(hombres$X8) - mean(mujeres$X8)

# Calculamos el intervalo de confianza para la diferencia de promedios
intervalo_confianza <- t.test(hombres$X8, mujeres$X8, conf.level = 0.95)$conf.int

# Imprimimos la diferencia de promedios y el intervalo de confianza
print(diferencia_promedios)
## [1] 1.254
print(intervalo_confianza)
## [1] 0.8037389 1.7042611
## attr(,"conf.level")
## [1] 0.95

Con un nivel de confianza del 95% es correcto afirmar que lo más probable es que la difrencia de promedios de las rodillas esté entre [0.803, 1.704]


Punto E.Construya intervalos de confianza del 90% para la varianza poblacional de la circunferencia del muslo para las mujeres.

datos_mujeres <- subset(datos, X25 == 0)
varianza <- var(datos_mujeres$X15)
n <- nrow(datos_mujeres)  # Número de observaciones de mujeres
alfa <- 0.1  # Nivel de confianza (10% de nivel de significancia)
limite_inferior <- (n - 1) * varianza / qchisq(1 - alfa/2, df = n - 1)
limite_superior <- (n - 1) * varianza / qchisq(alfa/2, df = n - 1)




limite_inferior
## [1] 18.54341
limite_superior
## [1] 36.25505

Con una confianza del 90% podemos decir que la varianza de la circunferencia del muslo para mujeres estará en el intervalo [18.54341 , 36.25505]


En síntesis, los intervalos de confianza nos sirven en gran manera, ya que nos permiten proporcionar una estimación más completa y precisa de un parámetro desconocido, al tiempo que reconocen la incertidumbre asociada con los datos de muestra limitados.



Actividad 3 Pruebas de Hipótesis


Elabore una prueba de hipotesis con α=0.05 para probar si la media de la variable X6 es diferente de 13 cm.

Solucion: De manera general se podra evidenciar que en el siguiente codigo propuesto se dan unos pasos que a grandes rasgos lo que se hace e cargar los datos de la columna X6 en la variable “variable1”, crear un histograma, realizar una prueba de normalidad de Lilliefors, imprimer un mensaje según el resultado y finalmente realizar una prueba t de dos colas.

variable1 <- datos$X6 ##cargamos X6, en una cariable 
# Crear un data frame con tu variable
df <- data.frame(variable1)

# Crear el histograma utilizando ggplot2
ggplot(df, aes(x = variable1)) +
  geom_histogram(fill = "steelblue", color = "white", bins = 10) +
  labs(x = "Variable 1", y = "Frecuencia", title = "Histograma de Variable 1") +
  theme_minimal()

lillie.test(variable1)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  variable1
## D = 0.07773, p-value = 0.1445
if (lillie.test(variable1)$p.value >= 0.05) {
  cat("La variable sigue una distribución normal.\n")
} else {
  cat("La variable no sigue una distribución normal.\n")
}
## La variable sigue una distribución normal.
t.test(variable1, alternative='two.sided', conf.level=0.95, mu=13)
## 
##  One Sample t-test
## 
## data:  variable1
## t = 3.375, df = 99, p-value = 0.001055
## alternative hypothesis: true mean is not equal to 13
## 95 percent confidence interval:
##  13.17885 13.68915
## sample estimates:
## mean of x 
##    13.434

Del anterior codigo podemos ver en manera de pasos lo que se realiza :

1.La línea variable1 <- datos$X6 carga los datos de la columna “X6” de un objeto llamado “datos” en una variable llamada “variable1”.

2.A continuación, se crea un data frame llamado “df” utilizando la variable “variable1” mediante la función data.frame(). Esto se hace para facilitar el análisis y la visualización de los datos.

3.Se utiliza la librería “ggplot2” para crear un histograma de los datos en “variable1”. La función ggplot() se utiliza para inicializar el gráfico, geom_histogram() se utiliza para trazar el histograma, y labs() se utiliza para establecer etiquetas para los ejes x e y, así como un título para el gráfico. Además, theme_minimal() se utiliza para aplicar un estilo mínimo al gráfico.

4.A continuación, se realiza un test de normalidad utilizando la función lillie.test() en la variable “variable1”. El resultado se almacena y se evalúa el valor p del test. Si el valor p es mayor o igual a 0.05, se imprime en pantalla el mensaje “La variable sigue una distribución normal”. De lo contrario, se imprime “La variable no sigue una distribución normal”.

5.Finalmente, se realiza un test de hipótesis utilizando la función t.test() en la variable “variable1”. Se especifica que la alternativa es “two.sided” (dos colas), el nivel de confianza es del 95% y la hipótesis nula es que la media de “variable1” es igual a 13. El resultado del test se imprime en pantalla.

CONCLUSION: De lo anterior se puede conluir que;Los resultados indican que hay evidencia estadística significativa para afirmar que la media verdadera no es igual a 13, con un nivel de confianza del 95%. Además, la estimación de la media muestral es de aproximadamente 13.434.


Elabore una prueba de hipotesis con α=0.01 para probar si la media dela variable X15 es mayor de 55 cm.

Solucion:El siguiente código calcula y muestra un histograma de la variable “variable2”. Luego realiza un test de Lilliefors para verificar si la variable sigue una distribución normal. Dependiendo del resultado de ese test, se imprime un mensaje indicando si la variable sigue o no una distribución normal. Finalmente, se realiza un t-test para comparar la media de variable2 con un valor de referencia de 55, con una prueba unilateral de cola derecha y un nivel de confianza del 99%. El resultado del t-test se imprime en la salida.

variable2 <- datos$X15
# Crear el histograma utilizando ggplot2
ggplot(df, aes(x = variable2)) +
  geom_histogram(fill = "steelblue", color = "white", bins = 10) +
  labs(x = "Variable 2", y = "Frecuencia", title = "Histograma de Variable 2") +
  theme_minimal()

lillie.test(variable2)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  variable2
## D = 0.086794, p-value = 0.06073
if (lillie.test(variable1)$p.value >= 0.05) {
  cat("La variable sigue una distribución normal.\n")
} else {
  cat("La variable no sigue una distribución normal.\n")
}
## La variable sigue una distribución normal.
resultado <- t.test(variable2, alternative = "greater", mu = 55, conf.level = 0.99)
print(resultado)
## 
##  One Sample t-test
## 
## data:  variable2
## t = 4.2377, df = 99, p-value = 2.536e-05
## alternative hypothesis: true mean is greater than 55
## 99 percent confidence interval:
##  55.86766      Inf
## sample estimates:
## mean of x 
##    56.963

1.La línea variable2 <- datos$X15 asigna los valores de la columna “X15” del dataframe “datos” a la variable “variable2”.

2.A continuación, se utiliza la biblioteca “ggplot2” para crear un histograma de los valores en “variable2”. La función ggplot() inicializa el gráfico, geom_histogram() crea el histograma utilizando los datos de “variable2”, y las opciones fill, color, labs y theme_minimal() se utilizan para personalizar la apariencia del gráfico.

3.Después del bloque de código relacionado con el histograma, se realiza el test de normalidad utilizando la función lillie.test() en la variable “variable2”. La función lillie.test() es una prueba de normalidad basada en la prueba de Lilliefors.

4.El resultado del test de normalidad se evalúa utilizando un condicional if-else. Si el valor p del test de Lilliefors es mayor o igual a 0.05, se imprime el mensaje “La variable sigue una distribución normal.”. De lo contrario, se imprime el mensaje “La variable no sigue una distribución normal.”.

5.Por último, se realiza una prueba de hipótesis utilizando la función t.test(). Esta prueba compara la media de “variable2” con un valor de referencia (“mu”) de 55, asumiendo una alternativa unidireccional (“greater”) y un nivel de confianza del 99%. El resultado de la prueba se asigna a la variable “resultado” y se imprime en la consola utilizando la función print()

CONCLUSION: De lo anterior se puede conluir que,hay evidencia significativa para afirmar que la verdadera media es mayor que 55, con un alto grado de confianza.


Elabore una prueba de hipotesis con α= 0.10 para probar si los promedios de la variable X7 en hombres y mujeres son iguales.

Solucion: El código realiza el cálculo del promedio de X7 para hombres y mujeres, y luego realiza pruebas de hipótesis para comparar las medias y las varianzas de los dos grupos. Finalmente, imprime los resultados de las pruebas de hipótesis.

x7_hombres <- c(10.1, 11.5, 12, 10.4, 11.4, 12, 11, 12.2, 10.7, 11, 10.4, 10.9, 11, 11, 10.7, 11.6, 11.8, 10, 11.8, 11.3, 10.2, 11.5, 11.4, 11.6, 11.3, 11.3, 10.2, 10.6, 11, 11.8, 11.5, 11.4, 12, 10.8, 10.8, 11.8, 10.6, 11.3, 11.2, 10.4, 11.5, 11, 11, 11.7, 10.3, 12, 11.9, 11.2, 11.3, 11.2)
x7_mujeres <- c(8.9, 10.2, 9.2, 10, 9.8, 9, 9.4, 10.2, 9.8, 10.1, 11, 9, 9.2, 9.5, 10, 9.2, 9.8, 9.9, 10.5, 9.2, 10.4, 10.4, 9.8, 9.6, 10.5, 10.5, 9.6, 9.8, 8.9, 9.5, 11, 10.4, 8.7, 10.5, 9.2, 9.6, 9.1, 10.6, 10.4, 10.6, 9.8, 9.8, 10.4, 10.2, 9.1, 10, 10.5, 11, 9.4, 10.6)


# Calculamos el promedio de X7 para hombres
promedio_hombres <- mean(x7_hombres)
print(paste("Promedio de X7 para hombres:", promedio_hombres))
## [1] "Promedio de X7 para hombres: 11.172"
# Calculamos el promedio de X7 para mujeres
promedio_mujeres <- mean(x7_mujeres)
print(paste("Promedio de X7 para mujeres:", promedio_mujeres))
## [1] "Promedio de X7 para mujeres: 9.876"
var.test(x7_hombres,x7_mujeres)
## 
##  F test to compare two variances
## 
## data:  x7_hombres and x7_mujeres
## F = 0.86039, num df = 49, denom df = 49, p-value = 0.6007
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.4882504 1.5161682
## sample estimates:
## ratio of variances 
##          0.8603893
# Prueba de hipótesis
# Prueba de hipótesis

result <- t.test(x7_hombres, x7_mujeres, alternative = "two.sided", mu = 0, paired = FALSE, var.equal = TRUE, conf.level = 0.90)

# Resultados
print(result)
## 
##  Two Sample t-test
## 
## data:  x7_hombres and x7_mujeres
## t = 10.961, df = 98, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 90 percent confidence interval:
##  1.099658 1.492342
## sample estimates:
## mean of x mean of y 
##    11.172     9.876

Del anterior codigo podemos ver en manera de pasos lo que se realiza :

1.Crea un vector llamado x7_hombres que contiene una serie de valores numéricos que representan las mediciones de una variable para un grupo de hombres. 2.Crea un vector llamado x7_mujeres que contiene una serie de valores numéricos que representan las mediciones de la misma variable para un grupo de mujeres. 3.Calcula el promedio de los valores en x7_hombres utilizando la función mean() y almacena el resultado en la variable promedio_hombres. 4.Imprime en pantalla el promedio calculado para los hombres. Calcula el promedio de los valores en x7_mujeres utilizando la función mean() y almacena el resultado en la variable promedio_mujeres. 5.Imprime en pantalla el promedio calculado para las mujeres. 6.Realiza una prueba de hipótesis utilizando la función var.test() para comparar las varianzas de x7_hombres y x7_mujeres. 7.Realiza una prueba de t-student independiente utilizando la función t.test() para comparar las medias de x7_hombres y x7_mujeres. 8.El argumento alternative = “two.sided” indica que se realiza una prueba de dos colas. 8.1 El argumento mu = 0 especifica que la hipótesis nula es que las medias de los dos grupos son iguales. 8.2 El argumento paired = FALSE indica que los grupos no están relacionados entre sí. 8.3El argumento var.equal = TRUE asume que las varianzas de ambos grupos son iguales. 8.4El argumento conf.level = 0.90 establece el nivel de confianza en 0.90 (90%). 9.Almacena los resultados de la prueba de t-student en la variable result. 10.Imprime en pantalla los resultados obtenidos de la prueba de t-student.

De lo anterior se puede conluir que, hay una diferencia estadísticamente significativa entre las dos muestras (hombres y mujeres). La media de la muestra de hombres (11.172) es significativamente mayor que la media de la muestra de mujeres (9.876).


Elabore una prueba de hipotesis con α=0.05 para probar si el promedio de la variable X13 es mayor en hombres que en mujeres.

datos_punto_d <- data.frame(Genero=c(muestraHombre$X13, muestraMujer$X13), circunferenciaM=rep(c('Hombre', 'Mujer'), each=50))

colores <- c("#FAE800", "#5AE3E6")

boxplot(Genero ~ circunferenciaM, data=datos_punto_d, las=1,
        xlab='Circunferencia abdominal', ylab='Género', col = colores)

ad.test(muestraHombre$X13)
## 
##  Anderson-Darling normality test
## 
## data:  muestraHombre$X13
## A = 0.70041, p-value = 0.06335
ad.test(muestraMujer$X13)
## 
##  Anderson-Darling normality test
## 
## data:  muestraMujer$X13
## A = 0.75835, p-value = 0.04534
t.test(x=muestraHombre$X13, y=muestraMujer$X13, alternative="greater", mu=0, 
       paired=FALSE, var.equal=FALSE, conf.level=0.95)
## 
##  Welch Two Sample t-test
## 
## data:  muestraHombre$X13 and muestraMujer$X13
## t = 3.1178, df = 97.883, p-value = 0.001196
## alternative hypothesis: true difference in means is greater than 0
## 95 percent confidence interval:
##  2.591208      Inf
## sample estimates:
## mean of x mean of y 
##    88.520    82.976

Del anterior codigo tenemos el siguiente paso a paso:

  1. Se crea un data.frame que tiene dos columnas: “Genero” y “circunferenciaM”. Los valores de la columna “Genero” se obtienen combinando los datos de las variables muestraHombre$X13.
  2. Posteriormente realizamos un boxplot que nos permita visualizar las distribuciones de las variables X13 por género, Hombre y Mujer respectivamente.
  3. Aplica la prueba de Anderson-Darling utilizando la función ad.test() a los valores de muestraHombre$X13. Esta prueba de bondad de ajuste evalúa si los datos de Hombre para X13 siguen una distribución normal.
  4. Aplica la prueba de Anderson-Darling utilizando la función ad.test() a los valores de muestraMujer$X13. Esta prueba de bondad de ajuste evalúa si los datos en de Mujer para X13 siguen una distribución normal.
  5. Realizamos una prueba t utilizando la función t.test() para comparar las medias de la muestraX13Hombre y la muestraX13Mujer. El argumento alternative=“greater” indica que la prueba es unilatera y se está probando sí la medida de la muestra X13 de Hombre es mayor que la medida de la muestra X13 de Mujer El argumento mu=0 especifica que la hipótesis nula es que no hay diferencia en las medias. Los argumentos paired=FALSE y var.equal=FALSE indican que las muestras no están emparejadas y que las varianzas de las muestras no son iguales. El argumento conf.level=0.95 establece el nivel de confianza al 95% para el intervalo de confianza del resultado de la prueba t.

De lo anterior se puede conluir que, hay una diferencia entre las dos muestras (Hombres y Mujeres). Siendo que la media de la muestra de hombres (88.520) es significativamente mayor que la media de la muestra de mujeres (82.976).


¿Es la varianza de la variable X13 en las mujeres mayor que 80?, pruebe con α=0.01

Solucion: En el siguiente código se puede evidenciar que la varianza de la variable X13(Circunferencia abdominal en cm) de las mujeres es menor o igual a 80.

n <- 50  #Cantidad de Muestra de Mujeres
df <- n-1  #Grados de Libertad
va <- var(muestraMujer$X13)  #Cálculo de la varianza muestral de X13 en Mujeres

hi <- 80  #Valor hipotetico hipotético dado el enunciado
chi <- (df*va)/hi  #Estadístico de Prueba chi cuadrado

valor_p <- 1-pchisq(chi,df=n-1)  ##Obtengo el valor de la prueba a cola derecha
print(valor_p)  
## [1] 0.5650254
if(valor_p < 0.01){
  print("Dado que p valor es menor que alpha se rechaza la hipotesis nula y por tanto la varianza es mayor a 80")
}else{
  print("Dado que p valor es mayor que alpha NO se rechaza la hipotesis nula y por tanto la varianza es menor o   igual a 80")}
## [1] "Dado que p valor es mayor que alpha NO se rechaza la hipotesis nula y por tanto la varianza es menor o   igual a 80"

Tenemos cómo Hipotesis Nula: La varianza es menor o igual a 80

Hipotesis Alternativa: La varianza es mayor que 80

  1. Hallamos la varianza como medida de tendencia central.
  2. Hallamos el estadístico de prueba usando la distribución “Chi cuadrado” y el valor hipotético=80 dado el enunciado.
  3. Obtenemos el valor p usando la función de densidad Chi cuadrado teniendo en cuenta que es una prueba a cola derecha.
  4. A través de un condicional comparamos el alpha con el valor p y obtenemos la respuesta.


¿Es la varianza de la variable X8 en los hombres igual que 1.5?, pruebe con α=0.01

Solucion: En el siguiente código se puede evidenciar que la varianza de la variable X8(Diámetro de Rodillas en cm) de los mujeres es menor o igual a 80 dada nuestra semilla obtenida de forma aleatoria.

n <- 50#Tamaño de la muestra
df <- n-1#Grados de libertad
va <- var(muestraHombre$X8)#Calculo de varianza muestral de X8 en Hombres
va
## [1] 1.215527
hi <- 1.5#Valor hipotetico hipotético dado el enunciado

chi <- (df*va)/hi
chi#estadistico de prueba chi cuadrado
## [1] 39.7072
valor_p_2 <- 2*(1-pchisq(chi,df=n-1))#Obtengo el valor de la prueba a dos colas
valor_p_2
## [1] 1.651292
if(valor_p_2 < 0.01){
  print("Dado que p valor es menor que alpha se rechaza la hipotesis nula y por tanto la varianza es diferente a 1.5")
}else{
  print("Dado que p valor es mayor que alpha NO se rechaza la hipotesis nula y por tanto la varianza sí es igual a 1.5")}
## [1] "Dado que p valor es mayor que alpha NO se rechaza la hipotesis nula y por tanto la varianza sí es igual a 1.5"

Tenemos cómo Hipotesis Nula: La varianza es igual a 1.5

Hipotesis Alternativa: La varianza es diferente a 1.5

  1. Hallamos la varianza como medida de tendencia central.
  2. Hallamos el estadístico de prueba usando la distribución “Chi cuadrado” y el valor hipotético=1.5 dado el enunciado.
  3. Obtenemos el valor p usando la función de densidad Chi cuadrado teniendo en cuenta que es una prueba a dos colas.
  4. A través de un condicional comparamos el alpha con el valor p y obtenemos la respuesta dada nuestra semilla obtenida de forma aleatoria.


Actividad 4 Regresión Líneal

En el código proporcionado, se realiza un análisis de regresión lineal para investigar las correlaciones entre las variables antropométricas de un grupo de individuos, divididos por género (hombres y mujeres). A continuación, se proporciona una descripción paso a paso de lo que se hizo:


  1. Se cargan los datos utilizando la función read_excel() del paquete readxl. Los datos se almacenan en el objeto “datos” y se elimina la columna 8, que contiene la variable de género.
datos <- read_excel("C:/Users/ELtwo/Desktop/Probabilidad/Parcial 3/file6a9c21df3f11.xlsx")
datos <- datos[,-8]


  1. Se separan los datos en dos subconjuntos: “male” para los datos de los hombres (filas 1 a 50) y “female” para los datos de las mujeres (filas 51 a 100).
male <- datos[1:50, ]
female <- datos[51:100, ]


  1. Se utiliza la función pairs() para mostrar una matriz de gráficos de dispersión que representa las correlaciones entre todas las variables en el conjunto de datos completo (“datos”).
pairs(datos)


  1. Se calcula la matriz de correlación utilizando la función cor() y se almacena en el objeto “matriz_correlacion”. Luego, se utiliza la función cor() nuevamente para calcular las correlaciones entre todas las variables en el conjunto de datos completo.
####La tabla1 presenta las correlaciones entre las variables sin importar el sexo.
cor(datos) #tabla1. Correlaciones generales
##            X6        X7        X8       X13        X15       X23        X24
## X6  1.0000000 0.8899836 0.6947205 0.5035795 0.16748162 0.8152213 0.74871155
## X7  0.8899836 1.0000000 0.6837318 0.4677267 0.11645987 0.7632959 0.70930376
## X8  0.6947205 0.6837318 1.0000000 0.5450106 0.45445124 0.7349724 0.48575626
## X13 0.5035795 0.4677267 0.5450106 1.0000000 0.52911144 0.7558243 0.37956520
## X15 0.1674816 0.1164599 0.4544512 0.5291114 1.00000000 0.5131778 0.03972975
## X23 0.8152213 0.7632959 0.7349724 0.7558243 0.51317784 1.0000000 0.70380018
## X24 0.7487116 0.7093038 0.4857563 0.3795652 0.03972975 0.7038002 1.00000000


  1. Se utiliza la función which() para identificar las ubicaciones de las correlaciones que superan el umbral de 0.8 y no son iguales a 1. Estas correlaciones se almacenan en el objeto “correlaciones_altas”.
umbral <- 0.8
correlaciones_altas <- which(abs(cor(datos)) > umbral & cor(datos) != 1, arr.ind = TRUE)
correlaciones_altas
##     row col
## X7    2   1
## X23   6   1
## X6    1   2
## X6    1   6


  1. Se realiza un análisis de regresión lineal utilizando la función lm() para las variables X7 y X6 en el conjunto de datos completo (“datos”). Luego, se utiliza la función ggplot() del paquete ggplot2 para graficar los datos con una línea de regresión.
####Con la informacion anterior podemos saber que variables graficar
library(ggplot2)
reg.lin <- lm(X7 ~ X6, data = datos)
  ggplot(datos, aes(x = X7, y = X6)) +
  geom_point(color = "brown2", size = 3) +
  geom_smooth(method = 'lm', formula = y ~ x, se = FALSE, color = 'dodgerblue4', size=2) +
  theme_minimal() +
  theme(
    axis.title = element_text(size = 14, face = "bold"),
    axis.text = element_text(size = 12),
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.background = element_rect(fill = "lightcyan"),
    plot.title = element_text(size = 16, face = "bold", hjust = 0.5),

  ) +
  labs(x = "Diametro de Muñeca(cm)", y = "Diametro del codo(cm)", title = "Grafica 1. Muñeca vs Codo")





  1. Se repiten los pasos 6 y 7 para el análisis de regresión lineal entre X23 y X6 en el conjunto de datos completo (“datos”), así como en los subconjuntos “male” y “female”.
reg.lin <- lm(X23 ~ X6, data = datos)

ggplot(datos, aes(x=X23, y=X6)) +
  geom_point(color = "forestgreen", size = 3) +
  geom_smooth(method = 'lm', formula = y ~ x, se = FALSE, color = 'tomato4', size=2) +
  theme_minimal() +
  theme(
    axis.title = element_text(size = 14, face = "bold"),
    axis.text = element_text(size = 12),
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.background = element_rect(fill = "lightcyan"),
    plot.title = element_text(size = 16, face = "bold", hjust = 0.5),

  ) +
  labs(x = "Peso(kg)", y = "Diametro del codo(cm)", title = "Grafica 2. Peso vs Codo")





  1. Se repiten los pasos 3 a 7 para los subconjuntos “male” y “female” por separado, generando gráficas de dispersión y realizando análisis de regresión lineal entre X23 y X15.
pairs(male)

####La tabla2 presenta las correlaciones entre las variables de los hombres
cor(male) #tabla2. Correlaciones hombres
##            X6        X7        X8       X13       X15       X23       X24
## X6  1.0000000 0.7576913 0.5235132 0.4555195 0.5758018 0.6986831 0.6092987
## X7  0.7576913 1.0000000 0.5644952 0.4111939 0.4410904 0.6089388 0.4789151
## X8  0.5235132 0.5644952 1.0000000 0.3579922 0.4424042 0.5327513 0.3128301
## X13 0.4555195 0.4111939 0.3579922 1.0000000 0.5736764 0.7920304 0.2630729
## X15 0.5758018 0.4410904 0.4424042 0.5736764 1.0000000 0.8017570 0.3086980
## X23 0.6986831 0.6089388 0.5327513 0.7920304 0.8017570 1.0000000 0.5721286
## X24 0.6092987 0.4789151 0.3128301 0.2630729 0.3086980 0.5721286 1.0000000
####Intentamos hallar las variables con mayor correlacion en los hombres (recordar que se tomo un umbral de 0.8)
correlaciones_altas <- which(abs(cor(male)) > umbral & cor(male) != 1, arr.ind = TRUE)
correlaciones_altas
##     row col
## X23   6   5
## X15   5   6
####La circunferencia del muslo y el peso es lo que mas tiene correlacion
reg.lin <- lm(X23 ~ X15, data = male)

ggplot(male, aes(x=X23, y=X15)) +
 geom_point(color = "limegreen", size = 3) +
  geom_smooth(method = 'lm', formula = y ~ x, se = FALSE, color = 'deeppink2', size=2) +
  theme_minimal() +
  theme(
    axis.title = element_text(size = 14, face = "bold"),
    axis.text = element_text(size = 12),
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.background = element_rect(fill = "lightcyan"),
    plot.title = element_text(size = 16, face = "bold", hjust = 0.5),

  ) +
  labs(x = "Peso(kg)", y = "Circunferencia del muslo(cm)", title = "Grafica 3. Peso vs Muslo")

pairs(female)

####Veamos los coeficientes de relacion de las diferentes variables en las mujeres
cor(female) #tabla3. Correlaciones mujeres
##            X6        X7        X8       X13        X15       X23        X24
## X6  1.0000000 0.7372002 0.6209815 0.4358680 0.31345183 0.6114608 0.44205528
## X7  0.7372002 1.0000000 0.5375967 0.3568731 0.24945844 0.5166962 0.46768931
## X8  0.6209815 0.5375967 1.0000000 0.5976423 0.73494088 0.7823363 0.21113997
## X13 0.4358680 0.3568731 0.5976423 1.0000000 0.63852631 0.7570682 0.25414462
## X15 0.3134518 0.2494584 0.7349409 0.6385263 1.00000000 0.8417375 0.01620747
## X23 0.6114608 0.5166962 0.7823363 0.7570682 0.84173746 1.0000000 0.37504541
## X24 0.4420553 0.4676893 0.2111400 0.2541446 0.01620747 0.3750454 1.00000000
####Finalizando, estas son las variables por encima del umbral de correlacion de las mujeres
correlaciones_altas <- which(abs(cor(male)) > umbral & cor(male) != 1, arr.ind = TRUE)
correlaciones_altas
##     row col
## X23   6   5
## X15   5   6
####Sorprendentemente encontramos las mismas dos variables con mayor correlacion que el de los hombres
reg.lin <- lm(X23 ~ X15, data = female)

ggplot(female, aes(x=X23, y=X15)) +

 geom_point(color = "deeppink1", size = 3) +
  geom_smooth(method = 'lm', formula = y ~ x, se = FALSE, color = 'tan1', size=2) +
  theme_minimal() +
  theme(
    axis.title = element_text(size = 14, face = "bold"),
    axis.text = element_text(size = 12),
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.background = element_rect(fill = "lightcyan"),
    plot.title = element_text(size = 16, face = "bold", hjust = 0.5),

  ) +
  labs(x = "Peso(kg)", y = "Circunferencia del muslo(cm)", title = "Grafica 4. Peso vs muslo")





Conclusión:

Analizando el conjunto de datos separado por sexos se encontró una correlación alta entre la circunferencia del muslo (X15) y el peso (X23). Tanto en hombres como en mujeres, se observa una tendencia positiva en la relación entre estas dos variables, lo que indica que a medida que aumenta el peso, también tiende a aumentar la circunferencia del muslo.

Las gráficas de dispersión y las líneas de regresión lineal ayudan a visualizar la relación entre las variables y proporcionan una estimación de la tendencia en los datos.




Bibliografía


Hernández, F., & Usuga, O. (2023, abril 27). Manual de R. Github.io. https://fhernanb.github.io/Manual-de-R/

Error in plot.new() : figure margins too large, Scatter plot. (s/f). Stack Overflow. Recuperado el 28 de junio de 2023, de https://stackoverflow.com/questions/23050928/error-in-plot-new-figure-margins-too-large-scatter-plot

How to solve this error: Error in as.data.frame.default(x[[i]], optional = TRUE): cannot coerce class ‘ “function”’ to a data.frame. (s/f). Stack Overflow. Recuperado el 28 de junio de 2023, de https://stackoverflow.com/questions/68314575/how-to-solve-this-error-error-in-as-data-frame-defaultxi-optional-true

Converting call to equation in r markdown. (s/f). Stack Overflow. Recuperado el 28 de junio de 2023, de https://stackoverflow.com/questions/56568767/converting-call-to-equation-in-r-markdown