library("readxl")
estados <- read_excel("~/estados.xlsx")
View(estados)
glimpse(estados)
## Rows: 27
## Columns: 8
## $ Estado <chr> "ACRE", "ALAGOAS", "AMAPA", "AMAZONAS", "BAHIA",…
## $ Sigla <chr> "AC", "AL", "AP", "AM", "BA", "CE", "DF", "ES", …
## $ Regiao <chr> "NORTE", "NORDESTE", "NORTE", "NORTE", "NORDESTE…
## $ Populacao <dbl> 732793, 3120922, 668689, 3480937, 14021432, 8448…
## $ Pib <dbl> 8477000, 24575000, 8266000, 59779000, 154340000,…
## $ Homicidios.100mil <dbl> 21.56, 59.19, 26.99, 30.48, 36.52, 25.34, 38.48,…
## $ Analfabetos.10a14anos <dbl> 5.09, 5.48, 1.77, 1.38, 3.37, 2.33, 0.69, 0.77, …
## $ Anos.de.estudos <dbl> 6.9, 5.7, 8.2, 8.7, 6.6, 6.4, 10.1, 7.8, 7.6, 6.…
ggplot(estados) +
geom_point(aes(x = Populacao, y = Pib),
size = 3, color = "green") +
labs(title = 'Relação entre População e Pib',
y = 'Pib',
x = 'População') +
theme_classic()
A primeira vista as duas variáveis apresentam uma relação aproximadamente linear.
mod <- lm(Pib ~ Populacao, estados); mod
##
## Call:
## lm(formula = Pib ~ Populacao, data = estados)
##
## Coefficients:
## (Intercept) Populacao
## -5.613e+07 2.771e+01
Logo, temos
O intercepto,\(\beta_{0}\): -5.613^{+07} O coéficiente de inclinação,\(\beta_{1}\): 2.771^{+01}
Aumentando o número da população em uma unidade, espera-se um aumento de 2.771^{01} no Pib.
confint.lm(mod)
## 2.5 % 97.5 %
## (Intercept) -9.534821e+07 -1.690522e+07
## Populacao 2.410086e+01 3.132233e+01
out = summary(mod)
out$coefficients
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -5.612672e+07 1.904383e+07 -2.947239 6.851712e-03
## Populacao 2.771160e+01 1.753177e+00 15.806501 1.597290e-14
Para \(\beta_{0}\) o valor p foi de 6.851712^{-03} Para \(\beta_{1}\) o valor p foi de 1.597290^{-14}
Em ambos, o valor p foi inferior ao nível de 5% de significância, indicando que estes parâmetros são estatísticamente significativos ao modelo ajustado.
anova(mod)
## Analysis of Variance Table
##
## Response: Pib
## Df Sum Sq Mean Sq F value Pr(>F)
## Populacao 1 1.4118e+18 1.4118e+18 249.85 1.597e-14 ***
## Residuals 25 1.4127e+17 5.6507e+15
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Pela ANOVA o valor p foi de 1.597^{-14}, indicando que ao nível de significância de 5% concluímos que a variável expiclativa tem relação com a variável resposta.
out$r.squared
## [1] 0.9090398
Logo, 90,90% de toda variabilidade da variável Y(Pib) é explicado pelo modelo ajustado
ggplot(data = estados, mapping = aes(x = Populacao, y = Pib)) +
geom_point() +
geom_smooth(method = "lm", col = "purple") +
stat_poly_eq(aes(label = paste(..eq.label.., ..adj.rr.label..,
sep = "*plain(\",\")~~")),
label.x = 0.05, label.y = 400,
parse = TRUE, coef.digits = 5) +
theme_classic()
## `geom_smooth()` using formula 'y ~ x'
plot(mod,1)
Pelo gráfico, notamos uma heterocedasticidade.
bptest(mod)
##
## studentized Breusch-Pagan test
##
## data: mod
## BP = 11.386, df = 1, p-value = 0.0007399
Como o p valor foi menor do que 5% de significância, temos a aceitação de \(H_{0}\). Assim a suposição de Homocedasticidade não foi atendida. E por isso a uma variação de Y em relação a X.
plot(mod$residuals)
Pelo gráfico, nota-se uma certa indepêndicia dos dados
durbinWatsonTest(mod)
## lag Autocorrelation D-W Statistic p-value
## 1 0.2088091 1.559806 0.276
## Alternative hypothesis: rho != 0
Como o p valor foi maior do que 5%, temos a não rejeição de \(H_{0}\):Os valores dos resíduos do modelo são independentes, e rejeitamos \(H_{1}\): Os resíduos não são homoscedásticos. Assim, a suposição de independência foi atendida.
plot(mod, 2)
Pelo gráfico os dados se aproximão de uma destribuição Normal
shapiro.test(mod$residuals)
##
## Shapiro-Wilk normality test
##
## data: mod$residuals
## W = 0.92713, p-value = 0.05879
Como o p valor foi maior do que 5% de significância, temos a não rejeição de \(H_{0}\):A distribuição Normal modela adequadamente os resíduos do modelo, e a rejeição de \(H_{1}\):A distribuição Normal não modela adequadamente os resíduos do modelo.Assim, a suposição de normalidade foi atendida.