library(readr)
supuestos <- read_csv("supuestos.csv")
## Rows: 194 Columns: 23
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): country
## dbl (22): tfr, yearSchF, contracep, sanitat, water, birthSkill, childMort, d...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
View(supuestos)
Variable dependiente: expectativa de vida femenina (lifExpFem)
Variable independiente: médicos por 1000 habitantes (doctor)
lm <- lm(lifExpFem ~ doctor, data = supuestos)
summary(lm)
##
## Call:
## lm(formula = lifExpFem ~ doctor, data = supuestos)
##
## 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
De primera instancia podemos observar que el modelo ajustado presenta que la disponibilidad de médicos por cada 1,000 habitantes tiene un impacto positivo y significativo sobre la expectativa de vida femenina con un cambio en promedio de 5.3042 y un valor de p de <2e-16. El R^2 de 0.4675 explica aproximadamente el 46.75% de la variabilidad de las variables. Otra observación significativa son la distribución de los residuales, cuales la mayoría esta dispersa más para un lado que de forma uniforme.
library(ggplot2)
library(broom)
df2 <- data.frame(
yhat = fitted.values(lm),
res = rstandard(lm))
ggplot(df2, aes(sample = res)) +
stat_qq(color = "blue") +
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.9619, p-value = 0.000122
De acuerdo con la prueba de Shapiro, se puede concluir que los residuales de error no tienen normalidad ya que el valor de p es menor que 0.05.
ggplot(df2, aes(x = yhat, y = res)) +
geom_point(alpha = 0.6, color = "blue") +
geom_hline(yintercept = 0, linetype = "dashed", color = "grey40") +
labs(x = "Valores ajustados", y = "Residuales estandarizados") +
theme_minimal(base_size = 14)
library(lmtest)
bptest(lm)
##
## studentized Breusch-Pagan test
##
## data: lm
## BP = 6.7478, df = 1, p-value = 0.009386
De acuerdo con la prueba de Breusch-Pagan, podemos ver que el valor de p es mucho menor que el 0.05, indicando que no tiene varianza constante.
library(ggplot2)
library(dplyr)
df3 <- data.frame(
res = rstandard(lm)) %>%
mutate(orden = 1:length(res))
ggplot(df3, aes(x = orden, y = res)) +
geom_point(alpha = 0.6, color = "blue") +
geom_hline(yintercept = 0, linetype = "dashed", color = "grey40") +
labs(x = "Orden/tiempo", y = "Residuales estandarizados") +
theme_minimal(base_size = 14)
dwtest(lm)
##
## Durbin-Watson test
##
## data: lm
## DW = 1.9794, p-value = 0.4393
## alternative hypothesis: true autocorrelation is greater than 0
El valor de p en la prueba de Durbin-Watson indica que hay independencia entre los errores.
A pesar de que el modelo ajustado presenta un impacto positivo, al haber falta de normalidad y heterocedasticidad, los MCO se ven afectados, y los intervalos de confianza podrían no ser tan confiables ni enteramente correctos. Indicando que se tendrá que hacer correcciones y revisar variables e incluso considerar otros métodos.
Variable dependiente: tasa de fecundidad (tfr)
Variables independientes: uso de anticonceptivos (contracep) y promedio de años de educación femenina (yearSchF)
lm2 <- lm(tfr ~ contracep + yearSchF, data = supuestos)
summary(lm2)
##
## Call:
## lm(formula = tfr ~ contracep + yearSchF, data = supuestos)
##
## 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
Podemos observar en este modelo de regresión lineal múltiple el impacto negativo que tienen el uso de anticonceptivos y los años de educación femenina tiene en la tasa de fecundidad. El modelo presenta un 0.7985 o un 79.85% de variabilidad en la tasa de fecundidad. Además podemos observar los residuales están distribuidos de manera bastante uniformes.
library(ggplot2)
library(broom)
df4 <- data.frame(
yhat = fitted.values(lm2),
res = rstandard(lm2))
ggplot(df4, aes(sample = res)) +
stat_qq(color = "blue") +
stat_qq_line(linewidth = 1) +
labs(x = "Cuantiles teóricos", y = "Cuantiles muestrales") +
theme_minimal(base_size = 14)
shapiro.test(df4$res)
##
## Shapiro-Wilk normality test
##
## data: df4$res
## W = 0.99231, p-value = 0.7397
De acuerdo a el valor de p con 0.7397, la prueba de Shapiro muestra una normalidad en los errores.
ggplot(df4, aes(x = yhat, y = res)) +
geom_point(alpha = 0.6, color = "blue") +
geom_hline(yintercept = 0, linetype = "dashed", color = "grey40") +
labs(x = "Valores ajustados", y = "Residuales estandarizados") +
theme_minimal(base_size = 14)
library(lmtest)
bptest(lm2)
##
## studentized Breusch-Pagan test
##
## data: lm2
## BP = 4.5645, df = 2, p-value = 0.1021
La prueba de Breusch-Pagan indica que hay varianza constante, con un valor de p de 0.1021.
library(ggplot2)
df5 <- data.frame(
res = rstandard(lm2)) %>%
mutate(orden = 1:length(res))
ggplot(df5, aes(x = orden, y = res)) +
geom_point(alpha = 0.6, color = "blue") +
geom_hline(yintercept = 0, linetype = "dashed", color = "grey40") +
labs(x = "Orden/tiempo", y = "Residuales estandarizados") +
theme_minimal(base_size = 14)
dwtest(lm2)
##
## Durbin-Watson test
##
## data: lm2
## DW = 1.9599, p-value = 0.4015
## alternative hypothesis: true autocorrelation is greater than 0
La prueba de Durbin-Watson indica que los errores son independientes.
A diferencia de el modelo de regresión lineal simple, el modelo de regresión lineal multiple cumple con los tres supuestos: la normalidad, homocedasticidad e independencia. La confianza de este modelo es alta y eficaz. Indicando que los intervalos de confianza y las pruebas sean confiables.