clear set memory 100m set matsize 8000 set more off log using dual_acemoglu.log ,replace insheet using "c:\Documents and Settings\chansen1\My Documents\activeresearch\victor_weakiv\examples\acemoglu_col.txt" gen logmort = log(mort) /* Table 4 (1) */ /* Homoskedastic */ reg exprop logmort predict v if e(sample) , resid ivreg gdp (exprop = logmort) predict e if e(sample) , resid correlate e v forvalues i = 0(1)5000 { quietly gen dep = gdp - ((`i'/1000) - 1)*exprop quietly reg dep logmort matrix A = e(b) matrix B = A[1,"logmort"] quietly test logmort , matvlc(V1) matrix C = (nullmat(C),B*inv(V1)*B') matrix D = (nullmat(D),`i'/1000 - 1) drop dep } matrix C = C' matrix D = D' svmat double C , name(duals1) svmat double D , name(betas1) gen pvals1 = chi2tail(duals1,1) gen interval1 = (pvals1 >= .95) gen ub1 = betas1 + 1/1000 gen lb1 = betas1 - 1/1000 sum ub1 lb1 if interval1 == 0 outsheet pvals1 duals1 betas1 using homo1.txt , replace drop e v pvals1 interval1 ub1 lb1 betas1 duals1 matrix drop A B C D /* Heteroskedastic */ reg exprop logmort , robust predict v if e(sample) , resid ivreg gdp (exprop = logmort) , robust predict e if e(sample) , resid correlate e v forvalues i = 0(1)5000 { quietly gen dep = gdp - ((`i'/1000) - 1)*exprop quietly reg dep logmort , robust matrix A = e(b) matrix B = A[1,"logmort"] quietly test logmort , matvlc(V1) matrix C = (nullmat(C),B*inv(V1)*B') matrix D = (nullmat(D),`i'/1000 - 1) drop dep } matrix C = C' matrix D = D' svmat double C , name(duals1) svmat double D , name(betas1) gen pvals1 = chi2tail(duals1,1) gen interval1 = (pvals1 >= .95) gen ub1 = betas1 + 1/1000 gen lb1 = betas1 - 1/1000 sum ub1 lb1 if interval1 == 0 outsheet pvals1 duals1 betas1 using hetero1.txt , replace drop e v pvals1 interval1 ub1 lb1 betas1 duals1 matrix drop A B C D /* Table 4 (2) */ /* Homoskedastic */ reg exprop logmort latitude predict v if e(sample) , resid ivreg gdp (exprop = logmort) latitude predict e if e(sample) , resid correlate e v forvalues i = 0(1)5000 { quietly gen dep = gdp - ((`i'/1000) - 1)*exprop quietly reg dep logmort latitude matrix A = e(b) matrix B = A[1,"logmort"] quietly test logmort , matvlc(V1) matrix C = (nullmat(C),B*inv(V1)*B') matrix D = (nullmat(D),`i'/1000 - 1) drop dep } matrix C = C' matrix D = D' svmat double C , name(duals1) svmat double D , name(betas1) gen pvals1 = chi2tail(duals1,1) gen interval1 = (pvals1 >= .95) gen ub1 = betas1 + 1/1000 gen lb1 = betas1 - 1/1000 sum ub1 lb1 if interval1 == 0 outsheet pvals1 duals1 betas1 using homo2.txt , replace drop e v pvals1 interval1 ub1 lb1 betas1 duals1 matrix drop A B C D /* Heteroskedastic */ reg exprop logmort latitude , robust predict v if e(sample) , resid ivreg gdp (exprop = logmort) latitude , robust predict e if e(sample) , resid correlate e v forvalues i = 0(1)5000 { quietly gen dep = gdp - ((`i'/1000) - 1)*exprop quietly reg dep logmort latitude , robust matrix A = e(b) matrix B = A[1,"logmort"] quietly test logmort , matvlc(V1) matrix C = (nullmat(C),B*inv(V1)*B') matrix D = (nullmat(D),`i'/1000 - 1) drop dep } matrix C = C' matrix D = D' svmat double C , name(duals1) svmat double D , name(betas1) gen pvals1 = chi2tail(duals1,1) gen interval1 = (pvals1 >= .95) gen ub1 = betas1 + 1/1000 gen lb1 = betas1 - 1/1000 sum ub1 lb1 if interval1 == 0 outsheet pvals1 duals1 betas1 using hetero2.txt , replace drop e v pvals1 interval1 ub1 lb1 betas1 duals1 matrix drop A B C D /* Table 4 (3) */ /* Homoskedastic */ reg exprop logmort if neo == 0 predict v if e(sample) , resid ivreg gdp (exprop = logmort) if neo == 0 predict e if e(sample) , resid correlate e v forvalues i = 0(1)5000 { quietly gen dep = gdp - ((`i'/1000) - 1)*exprop quietly reg dep logmort if neo == 0 matrix A = e(b) matrix B = A[1,"logmort"] quietly test logmort , matvlc(V1) matrix C = (nullmat(C),B*inv(V1)*B') matrix D = (nullmat(D),`i'/1000 - 1) drop dep } matrix C = C' matrix D = D' svmat double C , name(duals1) svmat double D , name(betas1) gen pvals1 = chi2tail(duals1,1) gen interval1 = (pvals1 >= .95) gen ub1 = betas1 + 1/1000 gen lb1 = betas1 - 1/1000 sum ub1 lb1 if interval1 == 0 outsheet pvals1 duals1 betas1 using homo3.txt , replace drop e v pvals1 interval1 ub1 lb1 betas1 duals1 matrix drop A B C D /* Heteroskedastic */ reg exprop logmort if neo == 0, robust predict v if e(sample) , resid ivreg gdp (exprop = logmort) if neo == 0, robust predict e if e(sample) , resid correlate e v forvalues i = 0(1)5000 { quietly gen dep = gdp - ((`i'/1000) - 1)*exprop quietly reg dep logmort if neo == 0, robust matrix A = e(b) matrix B = A[1,"logmort"] quietly test logmort , matvlc(V1) matrix C = (nullmat(C),B*inv(V1)*B') matrix D = (nullmat(D),`i'/1000 - 1) drop dep } matrix C = C' matrix D = D' svmat double C , name(duals1) svmat double D , name(betas1) gen pvals1 = chi2tail(duals1,1) gen interval1 = (pvals1 >= .95) gen ub1 = betas1 + 1/1000 gen lb1 = betas1 - 1/1000 sum ub1 lb1 if interval1 == 0 outsheet pvals1 duals1 betas1 using hetero3.txt , replace drop e v pvals1 interval1 ub1 lb1 betas1 duals1 matrix drop A B C D /* Table 4 (4) */ /* Homoskedastic */ reg exprop logmort latitude if neo == 0 predict v if e(sample) , resid ivreg gdp (exprop = logmort) latitude if neo == 0 predict e if e(sample) , resid correlate e v forvalues i = 0(1)5000 { quietly gen dep = gdp - ((`i'/1000) - 1)*exprop quietly reg dep logmort latitude if neo == 0 matrix A = e(b) matrix B = A[1,"logmort"] quietly test logmort , matvlc(V1) matrix C = (nullmat(C),B*inv(V1)*B') matrix D = (nullmat(D),`i'/1000 - 1) drop dep } matrix C = C' matrix D = D' svmat double C , name(duals1) svmat double D , name(betas1) gen pvals1 = chi2tail(duals1,1) gen interval1 = (pvals1 >= .95) gen ub1 = betas1 + 1/1000 gen lb1 = betas1 - 1/1000 sum ub1 lb1 if interval1 == 0 outsheet pvals1 duals1 betas1 using homo4.txt , replace drop e v pvals1 interval1 ub1 lb1 betas1 duals1 matrix drop A B C D /* Heteroskedastic */ reg exprop logmort latitude if neo == 0, robust predict v if e(sample) , resid ivreg gdp (exprop = logmort) latitude if neo == 0 , robust predict e if e(sample) , resid correlate e v forvalues i = 0(1)5000 { quietly gen dep = gdp - ((`i'/1000) - 1)*exprop quietly reg dep logmort latitude if neo == 0, robust matrix A = e(b) matrix B = A[1,"logmort"] quietly test logmort , matvlc(V1) matrix C = (nullmat(C),B*inv(V1)*B') matrix D = (nullmat(D),`i'/1000 - 1) drop dep } matrix C = C' matrix D = D' svmat double C , name(duals1) svmat double D , name(betas1) gen pvals1 = chi2tail(duals1,1) gen interval1 = (pvals1 >= .95) gen ub1 = betas1 + 1/1000 gen lb1 = betas1 - 1/1000 sum ub1 lb1 if interval1 == 0 outsheet pvals1 duals1 betas1 using hetero4.txt , replace drop e v pvals1 interval1 ub1 lb1 betas1 duals1 matrix drop A B C D /* Table 4 (5) */ /* Homoskedastic */ reg exprop logmort if africa == 0 predict v if e(sample) , resid ivreg gdp (exprop = logmort) if africa == 0 predict e if e(sample) , resid correlate e v forvalues i = 0(1)5000 { quietly gen dep = gdp - ((`i'/1000) - 1)*exprop quietly reg dep logmort if africa == 0 matrix A = e(b) matrix B = A[1,"logmort"] quietly test logmort , matvlc(V1) matrix C = (nullmat(C),B*inv(V1)*B') matrix D = (nullmat(D),`i'/1000 - 1) drop dep } matrix C = C' matrix D = D' svmat double C , name(duals1) svmat double D , name(betas1) gen pvals1 = chi2tail(duals1,1) gen interval1 = (pvals1 >= .95) gen ub1 = betas1 + 1/1000 gen lb1 = betas1 - 1/1000 sum ub1 lb1 if interval1 == 0 outsheet pvals1 duals1 betas1 using homo5.txt , replace drop e v pvals1 interval1 ub1 lb1 betas1 duals1 matrix drop A B C D /* Heteroskedastic */ reg exprop logmort if africa == 0, robust predict v if e(sample) , resid ivreg gdp (exprop = logmort) if africa == 0, robust predict e if e(sample) , resid correlate e v forvalues i = 0(1)5000 { quietly gen dep = gdp - ((`i'/1000) - 1)*exprop quietly reg dep logmort if africa == 0, robust matrix A = e(b) matrix B = A[1,"logmort"] quietly test logmort , matvlc(V1) matrix C = (nullmat(C),B*inv(V1)*B') matrix D = (nullmat(D),`i'/1000 - 1) drop dep } matrix C = C' matrix D = D' svmat double C , name(duals1) svmat double D , name(betas1) gen pvals1 = chi2tail(duals1,1) gen interval1 = (pvals1 >= .95) gen ub1 = betas1 + 1/1000 gen lb1 = betas1 - 1/1000 sum ub1 lb1 if interval1 == 0 outsheet pvals1 duals1 betas1 using hetero5.txt , replace drop e v pvals1 interval1 ub1 lb1 betas1 duals1 matrix drop A B C D /* Table 4 (6) */ /* Homoskedastic */ reg exprop logmort latitude if africa == 0 predict v if e(sample) , resid ivreg gdp (exprop = logmort) latitude if africa == 0 predict e if e(sample) , resid correlate e v forvalues i = 0(1)5000 { quietly gen dep = gdp - ((`i'/1000) - 1)*exprop quietly reg dep logmort latitude if africa == 0 matrix A = e(b) matrix B = A[1,"logmort"] quietly test logmort , matvlc(V1) matrix C = (nullmat(C),B*inv(V1)*B') matrix D = (nullmat(D),`i'/1000 - 1) drop dep } matrix C = C' matrix D = D' svmat double C , name(duals1) svmat double D , name(betas1) gen pvals1 = chi2tail(duals1,1) gen interval1 = (pvals1 >= .95) gen ub1 = betas1 + 1/1000 gen lb1 = betas1 - 1/1000 sum ub1 lb1 if interval1 == 0 outsheet pvals1 duals1 betas1 using homo6.txt , replace drop e v pvals1 interval1 ub1 lb1 betas1 duals1 matrix drop A B C D /* Heteroskedastic */ reg exprop logmort latitude if africa == 0, robust predict v if e(sample) , resid ivreg gdp (exprop = logmort) latitude if africa == 0 , robust predict e if e(sample) , resid correlate e v forvalues i = 0(1)5000 { quietly gen dep = gdp - ((`i'/1000) - 1)*exprop quietly reg dep logmort latitude if africa == 0, robust matrix A = e(b) matrix B = A[1,"logmort"] quietly test logmort , matvlc(V1) matrix C = (nullmat(C),B*inv(V1)*B') matrix D = (nullmat(D),`i'/1000 - 1) drop dep } matrix C = C' matrix D = D' svmat double C , name(duals1) svmat double D , name(betas1) gen pvals1 = chi2tail(duals1,1) gen interval1 = (pvals1 >= .95) gen ub1 = betas1 + 1/1000 gen lb1 = betas1 - 1/1000 sum ub1 lb1 if interval1 == 0 outsheet pvals1 duals1 betas1 using hetero6.txt , replace drop e v pvals1 interval1 ub1 lb1 betas1 duals1 matrix drop A B C D /* Table 4 (7) */ gen other = asia == 0 & africa == 0 & namer == 0 & samer == 0 /* Homoskedastic */ reg exprop logmort asia africa other predict v if e(sample) , resid ivreg gdp (exprop = logmort) asia africa other predict e if e(sample) , resid correlate e v forvalues i = 0(1)5000 { quietly gen dep = gdp - ((`i'/1000) - 1)*exprop quietly reg dep logmort asia africa other matrix A = e(b) matrix B = A[1,"logmort"] quietly test logmort , matvlc(V1) matrix C = (nullmat(C),B*inv(V1)*B') matrix D = (nullmat(D),`i'/1000 - 1) drop dep } matrix C = C' matrix D = D' svmat double C , name(duals1) svmat double D , name(betas1) gen pvals1 = chi2tail(duals1,1) gen interval1 = (pvals1 >= .95) gen ub1 = betas1 + 1/1000 gen lb1 = betas1 - 1/1000 sum ub1 lb1 if interval1 == 0 outsheet pvals1 duals1 betas1 using homo7.txt , replace drop e v pvals1 interval1 ub1 lb1 betas1 duals1 matrix drop A B C D /* Heteroskedastic */ reg exprop logmort asia africa other , robust predict v if e(sample) , resid ivreg gdp (exprop = logmort) asia africa other , robust predict e if e(sample) , resid correlate e v forvalues i = 0(1)5000 { quietly gen dep = gdp - ((`i'/1000) - 1)*exprop quietly reg dep logmort asia africa other , robust matrix A = e(b) matrix B = A[1,"logmort"] quietly test logmort , matvlc(V1) matrix C = (nullmat(C),B*inv(V1)*B') matrix D = (nullmat(D),`i'/1000 - 1) drop dep } matrix C = C' matrix D = D' svmat double C , name(duals1) svmat double D , name(betas1) gen pvals1 = chi2tail(duals1,1) gen interval1 = (pvals1 >= .95) gen ub1 = betas1 + 1/1000 gen lb1 = betas1 - 1/1000 sum ub1 lb1 if interval1 == 0 outsheet pvals1 duals1 betas1 using hetero7.txt , replace drop e v pvals1 interval1 ub1 lb1 betas1 duals1 matrix drop A B C D /* Table 4 (8) */ /* Homoskedastic */ reg exprop logmort latitude asia africa other predict v if e(sample) , resid ivreg gdp (exprop = logmort) latitude asia africa other predict e if e(sample) , resid correlate e v forvalues i = 0(1)5000 { quietly gen dep = gdp - ((`i'/1000) - 1)*exprop quietly reg dep logmort latitude asia africa other matrix A = e(b) matrix B = A[1,"logmort"] quietly test logmort , matvlc(V1) matrix C = (nullmat(C),B*inv(V1)*B') matrix D = (nullmat(D),`i'/1000 - 1) drop dep } matrix C = C' matrix D = D' svmat double C , name(duals1) svmat double D , name(betas1) gen pvals1 = chi2tail(duals1,1) gen interval1 = (pvals1 >= .95) gen ub1 = betas1 + 1/1000 gen lb1 = betas1 - 1/1000 sum ub1 lb1 if interval1 == 0 outsheet pvals1 duals1 betas1 using homo8.txt , replace drop e v pvals1 interval1 ub1 lb1 betas1 duals1 matrix drop A B C D /* Heteroskedastic */ reg exprop logmort latitude asia africa other , robust predict v if e(sample) , resid ivreg gdp (exprop = logmort) latitude asia africa other , robust predict e if e(sample) , resid correlate e v forvalues i = 0(1)5000 { quietly gen dep = gdp - ((`i'/1000) - 1)*exprop quietly reg dep logmort latitude asia africa other , robust matrix A = e(b) matrix B = A[1,"logmort"] quietly test logmort , matvlc(V1) matrix C = (nullmat(C),B*inv(V1)*B') matrix D = (nullmat(D),`i'/1000 - 1) drop dep } matrix C = C' matrix D = D' svmat double C , name(duals1) svmat double D , name(betas1) gen pvals1 = chi2tail(duals1,1) gen interval1 = (pvals1 >= .95) gen ub1 = betas1 + 1/1000 gen lb1 = betas1 - 1/1000 sum ub1 lb1 if interval1 == 0 outsheet pvals1 duals1 betas1 using hetero8.txt , replace drop e v pvals1 interval1 ub1 lb1 betas1 duals1 matrix drop A B C D log close