Introducción

Este taller trabaja con información de toretes Brahman, considerando las siguientes variables: PN (peso al nacer), PD (peso al destete), AlturaCruz (medida de la altura a la cruz a los 18 meses) y ALTANCA (altura al anca estandarizada a los 18 meses).

Datos

# Ingreso de datos
PN <- c(31,32,30,32,33,34,33,33,32,36,34,34,34,31,31,30,34,35,32,33)
PD <- c(200,205,200,210,212,215,190,210,206,230,220,215,220,190,190,200,215,200,192,230)
AlturaCruz <- c(140,140,135,140,135,150,130,145,140,135,145,140,140,140,140,135,140,135,130,145)
ALTANCA <- c(140,140,134,140,135,145,135,145,140,132,143,142,136,132,135,135,140,141,138,140)

datos <- data.frame(PN, PD, AlturaCruz, ALTANCA)
head(datos)
##   PN  PD AlturaCruz ALTANCA
## 1 31 200        140     140
## 2 32 205        140     140
## 3 30 200        135     134
## 4 32 210        140     140
## 5 33 212        135     135
## 6 34 215        150     145

1. Matriz de correlación

#Calculamos la matriz de correlación de Pearson para las cuatro variables.
cor_matrix <- cor(datos)
round_cor <- round(cor_matrix, 3)
print(round_cor)
##               PN    PD AlturaCruz ALTANCA
## PN         1.000 0.645      0.155   0.290
## PD         0.645 1.000      0.482   0.291
## AlturaCruz 0.155 0.482      1.000   0.644
## ALTANCA    0.290 0.291      0.644   1.000

Interpretación La matriz muestra correlaciones entre las variables:

2. Coeficientes de correlación y determinación entre PN y PD

r_pn_pd <- cor(datos$PN, datos$PD)
r2_pn_pd <- r_pn_pd^2

cat("Coeficiente de correlación (r):", round(r_pn_pd, 3), "\n")
## Coeficiente de correlación (r): 0.645
cat("Coeficiente de determinación (r²):", round(r2_pn_pd, 3), "\n")
## Coeficiente de determinación (r²): 0.416

Interpretación El coeficiente de correlación r = 0.645 refleja una relación positiva de magnitud moderada entre el peso al nacimiento (PN) y el peso al destete (PD). En otras palabras, los toretes que nacen con mayor peso tienden a presentar también un mayor peso al destete, aunque la asociación no es muy fuerte, ya que existe variabilidad que no depende únicamente del PN.

Por su parte, el coeficiente de determinación r² = 0.416 indica que aproximadamente el 41.6% de la variación en el PD puede atribuirse a las diferencias en PN, mientras que el 58.4% restante está influenciado por otros factores, como la alimentación, la genética adicional y el manejo.

3. Coeficiente de regresión lineal entre PN y PD

#Ajustamos un modelo de regresión lineal simple: PD ~ PN.
modelo <- lm(PD ~ PN, data = datos)
summary(modelo)
## 
## Call:
## lm(formula = PD ~ PN, data = datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -18.976  -1.635   1.104   5.825  21.024 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)   46.606     44.953   1.037  0.31358   
## PN             4.920      1.373   3.583  0.00212 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 9.729 on 18 degrees of freedom
## Multiple R-squared:  0.4163, Adjusted R-squared:  0.3839 
## F-statistic: 12.84 on 1 and 18 DF,  p-value: 0.002125

El coeficiente de regresión (pendiente) es aproximadamente b = 4.920, e intercepto a = 46.606. La ecuación es: PD = 46.606 + 4.920 × PN.

Interpretación El coeficiente de regresión señala que, por cada kilogramo adicional en el peso al nacimiento (PN), se proyecta un incremento de 4.920 kg en el peso al destete (PD), siempre que las demás condiciones se mantengan constantes. El intercepto (46.606) corresponde al PD estimado cuando PN=0; sin embargo, este valor carece de sentido biológico, pues corresponde a una extrapolación fuera del rango real. El modelo resulta estadísticamente significativo (p < 0.05 para la pendiente) y presenta un R² de 0.416, lo que confirma que el 41.6% de la variación en PD es explicado por PN.

Predicción para PN = 34 kg

pn_nuevo <- 34
pd_predicho <- predict(modelo, newdata = data.frame(PN = pn_nuevo))
cat("PD predicho para PN = 34 kg:", round(pd_predicho, 2), "kg\n")
## PD predicho para PN = 34 kg: 213.9 kg

Comparación con valores reales

Los toretes con PN = 34 kg tienen PD reales: 215, 220, 215, 220, 215 kg. Promedio real: r mean(datos\(PD[datos\)PN == 34]) kg. El valor predicho (213.90 kg) está cercano al promedio real (217 kg), con una ligera subestimación, lo cual es razonable dado el R² moderado del modelo.

reales_34 <- datos$PD[datos$PN == 34]
cat("Valores reales de PD para PN=34:", paste(reales_34, collapse = ", "), "\n")
## Valores reales de PD para PN=34: 215, 220, 215, 220, 215
cat("Promedio real:", round(mean(reales_34), 2), "kg\n")
## Promedio real: 217 kg
cat("Diferencia (predicho - promedio real):", round(pd_predicho - mean(reales_34), 2), "kg\n")
## Diferencia (predicho - promedio real): -3.1 kg