When Instrumental Variable (IV) is problematic
As a tutor for both Australia Awards Scholarship and ANU, I get the privilege to learn many courses. There’s a lot of great content in ANU in terms of courses which I can’t cope with. But as a tutor, I am ‘forced’ to learn many of these courses so that’s definitely something. Haha!
This time, i’d like to write about a demonstration of weak instrument that I learned from a course at CBE.
What’s an IV?
One problem with OLS is endogeneity/reverse causality. This happens when our independent variable is actually depending on something else. This something else is then absorbed by the error term and violate
We often use IV as one of the treatment to this problem. IV is a third variable
Problem IV
However, when the instrument
Setting
Here, we try to use finance setting. Let
Generate 2,000 observation, where half experienced a flat negative shock
data <- data.frame(
id=c(1:2000)
)
# generate data observation
data$lnz <- rnorm(2000, mean = 0.5, sd=1)
data$Z <- exp(data$lnz)
data$U <- rnorm(2000,mean = 0, sd=0.1)
data$B1 <- rbinom (2000, 1, 0.5) # to explain about probability 1
data$B2 <- 1-data$B1 # to explain about probability 1
# generate firm cashflow
data$X <- data$B1*data$Z - 3*data$B2 + data$U
# generate firm borrowing
data$E <- rnorm(2000,mean = 0, sd=0.1)
data$R <- 0.5*data$U + 0.5*data$E
data$X1 <- ifelse (data$X>0, 1, 0)
data$X2 <- ifelse (data$X<0, 1, 0)
data$Y <- (data$X*data$X1) - (data$X*data$X2) + data$R
head(data)
## id lnz Z U B1 B2 X E R
## 1 1 0.53446900 1.7065418 -0.02069438 1 0 1.685847 -0.16523761 -0.09296600
## 2 2 -0.25843412 0.7722599 -0.01968836 0 1 -3.019688 -0.09326667 -0.05647752
## 3 3 0.58658233 1.7978335 0.05513357 0 1 -2.944866 -0.10034947 -0.02260795
## 4 4 1.48663543 4.4221917 -0.18736333 0 1 -3.187363 -0.10648732 -0.14692532
## 5 5 1.07463211 2.9289152 0.04403934 0 1 -2.955961 0.03063488 0.03733711
## 6 6 0.05710789 1.0587700 0.03335503 1 0 1.092125 0.07427162 0.05381333
## X1 X2 Y
## 1 1 0 1.592881
## 2 0 1 2.963211
## 3 0 1 2.922258
## 4 0 1 3.040438
## 5 0 1 2.993298
## 6 1 0 1.145938
Positive cash flow
Let’s try plot
library(ggplot2)
a<-ggplot(data, aes(Z,X, colour=B1)) +
geom_point()
a

Blue is those experience positive shock while black is those who get negative shock. Positive shock has 45∘ from
Now let’s try
b<-ggplot(data,aes(X,Y,colour=X1)) +
geom_point()
b

Firm’s borrowing sudah pasti positif, dan kita buat sedemikian
sehingga perusahaan meminjam sesuai cash flow (alias koefisien
beta-nya = 1). Nah, ketika
Jika kita, ceritanya nggak tau hubungan
b +
geom_smooth(method = "lm")

Keliatan bias banget yah?
Bagaimana dengan koefisiennya? Coba anda bisa nebak gak? ingat bahwa
ketika
# Regression
mod <- lm(Y~X, data = data)
summary(mod)
##
## Call:
## lm(formula = Y ~ X, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.0007 -1.7264 0.9776 1.1259 15.2347
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.88313 0.04075 70.76 <2e-16 ***
## X 0.32862 0.01145 28.70 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.82 on 1998 degrees of freedom
## Multiple R-squared: 0.2919, Adjusted R-squared: 0.2916
## F-statistic: 823.7 on 1 and 1998 DF, p-value: < 2.2e-16
Jawabannya (hampir) benar! (hampir) 0.5! Jadi sebenarnya dengan OLS, kita sudah mendapatkan koefisien yang (hampir) sesuai dengan data yang kita regenerasi, yaitu (hampir) 0.5! Yah tentu saja hasilnya masih salah wkwkwk karena 0.32 masih agak jauh dari 0.5 yha, tapi kan ceritanya kita gak tau dunia nyata bentuknya kayak gimana he he he.
Regresi IV malah bikin tambah jelek
Tentu saja OLS belum ngasih kita koefisien yang kita inginkan ya (tentu saja masalah bias masih ada). Yang jadi masalah, regresi IV malah bikin koefisiennya makin menjauh dari 0.5!
Coba kita regresi
library (AER)
modelIV <- ivreg(formula=data$Y~data$X | data$Z)
summary(modelIV)
##
## Call:
## ivreg(formula = data$Y ~ data$X | data$Z)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.366 -3.175 -2.877 3.252 3.884
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.01206 0.07358 40.94 <2e-16 ***
## data$X 1.08897 0.05915 18.41 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.26 on 1998 degrees of freedom
## Multiple R-Squared: -1.271, Adjusted R-squared: -1.272
## Wald test: 339 on 1 and 1998 DF, p-value: < 2.2e-16
Setelah di-treat dengan IV, koefisien X dan Y malah bermasalah. Tapi sebenernya kan memang kita meregresikan X dan Y dengan koefisien 1 (meskipun aslinya 50% doang, 50%-nya lagi koefisien -1) Tentu saja, IV-nya hanya menangkap 50% dari fenomena, dan 50%-nya lagi akhirnya diserahkan ke intercept (dan error). OLS emang masih ada bias, tapi IV malah bikin tambah parah. Inilah salah satu contoh problem menggunakan IV, jika hubungan IV nya sendiri bias.
Cara terbaik? Tentu saja memisahkan regresinya jadi dua. Contoh jika kita regresi hanya shock positif saja:
dataX<-data
dataX<-dataX[!(dataX$B2=="1"),]
modelIV2 <- ivreg(formula=dataX$Y~dataX$X | dataX$Z)
summary(modelIV2)
##
## Call:
## ivreg(formula = dataX$Y ~ dataX$X | dataX$Z)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.228315 -0.047317 0.002166 0.045417 0.201270
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.0020950 0.0028174 0.744 0.457
## dataX$X 0.9997967 0.0006977 1432.905 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.06716 on 999 degrees of freedom
## Multiple R-Squared: 0.9995, Adjusted R-squared: 0.9995
## Wald test: 2.053e+06 on 1 and 999 DF, p-value: < 2.2e-16
Ini benar. Intercept = 0, dan koefisiennya 1, sesuai dengan yang kita
buat. Tentu saja yang negatif tidak perlu kita IV karena ketika negatif,
Intinya, hati-hati menggunakan IV
Tentu saja di dunia nyata kita tidak tau fungsi asli dari
Biasanya yang kita lakukan di paper adalah menunjukkan hasil regresi OLS dan IV, sehingga bisa dilihat pola-nya apakah IV memperbaiki OLS atau tidak. Tentu saja justifikasi dari publikasi lain soal keabsahan IV juga harus ditulis di paper kita wkwk. Di Crawford sendiri, jika anda menggunakan IV, siap-siaplah ditanya-tanyain soal kekuatan instrumennya. Ha ha ha ha!
IV memang ribet. Moga-moga kita tidak harus berurusan dengan IV. wwkwkw. Ok sekian semoga postingannya berguna.