simple <- lm(lifExpFem~doctor, data=datos)
summary(simple)
##
## Call:
## lm(formula = lifExpFem ~ doctor, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -20.053 -5.513 1.614 6.222 14.067
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 61.6726 0.8568 71.98 <2e-16 ***
## doctor 5.3042 0.4314 12.29 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.771 on 170 degrees of freedom
## (22 observations deleted due to missingness)
## Multiple R-squared: 0.4706, Adjusted R-squared: 0.4675
## F-statistic: 151.1 on 1 and 170 DF, p-value: < 2.2e-16
Intercepto: Expectativa de vida femenina (lifExpFem): Cuando la variable doctor sea igual a 0 la expectativa de vida femenina es igual a 62 años.
Médicos por 1000 habitantes (doctor): El coeficiente de doctor indica que por cada médico adicional por cada mil habitantes, la expectativa de vida femenina aumenta en promedio 5.3 años.
R^2: El modelo explica el 47% de la variación total, lo que indica una relación positiva moderada entre ambas variables.
library(ggplot2)
library(broom)
df <- data.frame(
yhat = fitted.values(simple),
res = rstandard(simple))
ggplot(df, aes(sample = res)) +
stat_qq(color = "orange") +
stat_qq_line(linewidth = 1) +
labs(x = "Cuantiles teóricos", y = "Cuantiles muestrales") +
theme_minimal(base_size = 14)
shapiro.test(df$res)
##
## Shapiro-Wilk normality test
##
## data: df$res
## W = 0.9619, p-value = 0.000122
mean(df$res)
## [1] -0.001717297
El test de Shapiro–Wilk (p = 0.000122) indica que los errores no siguen una distribución normal. Esto puede afectar la validez exacta de las pruebas.
ggplot(df, aes(x = yhat, y = res)) +
geom_point(alpha = 0.6, color = "orange") +
geom_hline(yintercept = 0, linetype = "dashed", color = "black") +
labs(x = "Valores ajustados", y = "Residuales estandarizados") +
theme_minimal(base_size = 14)
library(lmtest)
bptest(simple)
##
## studentized Breusch-Pagan test
##
## data: simple
## BP = 6.7478, df = 1, p-value = 0.009386
El test de Breusch–Pagan (p = 0.009386) sugiere heterocedasticidad. La varianza del error no es constante.
library(ggplot2)
library(dplyr)
df1 <- data.frame(
res = rstandard(simple)) %>%
mutate(orden = seq_along(res))
ggplot(df1, aes(x = orden, y = res)) +
geom_point(alpha = 0.6, color = "orange") +
geom_hline(yintercept = 0, linetype = "dashed", color = "black") +
labs(x = "Orden/tiempo", y = "Residuales estandarizados") +
theme_minimal(base_size = 14)
dwtest(simple)
##
## Durbin-Watson test
##
## data: simple
## DW = 1.9794, p-value = 0.4393
## alternative hypothesis: true autocorrelation is greater than 0
El test de Durbin–Watson (p = 0.4393) indica independencia entre los errores. No se observa autocorrelación en los residuales.
multiple <- lm(tfr~contracep + yearSchF, data=datos)
summary(multiple)
##
## Call:
## lm(formula = tfr ~ contracep + yearSchF, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.88868 -0.52076 0.06251 0.50355 2.22631
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.950649 0.169315 41.051 < 2e-16 ***
## contracep -0.042085 0.004648 -9.054 3.25e-15 ***
## yearSchF -0.194993 0.030539 -6.385 3.44e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.7979 on 119 degrees of freedom
## (72 observations deleted due to missingness)
## Multiple R-squared: 0.8018, Adjusted R-squared: 0.7985
## F-statistic: 240.7 on 2 and 119 DF, p-value: < 2.2e-16
Intercepto: tasa de fecundidad (tfr): Cuando los anticonceptivos y el promedio de años de educación femenina son 0 la fecundidad es aproximadamente 6.95 hijos por mujer.
Uso de anticonceptivos (contracep): Por cada 1% adicional en el uso anticonceptivos, se disminuyen 0.042 hijos por mujer.
Promedio de años de educación femenina (yearSchF): Por cada año más de educación femenina, disminuye un promedio de 0.195 hijos por mujeres.
R^2: El modelo explica el 80% de la variación, mostrando un ajuste fuerte y confiable.
library(ggplot2)
library(broom)
df2 <- data.frame(
yhat = fitted.values(multiple),
res = rstandard(multiple))
ggplot(df2, aes(sample = res)) +
stat_qq(color = "orange") +
stat_qq_line(linewidth = 1) +
labs(x = "Cuantiles teóricos", y = "Cuantiles muestrales") +
theme_minimal(base_size = 14)
shapiro.test(df2$res)
##
## Shapiro-Wilk normality test
##
## data: df2$res
## W = 0.99231, p-value = 0.7397
mean(df2$res)
## [1] -0.0007677076
El test de Shapiro–Wilk (p = 0.74) no rechaza la normalidad, por lo que los errores siguen una distribución normal.
ggplot(df2, aes(x = yhat, y = res)) +
geom_point(alpha = 0.6, color = "orange") +
geom_hline(yintercept = 0, linetype = "dashed", color = "black") +
labs(x = "Valores ajustados", y = "Residuales estandarizados") +
theme_minimal(base_size = 14)
library(lmtest)
bptest(multiple)
##
## studentized Breusch-Pagan test
##
## data: multiple
## BP = 4.5645, df = 2, p-value = 0.1021
El test de Breusch–Pagan (p = 0.1021) no es significativo, lo que indica homocedasticidad. La varianza del error se mantiene constante.
df3 <- data.frame(
res = rstandard(multiple)) %>%
mutate(orden = 1:length(res))
ggplot(df3, aes(x = orden, y = res)) +
geom_point(alpha = 0.6, color = "orange") +
geom_hline(yintercept = 0, linetype = "dashed", color = "black") +
labs(x = "Orden/tiempo", y = "Residuales estandarizados") +
theme_minimal(base_size = 14)
dwtest(multiple)
##
## Durbin-Watson test
##
## data: multiple
## DW = 1.9599, p-value = 0.4015
## alternative hypothesis: true autocorrelation is greater than 0
El test de Durbin–Watson (p = 0.4015) muestra independencia de los errores. No hay evidencia de autocorrelación en los residuales.
El modelo simple muestra una relación positiva entre médicos y esperanza de vida, pero no cumple normalidad ni homocedasticidad. El modelo múltiple cumple con todos los supuestos y tiene un ajuste fuerte (R² = 0.80), por lo que es el más confiable para interpretar los resultados.