# Variaveis instrumentais no R I # Prof. Raphael B. Corbi/ Monitor Alan Leal # Pacotes utilizados neste código: if(!require(tidyverse)){install.packages("tidyverse");require(tidyverse)} if(!require(AER)){install.packages("AER");require(AER)} if(!require(stargazer)){install.packages("stargazer");require(stargazer)} # Lendo a base agora: # Lendo a base: card <- haven::read_stata("https://raw.github.com/scunning1975/mixtape/master/card.dta") %>% filter(if_all(c(lwage,educ,exper,black,south,married,smsa,nearc4),~!is.na(.))) # Iremos criar agora as tres matrizes de interesse, X, Z e y: y <- card$lwage X <- cbind(1,card$educ,card$exper,card$black,card$south,card$married,card$smsa) Z <- cbind(1,card$nearc4,card$exper,card$black,card$south,card$married,card$smsa) # Vamos agora as estimativas de mqo e iv: beta_ols <- solve(t(X)%*%X)%*%t(X)%*%y beta_iv <- solve(t(Z)%*%X)%*%t(Z)%*%y cbind(beta_ols,beta_iv) # Faremos esse mesmo procedimento por dois estágios: frst_stg <- lm(educ~nearc4+exper+black+south+married+smsa,data=card) summary(frst_stg) card$educ_hat <- predict(frst_stg) # Segundo estágio: scnd_stg <- lm(lwage~educ_hat+exper+black+south+married+smsa,data=card) summary(scnd_stg) # usando o comando próprio do R: ivreg_card <- ivreg(lwage~educ+exper+black+south+married+smsa|nearc4+exper+black+south+married+smsa,data=card) summary(ivreg_card) # Vamos comparar o resultado do ivreg com o resultado de dois estágios: stargazer(scnd_stg,ivreg_card,type="text") # Usando o "diagnostics" do ivreg: summary(ivreg_card,diagnostics = TRUE)