O código abaixo faz a leitura da base de dados. Não se esqueça de carregar as bliotecas disponíveis no código .Rmd.
library(readxl)
Dados <- read_excel("Dados_Atv1.xls",sheet = "Dados", col_names = TRUE)
View(Dados)
Escolhemos a soja como variável independente e a partir dela tentaremos prever ou explicar o comportamento do dolar.
Com o resultado do teste Anova e do comando summary, verificamos: R² de 0.1501 e R² ajustado de 0.1467.
Para o 95% de confiança, não foi encontrada significância.
Conforme pode ser evidenciado no gráfico abaixo, plotamos os pontos da dispersão dolar por soja e a linha vermelha indica a regressão linear.
eq_dolar_soja <- lm(soja ~ dol, data = Dados)
summary(eq_dolar_soja)
##
## Call:
## lm(formula = soja ~ dol, data = Dados)
##
## Residuals:
## Min 1Q Median 3Q Max
## -45.096 -19.967 -7.366 26.016 42.397
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -93.337 34.508 -2.705 0.00731 **
## dol 42.504 6.448 6.592 2.63e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 24.4 on 246 degrees of freedom
## Multiple R-squared: 0.1501, Adjusted R-squared: 0.1467
## F-statistic: 43.45 on 1 and 246 DF, p-value: 2.628e-10
anova(eq_dolar_soja)
## Analysis of Variance Table
##
## Response: soja
## Df Sum Sq Mean Sq F value Pr(>F)
## dol 1 25877 25876.6 43.451 2.628e-10 ***
## Residuals 246 146500 595.5
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
plot(Dados$dol, Dados$soja, col = "blue", main = "Regressão linear soja e dol",
xlab = "dolar em pontos", ylab= "soja em R$ / Saca", pch = 20,)
abline(eq_dolar_soja, col="red")
library(dplyr)
dft_ic95 <- data.frame(confint(eq_dolar_soja, level = 0.95),coef(eq_dolar_soja))
colnames(dft_ic95)[1] = "Min"
colnames(dft_ic95)[2] = "Max"
colnames(dft_ic95)[3] = "Predito"
dft_ic95 %>% relocate("Predito", .after = "Min")
## Min Predito Max
## (Intercept) -161.30566 -93.33671 -25.36775
## dol 29.80347 42.50384 55.20421
Xi <- 0:100
minIC95 <- dft_ic95[1,1] + dft_ic95[2,1]*Xi
maxC95 <- dft_ic95[1,2] + dft_ic95[2,2]*Xi
#caso queira plotar os intervalos de confiança de contorno.
Conforme evidenciado, os invervalos de confiança para nível crítico de 5% todos incluem o 0.
Para o modelo linear:
O efeito marginal será: beta2,
e a elasticidade beta2 * Xi/Yi, utilando-se valores médios dos dados.
e_mg_ln <- dft_ic95[2,3]
el_ln <- dft_ic95[2,3]* mean(Dados$dol)/mean(Dados$soja)
e_mg_ln
## [1] 42.50384
el_ln
## [1] 1.697048
A seguir, transformaos as variáveis X e Y usando o comando log() e refizemos o processo de regressão.
Para O R² encontramos valor de 0.1793 e R² ajustado de 0.1759
Neste caso, teremos efeito marginal beta2 * Xi/Yi e elasticidae beta2.
Curisosamente, para 95% de confiança, os intervalos de confiança não incluem 0, todavia a regressão não foi significativa para este intervalo.
eq_loglog_dolar_soja <- lm(log(soja) ~ log(dol), data = Dados)
summary(eq_loglog_dolar_soja)
##
## Call:
## lm(formula = log(soja) ~ log(dol), data = Dados)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.34366 -0.14677 -0.04606 0.19461 0.30892
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.7561 0.4260 4.123 5.12e-05 ***
## log(dol) 1.8629 0.2541 7.330 3.31e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1833 on 246 degrees of freedom
## Multiple R-squared: 0.1793, Adjusted R-squared: 0.1759
## F-statistic: 53.73 on 1 and 246 DF, p-value: 3.307e-12
anova(eq_loglog_dolar_soja)
## Analysis of Variance Table
##
## Response: log(soja)
## Df Sum Sq Mean Sq F value Pr(>F)
## log(dol) 1 1.8061 1.80608 53.727 3.307e-12 ***
## Residuals 246 8.2695 0.03362
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
plot(log(Dados$dol),log(Dados$soja), col = "blue", main = "Regressão linear log-log soja e dol",
xlab = "dolar em pontos (log)", ylab= "soja em R$ / Saca (log)", pch = 20,)
abline(eq_loglog_dolar_soja, col="red")
library(dplyr)
dft_ic95log <- data.frame(confint(eq_loglog_dolar_soja, level = 0.95),coef(eq_loglog_dolar_soja))
colnames(dft_ic95log)[1] = "Min"
colnames(dft_ic95log)[2] = "Max"
colnames(dft_ic95log)[3] = "Predito"
dft_ic95log %>% relocate("Predito", .after = "Min")
## Min Predito Max
## (Intercept) 0.9171293 1.756109 2.595089
## log(dol) 1.3622868 1.862871 2.363456
e_mg_log <- dft_ic95log[2,3]* mean(log(Dados$dol))/mean(log(Dados$soja))
el_log <- dft_ic95log[2,3]
e_mg_log
## [1] 0.6399288
el_log
## [1] 1.862871