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.

Apartado 1

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"

Apartado 2

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

Apartado 3

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

Apartado 4

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

Apartado 5

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

Apartado 6

# 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

Apartado 8

# 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

Apartado 10

# 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