En el archivo cuerpo.txt se proporcionan diferentes medidas del cuerpo humano (perĂmetros, medidas del esqueleto, edad, peso, estatura y sexo) de 507 personas (247 hombres y 260 mujeres). Los datos corresponden a personas que acuden periĂłdicamente a un gimnasio y se han obtenido de la revista electrĂłnica Journal of Statistics Educations, Vol. 11, No 2, âExploring Relationships in Body Dimensionsâ. (www.amstat.org/jse/v11n2/datasets.heinz.html)
Se disponen de tres grupos de variables:
Todas las medidas estĂĄn en centĂmetros excepto el peso que estĂĄ en kilogramos y la edad en aĂąos. El primer grupo de medidas corresponden al esqueleto y junto con la altura proporcionan informaciĂłn de la estructura corporal de cada individuo. El resto de las ariables estĂĄn afectadas por la masa corporal y muscular del individuo.
Realice el histograma de la variable Altura, proporciona la media y la desviaciĂłn tĂpica. ÂżCuĂĄntas personas miden mĂĄs de 180?
# Cargar los datos
datos <- read.table("cuerpo.txt", header = TRUE)
# VisualizaciĂłn
head(datos, 5)
## A_Hombros A_Pelvis A_Cade AP_Pecho AD_Pecho A_Codo A_Muneca A_Rodilla
## 1 42.9 26.0 31.5 17.7 28.0 13.1 10.4 18.8
## 2 43.7 28.5 33.5 16.9 30.8 14.0 11.8 20.6
## 3 40.1 28.2 33.3 20.9 31.7 13.9 10.9 19.7
## 4 44.3 29.9 34.0 18.4 28.2 13.9 11.2 20.9
## 5 42.5 29.9 34.0 21.5 29.4 15.2 11.6 20.7
## A_Tobillo C_hombros C_Pecho C_Cintura C_abdomen C_Cadera C_Muslo C_Bicep
## 1 14.1 106.2 89.5 71.5 74.5 93.5 51.5 32.5
## 2 15.1 110.5 97.0 79.0 86.5 94.8 51.5 34.4
## 3 14.1 115.1 97.5 83.2 82.9 95.0 57.3 33.4
## 4 15.0 104.5 97.0 77.8 78.8 94.0 53.0 31.0
## 5 14.9 107.5 97.5 80.0 82.5 98.5 55.4 32.0
## C_Brazo C_Rodilla C_Gemelo C_Tobillo C_Muneca Edad Peso Altura Sexo
## 1 26.0 34.5 36.5 23.5 16.5 21 65.6 174.0 1
## 2 28.0 36.5 37.5 24.5 17.0 23 71.8 175.3 1
## 3 28.8 37.0 37.3 21.9 16.9 28 80.7 193.5 1
## 4 26.2 37.0 34.8 23.0 16.6 23 72.6 186.5 1
## 5 28.4 37.7 38.6 24.4 18.0 22 78.8 187.2 1
# Crear el histograma de la variable Altura
hist(datos$Altura, main = "Histograma de Altura", xlab = "Altura (cm)", ylab = "Frecuencia", col = "lightblue", border = "black")
# Calcular la media y la desviaciĂłn estĂĄndar de la variable Altura
media_altura <- mean(datos$Altura)
desviacion_tipica_altura <- sd(datos$Altura)
# Imprimir la media y la desviaciĂłn estĂĄndar
print(paste("Media de Altura:", media_altura))
## [1] "Media de Altura: 171.143786982249"
print(paste("DesviaciĂłn TĂpica de Altura:", desviacion_tipica_altura))
## [1] "DesviaciĂłn TĂpica de Altura: 9.40720520351794"
# Contar cuĂĄntas personas miden mĂĄs de 180 cm
personas_mayores_180 <- sum(datos$Altura > 180)
# Imprimir el nĂşmero de personas que miden mĂĄs de 180 cm
print(paste("NĂşmero de personas que miden mĂĄs de 180 cm:", personas_mayores_180))
## [1] "NĂşmero de personas que miden mĂĄs de 180 cm: 94"
Calcular un intervalo de confianza para la altura media (Îą = 0.05)
# Calcular el intervalo de confianza para la altura media
resultado <- t.test(datos$Altura, conf.level = 0.95)
# Mostrar el intervalo de confianza
resultado$conf.int
## [1] 170.3230 171.9646
## attr(,"conf.level")
## [1] 0.95
Realice el histograma de la altura para hombres y mujeres. Describe las diferencias que se observan.
# Separar las alturas por sexo
alturas_hombres <- datos$Altura[datos$Sexo == 1]
alturas_mujeres <- datos$Altura[datos$Sexo == 0]
# Configurar el ĂĄrea de trazado para dos subgrĂĄficos (1 fila, 2 columnas)
par(mfrow = c(2, 1))
# Crear el histograma para hombres
hist(alturas_hombres, col = "blue", main = "Histograma de Altura para Hombres", xlab = "Altura (cm)", ylab = "Frecuencia", xlim = range(datos$Altura))
# Crear el histograma para mujeres
hist(alturas_mujeres, col = "red", main = "Histograma de Altura para Mujeres", xlab = "Altura (cm)", ylab = "Frecuencia", xlim = range(datos$Altura))
# Restaurar la configuraciĂłn grĂĄfica original
par(mfrow = c(1, 1))
Contrastar si la altura media de hombres es igual a la altura media de las mujeres (Îą = 0.05)
# Realizar la prueba t para muestras independientes
resultado <- t.test(alturas_hombres, alturas_mujeres, var.equal = TRUE, conf.level = 0.95)
# Mostrar los resultados de la prueba
resultado
##
## Two Sample t-test
##
## data: alturas_hombres and alturas_mujeres
## t = 21.109, df = 505, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## 11.67493 14.07114
## sample estimates:
## mean of x mean of y
## 177.7453 164.8723
Realice un grĂĄfico de dispersiĂłn del peso de una persona en funciĂłn de la altura. Calcula la correlaciĂłn entre las dos variables con todos los datos. Calcula la correlaciĂłn entre peso y altura para hombres y tambiĂŠn para mujeres. Comenta los resultados.
# GrĂĄfico de dispersiĂłn para todos los datos
plot(datos$Altura, datos$Peso, main = "GrĂĄfico de DispersiĂłn Peso vs Altura", xlab = "Altura (cm)", ylab = "Peso (kg)", pch = 19)
# Calcular la correlaciĂłn para todos los datos
correlacion_total <- cor(datos$Altura, datos$Peso)
correlacion_total
## [1] 0.7173011
# Separar los datos por sexo
datos_hombres <- datos[datos$Sexo == 1, ]
datos_mujeres <- datos[datos$Sexo == 0, ]
# Calcular la correlaciĂłn para hombres
plot(datos_hombres$Altura, datos_hombres$Peso, main = 'RelaciĂłn Peso vs Altura de Hombres', xlab = 'Altura', ylab = 'Peso')
correlacion_hombres <- cor(datos_hombres$Altura, datos_hombres$Peso)
correlacion_hombres
## [1] 0.5347418
# Calcular la correlaciĂłn para mujeres
plot(datos_mujeres$Altura, datos_mujeres$Peso, main = 'RelaciĂłn Peso vs Altura de Mujeres', xlab = 'Altura', ylab = 'Peso')
correlacion_mujeres <- cor(datos_mujeres$Altura, datos_mujeres$Peso)
correlacion_mujeres
## [1] 0.4310593
# Ajustar el modelo de regresiĂłn lineal
modelo <- lm(Peso ~ Altura, data = datos)
# Mostrar un resumen del modelo para interpretar los coeficientes
summary(modelo)
##
## Call:
## lm(formula = Peso ~ Altura, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -18.743 -6.402 -1.231 5.059 41.103
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -105.01125 7.53941 -13.93 <2e-16 ***
## Altura 1.01762 0.04399 23.14 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9.308 on 505 degrees of freedom
## Multiple R-squared: 0.5145, Adjusted R-squared: 0.5136
## F-statistic: 535.2 on 1 and 505 DF, p-value: < 2.2e-16
# GrĂĄfico de dispersiĂłn
plot(datos$Altura, datos$Peso, main = "GrĂĄfico de DispersiĂłn de Peso vs Altura", xlab = "Altura (cm)", ylab = "Peso (kg)")
# Ajustar el modelo de regresiĂłn lineal simple
modelo <- lm(Peso ~ Altura, data = datos)
# AĂąadir la recta de regresiĂłn al grĂĄfico
abline(modelo, col = "red")
# Realizar diagnĂłstico del modelo
par(mfrow = c(2, 2)) # Configurar el ĂĄrea de trazado para 4 grĂĄficos
plot(modelo) # Crea grĂĄficos de diagnĂłstico
# Ajustar el modelo de regresiĂłn mĂşltiple
modelo <- lm(Peso ~ Altura + Edad + C_Cintura + Sexo, data = datos)
# Realizar el diagnĂłstico del modelo
par(mfrow = c(2, 2)) # Configurar el ĂĄrea de trazado para 4 grĂĄficos
plot(modelo) # Crea grĂĄficos de diagnĂłstico