Datos publicados en Heinz, Peterson, Johnson, y Kerk {2003}, base de datos bdims del paquete openintro.
plot(bdims$hip.gi,bdims$wgt, col = colores)
Es una relación lineal, positiva y fuerte
¿Cómo cambiaría la relación si el peso se midiera en libras mientras que las unidades para la circunferencia de la cadera permanecieran en centímetros? no cambia.
Ajuste un modelo lineal para explicar el peso por la circunferencia de cadera, con las variables en las unidades originales. Escriba el modelo. Luego, escriba el modelo ajustado. Interprete la pendiente estimada en términos del problema. Su respuesta debería contener una frase que comience así: “Si una persona aumenta un cm. de contorno de cadera, en promedio su peso aumentará … kilogramos”.
lm.ajustado <- lm(wgt~hip.gi,data = bdims)
summary(lm.ajustado)
Call:
lm(formula = wgt ~ hip.gi, data = bdims)
Residuals:
Min 1Q Median 3Q Max
-19.449 -7.111 -0.367 7.264 22.353
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -78.21054 5.56902 -14.04 <2e-16 ***
hip.gi 1.52417 0.05747 26.52 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 8.636 on 505 degrees of freedom
Multiple R-squared: 0.5821, Adjusted R-squared: 0.5813
F-statistic: 703.5 on 1 and 505 DF, p-value: < 2.2e-16
E(wgt/hip.gi)=β0+β1.hip.gi+ϵ E(wgt/hip.gi)=−78.21+1.52.hip.gi
“Si una persona aumenta un cm. de contorno de cadera, en promedio su peso aumentará 1.52417 kilogramos”.
plot(bdims$hip.gi,bdims$wgt)
abline(lm.ajustado, col = "red")
Describe bien
alumno <- data.frame(hip.gi = 100, wgt=NA)
predict(lm.ajustado,newdata = alumno)
1
74.20646
(predict(lm.ajustado,newdata = alumno) -81)^2
1
46.15224
plot(bdims$hgt, bdims$wgt)
lm.ajustado <- lm(wgt~hgt,data = bdims)
summary(lm.ajustado)
Call:
lm(formula = wgt ~ hgt, data = bdims)
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 ***
hgt 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
E(wgt/hip.gi)=β0+β1.hgt+ϵ E(wgt/hip.gi)=−105.01+1.02.hgt
Es razonable. Si una persona aumenta un cm. de altura, en promedio su peso aumentará 1.02 kilogramos“.
plot(bdims$hgt, bdims$wgt)
abline(lm.ajustado, col = "red")
alumno$hgt <- 187
predict(lm.ajustado,newdata = alumno)
1
85.28308
(predict(lm.ajustado,newdata = alumno) -81)^2
1
18.3448
Ajuste un modelo lineal para explicar a log10 (BrainWt) en función del log10 (BodyWt) : Como antes, escriba el modelo teórico y el ajustado.
library(openintro, warn.conflicts = FALSE)
lm_fitted <- lm(log10(mammals$BrainWt) ~ log10(mammals$BodyWt))
summary(lm_fitted)
Call:
lm(formula = log10(mammals$BrainWt) ~ log10(mammals$BodyWt))
Residuals:
Min 1Q Median 3Q Max
-0.74503 -0.21380 -0.02676 0.18934 0.84613
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.92713 0.04171 22.23 <2e-16 ***
log10(mammals$BodyWt) 0.75169 0.02846 26.41 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.3015 on 60 degrees of freedom
Multiple R-squared: 0.9208, Adjusted R-squared: 0.9195
F-statistic: 697.4 on 1 and 60 DF, p-value: < 2.2e-16
modelo teórico:
log10BrainWt=β0+β1∗log10BrainWt+ϵ Modelo ajustado
^log10BrainWt=0.92713+0.75169∗log10BrainWt
plot(log10(mammals$BrainWt) ~ log10(mammals$BodyWt))
abline(lm_fitted)
c)La observación 45 corresponde a un chancho. Prediga el peso del cerebro del chancho con el modelo ajustado, sabiendo que pesa 192 kilos.
10^(predict(lm_fitted)[45])
45
439.9997
plot(log10(mammals$BrainWt) ~ log10(mammals$BodyWt))
abline(lm_fitted)
points(x= log10(mammals$BodyWt)[45],y= log10(mammals$BrainWt)[45], col= "violet", pch = 19)
10^(predict(lm_fitted)[34])
34
188.1233
plot(log10(mammals$BrainWt) ~ log10(mammals$BodyWt))
abline(lm_fitted)
points(x= log10(mammals$BodyWt)[45],y= log10(mammals$BrainWt)[45], col= "violet", pch = 19)
points(x= log10(mammals$BodyWt)[34],y= log10(mammals$BrainWt)[34], col= "red", pch = 19)
Otras opciones para graficar
#devtools::install_github('hadley/ggplot2')
library(ggplot2)
library(ggrepel)
ggplot(mammals, aes(log10(BodyWt), log10(BrainWt), label = Species))+
geom_text_repel()+
geom_smooth(method = "lm", alpha = 0.5)
library(plotly)
graf <- ggplot(mammals, aes(log10(BodyWt), log10(BrainWt), label =Species ))+
geom_point()+
geom_smooth(method = "lm", alpha = 0.5)
ggplotly(graf, tooltip = c("label"))