多個(弱)工具變量如何應對-IV-mivreg?

2021-02-15 Stata連享會

🍎 連享會主頁:lianxh.cn

New! lianxh 命令發布了:   GIF 動圖介紹
隨時搜索 Stata 推文、教程、手冊、論壇,安裝命令如下:
  . ssc install lianxh

連享會 · 最受歡迎的課


🍓 2021 Stata 寒假班
⌚ 2021 年 1.25-2.4

🌲 主講:連玉君 (中山大學);江艇 (中國人民大學)

👉 課程主頁:https://gitee.com/arlionn/PX

作者: 王如玉 (中國人民銀行金融研究所)
郵箱: 15242968@qq.com

編者按: 本文摘譯自以下文章,特此致謝!

Source:  Anatolyev S, Skolkova A. Many instruments: Implementation in Stata[J]. The Stata Journal, 2019, 19(4): 849-866. -Link-

溫馨提示: 文中連結在微信中無法生效。請點擊底部「閱讀原文」。

目錄

1. 背景

2. LIML 方法

3. mivreg 命令

4. 模擬運行案例

4.1 數據生成

4.2 蒙特卡洛模擬

4.3 運行結果比較

5. 真實數據案例

6. 參考文獻

7. 相關推文


1. 背景

在實證研究中,工具變量經常被認為是解決內生性問題的有效方法。但是隨著理論發展,學者也發現在弱工具變量、以及多工具變量等情況下,兩階段最小二乘 (2SLS) 無法得到一致估計。由此,學者開始提出新的估計方法,例如有限信息最大似然法 (LIML)、以及偏差校正二階段最小二乘法 (bias-corrected 2SLS) 等,並在 LIML 方法基礎上,提出同方差和異方差不同情況下的模型。但上述方法並未推廣開來,直到 Stata 中 mivreg 命令的發布。

為此,本文將為大家簡要介紹有限信息最大似然法 (LIML) 和 mivreg 命令的實現。

2. LIML 方法

假定回歸方程如下:

其中,

其中,

其中,

2.1 同方差的情況

其中,

數學上,可以等價為解以下問題:

其中,

但 LIML 估計值有一個缺陷,它的低階矩也是不存在的。Fuller (1977) 的校準解決了這個問題,如下式定義

令 LIML 或 FULL 的殘差矢量為

傳統的

偏誤校正的

在誤差正態性或

在誤差非正態性以及

2.2 異方差的情況

同上,Fuller (1977) 對異方差穩健的 LIML 估計值,即 HLIM 估計值,進行了校準,校準後的估計值稱為 HFUL。

Chao 等 (2014) 將

其中,

這個改進版的

3. mivreg 命令

在 Stata 命令窗口中輸入如下命令,即可安裝 mivreg 命令,並獲取下文提到的案例的完整 dofile 。

net describe st0580, from(http://www.stata-journal.com/software/sj19-4)
net install st0580
net get st0580

mivreg 命令的語句和參數簡單介紹如下:

mivreg depvar [indepvars] (varlist1 = varlist2) [if] [in] [, hom het robust fuller level(#)]

depvar 為被解釋變量,indepvars 為解釋變量,varlist1 為內生變量,varlist2 為工具變量;hom 為同方差的情況,使用 LIML (默認) 或 FULL (與 fuller 選項同時使用) 的估計值;het 為異方差的情況,使用 HLIM(默認)或 HFUL (與 fuller 選項同時使用) 的估計值;fuller 為 Fuller 校正,將得到 FULL (與 hom 選項同時使用) 或 HFUL (與 het 選項同時使用) 的估計值;level(#) 為置信區間設置,默認為 95%。

4. 模擬運行案例4.1 數據生成

本節將用 Hausman 等 (2012) 生成的模擬數據集展示 mivreg 的使用。估計方程為:

第一階段方程為:

其中,

其中,

其中,同方差的情況下

值得注意的是,集中度 (concentration parameter) 是衡量工具變量強度的一種參數。設模型為

4.2 蒙特卡洛模擬

蒙特卡洛模擬是使用計算機進行重複的隨機抽樣來產生模擬概率分布的數據。本文使用的 Stata 的完整模擬程序見前文提及的 dofile 。例如,同方差情形下的蒙特卡洛模擬,以及使用 mivreg 與 ivregress 命令以不同方法對模擬數據進行回歸的命令如下:

clear
set trace off
set matsize 10000

local portion = 1000 // 此參數表示一個步驟進行多少次重複迭代,如果想進行x次模擬,則在此輸入x/10
local launch = 0 // 此參數表示進行多少步驟,建議設為0

local i_step = 9
local i_start = `launch' * (`i_step' + 1) + 1

forvalues i = `i_start'/`=`i_start' + `i_step'' {
clear mata

scalar l = 30
set obs 400

matrix repl = J(`portion', 7, 0)
matrix pval_x = J(`portion', 9, 0)
matrix pval_x_c = J(`portion', 9, 0)
matrix pval_spec = J(`portion', 9, 0)

qui gen z1 = .
qui gen u2 = .
qui gen v1 = .
qui gen v2 = .
qui gen ee = .
qui gen x = .
qui gen y = .
qui gen one = 1

di `i'
local start_seed = `portion' * (`i' - 1) + 1
local end_seed = `i' * `portion'

forvalues k = `start_seed'/`end_seed' {
set seed `k'

scalar phi = 0.8
scalar gam = sqrt(32/_N)
tempname beta10 beta20
scalar `beta10' = 1
scalar `beta20' = 1

qui replace z1 = rnormal()
qui replace u2 = rnormal()

qui replace v1 = rnormal()
qui replace v2 = 0.86 * rnormal()

qui replace ee = 0.30 * u2 + sqrt((1 - 0.30^2) / (phi^2 + 0.86^4)) * (phi * v1 + 0.86 * v2)

qui replace x = gam * z1 + u2
qui replace y = `beta10' + `beta20' * x + ee

forvalues t = 2/4 {
if mod(`k', `portion') == 1 & mod(`i', `=`i_step' + 1') == 1 {
gen z`t' = z1^`t'
}
else {
qui replace z`t' = z1^`t'
}
}

forvalues t = 5/29 {
if mod(`k', `portion') == 1 & mod(`i', `=`i_step' + 1') == 1 {
gen d`t' = round(runiform())
gen z`t' = d`t' * z1
}
else {
qui replace d`t' = round(runiform())
qui replace z`t' = d`t' * z1
}
}

qui ivregress 2sls y one (x = z*), nocons // 2SLS
matrix beta = e(b)
matrix repl[`=`k' - (`i' - 1)*`portion'' , 1] = beta[1,1]
qui estat overid
matrix pval_spec[`=`k' - (`i' - 1)*`portion'' , 1] = r(p_basmann) // p-value for Basmann χ2 statistic
qui test x = 1
matrix pval_x[`=`k' - (`i' - 1)*`portion'', 1] =r(p)
qui test x = one = 1
matrix pval_x_c[`=`k' - (`i' - 1)*`portion'', 1] = r(p)

qui mivreg y one (x = z*), hom // non-robust LIML
matrix beta = e(b)
matrix repl[`=`k' - (`i' - 1)*`portion'' , 2] = beta[1,1]
matrix pval_spec[`=`k' - (`i' - 1)*`portion'' , 2] = e(jpv)
qui test x = 1
matrix pval_x[`=`k' - (`i' - 1)*`portion'', 2] = r(p)
qui test x = one = 1
matrix pval_x_c[`=`k' - (`i' - 1)*`portion'', 2] = r(p)

qui mivreg y one (x = z*), hom fuller // non-robust FULL
matrix beta = e(b)
matrix repl[`=`k' - (`i' - 1)*`portion'' , 3] = beta[1,1]
matrix pval_spec[`=`k' - (`i' - 1)*`portion'' , 3] = e(jpv)
qui test x = 1
matrix pval_x[`=`k' - (`i' - 1)*`portion'', 3] = r(p)
qui test x = one = 1
matrix pval_x_c[`=`k' - (`i' - 1)*`portion'', 3] = r(p)

qui mivreg y one (x = z*), hom robust // robust LIML
matrix pval_spec[`=`k' - (`i' - 1)*`portion'' , 4] = e(jpv)
qui test x = 1
matrix pval_x[`=`k' - (`i' - 1)*`portion'', 4] = r(p)
qui test x = one = 1
matrix pval_x_c[`=`k' - (`i' - 1)*`portion'', 4] = r(p)

qui mivreg y one (x = z*), hom robust fuller // robust FULL
matrix pval_spec[`=`k' - (`i' - 1)*`portion'' , 5] = e(jpv)
qui test x = 1
matrix pval_x[`=`k' - (`i' - 1)*`portion'', 5] = r(p)
qui test x = one = 1
matrix pval_x_c[`=`k' - (`i' - 1)*`portion'', 5] = r(p)

qui mivreg y one (x = z*), het robust // HLIM
matrix beta = e(b)
matrix repl[`=`k' - (`i' - 1)*`portion'' , 4] = beta[1,1]
matrix pval_spec[`=`k' - (`i' - 1)*`portion'' , 6] = e(jpv)
qui test x = 1
matrix pval_x[`=`k' - (`i' - 1)*`portion'', 6] = r(p)
qui test x = one = 1
matrix pval_x_c[`=`k' - (`i' - 1)*`portion'', 6] = r(p)

qui mivreg y one (x = z*), het robust fuller // HFUL
matrix beta = e(b)
matrix repl[`=`k' - (`i' - 1)*`portion'' , 5] = beta[1,1]
matrix pval_spec[`=`k' - (`i' - 1)*`portion'' , 7] = e(jpv)
qui test x = 1
matrix pval_x[`=`k' - (`i' - 1)*`portion'', 7] = r(p)
qui test x = one = 1
matrix pval_x_c[`=`k' - (`i' - 1)*`portion'', 7] = r(p)

qui ivregress liml y one (x = z*), nocons // LIML
matrix beta = e(b)
matrix repl[`=`k' - (`i' - 1)*`portion'' , 6] = beta[1,1]
qui estat overid
matrix pval_spec[`=`k' - (`i' - 1)*`portion'' , 8] = r(p_basmann)
qui test x = 1
matrix pval_x[`=`k' - (`i' - 1)*`portion'', 8] =r(p)
qui test x = one = 1
matrix pval_x_c[`=`k' - (`i' - 1)*`portion'', 8] = r(p)

qui ivregress gmm y one (x = z*), nocons // GMM
matrix beta = e(b)
matrix repl[`=`k' - (`i' - 1)*`portion'' , 7] = beta[1,1]
qui estat overid
matrix pval_spec[`=`k' - (`i' - 1)*`portion'' , 9] = r(p_HansenJ)
qui test x = 1
matrix pval_x[`=`k' - (`i' - 1)*`portion'', 9] =r(p)
qui test x = one = 1
matrix pval_x_c[`=`k' - (`i' - 1)*`portion'', 9] = r(p)

if mod(`k',10) == 0 {
di `k'
}
}


if `i' == 1 {
matrix many_repl = repl
matrix many_pval_x = pval_x
matrix many_pval_x_c = pval_x_c
matrix many_pval_spec = pval_spec
}
else {
matrix many_repl = many_repl \ repl
matrix many_pval_x = many_pval_x \ pval_x
matrix many_pval_x_c = many_pval_x_c \ pval_x_c
matrix many_pval_spec = many_pval_spec \ pval_spec
}

drop z1 u2 v1 v2 ee x y one
}

4.3 運行結果比較

本節將比較在同方差、異方差情形下各進行 10000 次回歸的結果。

首先來看參數估計值。下表展示了 ivregress 計算的 2SLS、LIML 和 GMM 的估計值的模擬分布百分比,以及 mivreg 計算的 LIML、FULL、HLIM 和 HFUL 估計值的模擬分布百分比。


Estimator | Homoskedastic case | Heteroskedastic case

| 5% | 25% | 50% | 75% | 95% | 5% | 25% | 50% | 75% | 95%

command ivregress

2SLS | 0.93 | 1.06 | 1.14 | 1.23 | 1.35 | 0.85 | 1.02 | 1.14 | 1.26 | 1.43
GMM | 0.91 | 1.05 | 1.14 | 1.23 | 1.37 | 0.85 | 1.02 | 1.14 | 1.26 | 1.42
LIML | 0.47 | 0.83 | 1.00 | 1.16 | 1.42 |-4.08 |-0.27 | 0.49 | 1.07 | 4.48

command mivreg

LIML | 0.47 | 0.83 | 1.00 | 1.16 | 1.42 |-4.08 |-0.27 | 0.49 | 1.07 | 4.48
FULL | 0.52 | 0.84 | 1.01 | 1.17 | 1.41 |-1.14 |-0.03 | 0.56 | 1.09 | 2.77
HLIM | 0.43 | 0.82 | 1.00 | 1.17 | 1.43 | 0.15 | 0.76 | 1.01 | 1.22 | 1.62
HFUL | 0.52 | 0.84 | 1.01 | 1.17 | 1.43 | 0.30 | 0.79 | 1.02 | 1.22 | 1.60

2SLS 和 GMM 估計值相似,且總是向右偏誤的。在同方差的情形下,其他估計值都能得出無偏誤的結果。LIML 估計值比 HLIM 估計值略向中心集中,因此有較高的效率。Fuller 校準值都更向中心集中,說明它們更抵制離群值。在異方差的情形下,HLIM 和 HFUL 都是中位數無偏誤的。它們的 Fuller 校準值也更集中且對稱。

原文也列出了對估計值的實際拒絕率和規範檢驗結果的比較,得出的結論是,傳統的 2SLS、GMM 和 LIML 的規範檢驗值存在嚴重失真,而 mivreg 的檢驗值比較準確。

下表展示了各種檢驗的實際拒絕率。

ivregress 生成的 2SLS 和 LIML 檢驗有兩種形式:非穩健的和異方差穩健的 (這裡的穩健實際對大量工具變量並不穩健)。在特徵檢驗中,使用了 Basmann (1957) 方差估計值。mivreg 生成的檢驗值則使用了如下的估計值和穩健選項:非穩健的 LIML、非穩健的 FULL、穩健的 LIML、穩健的 FULL、HLIM 和 HFUL。

可以預見,2SLS、GMM 和 LIML 方法的傳統的參數檢驗產生了較嚴重的偏誤。這個例子的偏誤還不是很大,但通常可能產生更大的偏誤,詳見 Anatolyev 和 Gospodinov (2011)。在同方差的情況下,所有的 mivreg 檢驗產生的偏誤都顯著減小,但 「異方差穩健」 的版本看來更可靠。在異方差的情況下,理論上只有 「異方差穩健」 的版本是有效的,且其拒絕率近似於名義拒絕率。Fuller 校準版本沒有對拒絕率產生顯著影響。如果我們依賴於 「同方差」 的特徵檢驗,但實際上同方差假設並不成立,在此情形下特徵檢驗結果也顯示了巨大的偏誤。因此我們在異方差的情形下不能使用同方差的特徵檢驗,否則就會在工具變量有效的情形下,卻得到無效的信號。

5. 真實數據案例

本節使用經典的已婚婦女勞動力產出的真實數據 (Mroz,1987) 展示。其中,被解釋變量為工作時長 hours,唯一的內生解釋變量為工資的對數 lwage,6 個外生控制變量 nwifeinceducagekidslt6kidsge6,以及常數 1。此外還有 8 個基礎工具變量 experexpersqfatheducmotheduchushrshusagehuseduc,以及 mtr,合計 14 個工具變量。

作為一個整體,8 個基礎工具變量的強度是高的:第一階段回歸的 F 統計值為 183.5。為了提升估計的效率,充分利用工具變量的信息,我們還考慮了一套擴展的工具變量——基礎工具變量加上所有它們的交互項,因此總共有 92 個工具變量。工具變量數量與樣本量之比很大,約為 0.215。雖然傳統工具適用於基礎的工具變量集,但擴展的工具變量集顯然需要能夠處理多個工具變量的系統。

下表展示了對工資對數的各模型的估計值,包括 OLS、異方差穩健 2SLS (使用基礎和擴展工具變量集),以及 3 個多工具變量穩健的估計方法 LIML、FULL 和 HFUL (使用擴展工具變量集)。


Options | Estimator | Instruments | Estimate | (Standard error)

command reg

robust | OLS | − | −17.4 | (81.4)

command ivregress

robust | 2SLS | basic only | 1179.1 | (185.2)
robust | 2SLS | extended | 536.4 | (101.5)

command mivreg

hom | LIML | extended | 1120.6 | (195.3)
hom robust fuller | FULL | extended | 1110.0 | (197.2)
het robust fuller | HFUL | extended | 1058.3 | (170.5)

顯然,由於未考慮內生性,使用 reg 命令得到的 OLS 估計值是不一致的,其數值甚至是負的,具有極大的內生性偏誤。兩個 2SLS 的估計值之間具有超出兩倍的差異,顯示了傳統工具及 ivregress 命令在多個工具變量的情況下不可行。而使用 mivreg 得到的 LIML、FULL 和 HFUL 估計值與 2SLS 僅使用基礎工具變量時得到的估計值接近。在同方差情形下的 LIML 和 FULL 估計值,與異方差情形下的 HLIM 估計值之間有一點差異,雖然不大,但已使得 HFUL 估計值更加可靠。與 2SLS 相比,HLIM 的較小的標準差,可以理解為使用了擴展的工具變量集後獲得的效率提升。

使用 LIML 估計:

*數據下載地址:
*https://gitee.com/arlionn/data/raw/master/data01/mroz.dta
*http://www.stata.com/data/jwooldridge/eacsap/mroz.dta

use "http://www.stata.com/data/jwooldridge/eacsap/mroz.dta", clear
* 或 bcuse mroz
unab vars: nwifeinc educ age kidslt6 kidsge6 exper expersq fatheduc motheduc hushrs husage huseduc mtr
local nvar: word count `vars´
forval i = 1/`nvar´ {
forval j = 1/`=`i´-1´ {
local x : word `i´ of `vars´
local y : word `j´ of `vars´
generate `x´X`y´ = `x´ * `y´
}
}
generate one = 1
mivreg hours nwifeinc educ age kidslt6 kidsge6 one (lwage = nwifeinc educ age kidslt6 kidsge6 one exper expersq fatheduc motheduc hushrs husage huseduc mtr *X*) if inlf==1 , hom

運行結果為:

MIVREG estimation (HOM)

First-stage summary Number of obs = 428
F( 7, 421) = 95.74
F( 86, 336) = 2.07 Prob > F = 0.0000
Prob > F = 0.0000 R-squared = -0.5157
R-squared = 0.8471 Adj R-squared = -0.5373
Root MSE = 1.1e+03
LIML estimation
Bekker variance estimation

---
hours | Coef. Std. Err. t P>|t| [95% Conf. Interval]
---+----
lwage | 1120.595 195.3494 5.74 0.000 736.6134 1504.577
nwifeinc | -7.890468 5.261349 -1.50 0.134 -18.23225 2.451317
educ | -133.1851 31.79141 -4.19 0.000 -195.6748 -70.69543
age | -9.954741 7.918058 -1.26 0.209 -25.51859 5.609111
kidslt6 | -246.5892 143.8619 -1.71 0.087 -529.3663 36.18793
kidsge6 | -65.87682 44.77805 -1.47 0.142 -153.8932 22.13958
one | 2345.98 487.9451 4.81 0.000 1386.868 3305.093
---
Instrumented: lwage
Instruments: nwifeinc educ age kidslt6 kidsge6 one exper expersq fatheduc
motheduc hushrs husage huseduc mtr educXnwifeinc ageXnwifeinc
ageXeduc kidslt6Xnwifeinc kidslt6Xeduc kidslt6Xage
kidsge6Xnwifeinc kidsge6Xeduc kidsge6Xage kidsge6Xkidslt6
experXnwifeinc experXeduc experXage experXkidslt6 experXkidsge6
expersqXnwifeinc expersqXeduc expersqXage expersqXkidslt6
expersqXkidsge6 expersqXexper fatheducXnwifeinc fatheducXeduc
fatheducXage fatheducXkidslt6 fatheducXkidsge6 fatheducXexper
fatheducXexpersq motheducXnwifeinc motheducXeduc motheducXage
motheducXkidslt6 motheducXkidsge6 motheducXexper
motheducXexpersq motheducXfatheduc hushrsXnwifeinc hushrsXeduc
hushrsXage hushrsXkidslt6 hushrsXkidsge6 hushrsXexper
hushrsXexpersq hushrsXfatheduc hushrsXmotheduc husageXnwifeinc
husageXeduc husageXage husageXkidslt6 husageXkidsge6
husageXexper husageXexpersq husageXfatheduc husageXmotheduc
husageXhushrs huseducXnwifeinc huseducXeduc huseducXage
huseducXkidslt6 huseducXkidsge6 huseducXexper huseducXexpersq
huseducXfatheduc huseducXmotheduc huseducXhushrs huseducXhusage
mtrXnwifeinc mtrXeduc mtrXage mtrXkidslt6 mtrXkidsge6 mtrXexper
mtrXexpersq mtrXfatheduc mtrXmotheduc mtrXhushrs mtrXhusage
mtrXhuseduc
---
AG specification test:
J statistic = 0.1748
Prob > J = 0.8059
---

使用 FULL 估計,選項 hom, robust, fuller,命令為:

mivreg hours nwifeinc educ age kidslt6 kidsge6 one (lwage = nwifeinc educ ///
age kidslt6 kidsge6 one exper expersq fatheduc motheduc hushrs husage ///
huseduc mtr *X*) if inlf==1 , hom robust fuller

使用 HFUL 估計,選項 het, robust, fuller,命令為:

mivreg hours nwifeinc educ age kidslt6 kidsge6 one (lwage = nwifeinc educ ///
age kidslt6 kidsge6 one exper expersq fatheduc motheduc hushrs husage ///
huseduc mtr *X*) if inlf==1 , het robust fuller

6. 參考文獻

溫馨提示: 文中連結在微信中無法生效。請點擊底部「閱讀原文」。

Anatolyev, S. 2019. Many instruments and/or regressors: A friendly guide. Journal of Economic Surveys 33: 689–726.Anatolyev, S., and N. Gospodinov. 2011. Specification testing in models with many instruments. Econometric Theory 27: 427–441. -Link-Anatolyev, S., and P. Yaskov. 2017. Asymptotics of diagonal elements of projection matrices under many instruments/regressors. Econometric Theory 33: 717–738. -Link-Angrist, J. D., and A. B. Krueger. 2001. Instrumental variables and the search for identification: From supply and demand to natural experiments. Journal of Economic Perspectives 15: 69–85. -Link-Basmann, R. L. 1957. A generalized classical method of linear estimation of coefficients in a structural equation. Econometrica 25: 77–83. -Link-Bekker, P. A. 1994. Alternative approximations to the distributions of instrumental variable estimators. Econometrica 62: 657–681. -Link-Chao, J. C., J. A. Hausman, W. K. Newey, N. R. Swanson, and T. Woutersen. 2014. Testing overidentifying restrictions with many instruments and heteroskedasticity. Journal of Econometrics 178: 15–21. -Link-Fuller, W. A. 1977. Some properties of a modification of the limited information estimator. Econometrica 45: 939–954. -Link-Hansen, C., J. Hausman, and W. K. Newey. 2008. Estimation with many instrumental variables. Journal of Business & Economics Statistics 26: 398–422. -Link-Hausman, J. A., W. K. Newey, T. Woutersen, J. C. Chao, and N. R. Swanson. 2012. Instrumental variable estimation with heteroskedasticity and many instruments. Quantitative Economics 3: 211–255. -Link-Lee, Y., and R. Okui. 2012. Hahn–Hausman test as a specification test. Journal of Econometrics 167: 133–139. -Link-Mroz, T. A. 1987. The sensitivity of an empirical model of married women’s hours of work to economic and statistical assumptions. Econometrica 55: 765–799. -Link-

7. 相關推文

Note: 產生如下推文列表的命令為:
  lianxh 工具變量 IV, m
安裝最新版 lianxh 命令:
  ssc install lianxh, replace

溫馨提示: 文中連結在微信中無法生效。請點擊底部「閱讀原文」。

Stata新命令-pdslasso:眾多控制變量和工具變量如何挑選?IV-工具變量法:第一階段係數符號確定時的小樣本無偏估計IV 經典:尋找 IV 的足跡——Card(1993)Abadie新作:簡明IV,DID,RDD教程和綜述

連享會 · 最受歡迎的課


🍓 2021 Stata 寒假班
⌚ 2021 年 1.25-2.4

🌲 主講:連玉君 (中山大學);江艇 (中國人民大學)

👉 課程主頁:https://gitee.com/arlionn/PX

關於我們

🍎 連享會 ( 主頁:lianxh.cn ) 由中山大學連玉君老師團隊創辦,定期分享實證分析經驗。👉 直達連享會:百度一下:連享會】即可直達連享會主頁。亦可進一步添加 主頁,知乎,面板數據,研究設計 等關鍵詞細化搜索。

New! lianxh 命令發布了:    GIF 動圖介紹
隨時搜索連享會推文、Stata 資源,安裝命令如下:
  . ssc install lianxh
使用詳情參見幫助文件 (有驚喜):
  . help lianxh

相關焦點

  • 應用計量之一——工具變量(IV)
    因此,儘管實踐中(15.15)與(15.17)之間的差異很大,我們不能說該差異在統計上顯著。z與x之間的弱相關可能產生甚至是更加嚴重的後果:即使z與u只是適度相關,IV估計量也會有大的漸近偏誤。這就是左老師講的弱工具變量問題。理論上說,Z必須是嚴格外生的,但是如果工具變量與內生變量有一點相關,即使很小,仍然可能造成估計的問題。
  • 工具變量IV與內生性處理的精細解讀
    IV的問題值得注意的是 儘管當z與u不相關,而z與x存在著正的或負的相關時,IV是一致性的,但當z與x只是弱相關時IV估計值可能有大的標準誤。z與x之間的弱相關可能產生甚至是更加嚴重的後果:即使z與u只是適度相關,IV估計量也會有大的漸近偏誤。這就是左老師講的弱工具變量問題。
  • twostepweakiv:弱工具變量有多弱?
    簡介1.1 什麼是弱工具變量問題1.2 傳統弱工具變量檢驗中的不足1.3 twostepweakiv 命令2. 兩步有效置信集構建的理論模型2.1 比較不同置信集的覆蓋率2.2 有效置信集的構建3. twostepweakiv 命令介紹4. 案例演示5.
  • IV-工具變量法:第一階段係數符號確定時的小樣本無偏估計
    引言工具變量是經濟學實證研究中應用最為廣泛的幾種方法之一。關於 IV,連享會此前已發布了賭片提問社區有過以下一些資料,感興趣的小夥伴們可以參考:"Stata: 工具變量法 (IV) 也不難呀!" 傳統工具變量的統計推斷基於大樣本理論,即在給定工具變量和內生變量強相關關係情況下,樣本趨於無窮大時,2SLS 估計量是一致估計。
  • 一文讀懂內生性與工具變量法知識大全
    我們回顧一下,找到的工具變量需要能夠很好的代表內生解釋變量的信息,也就是工具變量與內生解釋變量的相關性,若是內生解釋變量與工具變量只存在微弱的相關性,這就存在弱工具變量問題了。如何檢驗呢,在2SLS後用estat firststage命令來檢驗若工具變量的問題,若是對應的統計量的概率值小於0.05,則認為工具變量是合適的,是一個較好的工具變量,反之則認為存在弱工具變量的問題 。
  • Stata:內生性與工具變量一文讀懂(附完整do文檔)
    注意:此部分命令主要結合工具變量法:Stata操作及應用線性模型的內生性與工具變量操作及應用當我們遇見多個內生變量的時候,需要考慮工具變量的個數,以確保所有的變量都能被識別,也就是考慮工具變量的個數與內生變量的個數,這也就是一般所說的識別檢驗,這裡主要分為三種,即工具變量的個數與內生變量的個數大小比較,小於,等於,大於。
  • 尋找工具變量
    z與x之間的弱相關可能產生甚至是更加嚴重的後果:即使z與u只是適度相關,IV估計量也會有大的漸近偏誤。這就是左老師講的弱工具變量問題。理論上說,Z必須是嚴格外生的,但是如果工具變量與內生變量有一點相關,即使很小,仍然可能造成估計的問題。Z和X關係越小,這個工具變量就越有風險,這個叫弱工具變量。
  • SAS實現批量計算字符型變量的IV值
    IV,註:字符型變量不需進行處理。創建creditcard數據集:options mlogic mprint;%let dir=C:\Users\toshiba\Desktop\放一些文檔\ScorecardDev\Examples;%include "&dir\CC_Dataset.sas";批量計算字符型變量的IV值:%macro iv_char();
  • xtseqreg:面板模型如何估計不隨時間變化的變量
    估計流程與原理xtseqreg 命令的主要目的是估計帶有非時變變量的線性(動態)面板數據模型。概括而言,估計流程分為兩階段,在第一階段只對時變變量回歸估計其係數,並提取回歸的殘差,然後在第二階段將該殘差對非時變變量進行回歸,獲取非時變變量的係數。
  • 面板數據、工具變量選擇和Hausman檢驗若干問題,這篇文章終於說清楚了!
    如果選了多個IV,就用F TEST看其是否都不顯著。同時,如果在多個IV中,有一個是確定為外生的,那麼,可以用Sargan test ofoveridentifying restrictions來檢驗其他的IV是不是確實是外生的。3, 如果上述都沒有問題,做一下IV回歸。
  • 內生變量的交乘項如何處理?
    事實上,我們很難控制類似的需求衝擊,因數據資源有限,添加足夠多的控制變量也是一件非常困難的事,因此我們需要用工具變量法來應對內生性問題。進一步,如果模型中包含了內生變量的交乘項,在實證操作中又該如何處理?
  • 互助問答第68期:分組檢驗和邊際效應問題、ivprobit交乘項設計
    另外,建議你還是放一個全樣本的回歸,加入城市虛擬變量,以及城市虛擬變量與network的交互作用來進行檢驗,這樣更能識別效果。(2)Probit模型的係數顯著性與邊際效應的顯著性不是等價的。不知道你算邊際效應的時候是怎麼算的,是不是at mean,這些都會影響結果。你把邊際效應的公式以及方差寫下來,就知道不一定具有相同的顯著性。
  • 【陸銘】面板數據、工具變量選擇和HAUSMAN檢驗的若干問題+雙重差分學習手冊
    1, IV應該儘量是外生的(如歷史/自然/氣候/地理之類),它應該在理論上對被解釋變量(以下稱Y)沒有直接影響,但應該通過影響被工具的變量(以下稱X)而間接影響被解釋變量Y。2,  如果上述理論邏輯通的話,將內生變量X作為解釋變量,IV和其他變量(X2)作為解釋變量,看IV是否顯著,它應該顯著。
  • 風控模型中的變量替換
    今天我們再介紹另一種風控模型開發過程中也常出現的情況,當遇到變量維度缺失的情況下,如何挑選更合適的變量進行替換。先談談變量缺失會在什麼情況會出現?在以下分析內容中,會看到,直接捨棄變量,造成模型效果的大幅下降,我們真不想看到。不能捨棄,那就只能補充,以下我們來談談如何補充也即替換變量問題。
  • DamnVulnerableCryptoApp:一款功能強大的弱加密實現檢測工具
    DamnVulnerableCryptoApp來查看、測試或利用目標應用程式鐘的弱加密實現,而密碼學初學者們也可以利用該工具在無需深入了解加密背後數學知識的情況下,來學習關於密碼學的更多知識。如果你想了解更多關於加密方面的知識,如果你想知道加密攻擊是如何執行的,如果你想保護你代碼的安全,但是你又對加密算法背後的數學知識感到厭倦的話,DamnVulnerableCryptoApp就是你最佳的選擇。注意事項:該項目目前正在緊張開發階段,因此部分功能可能不完整或不穩定!
  • 問卷數據的因果關係推斷 —工具變量模型在SPSS, R及Mplus中的實現
    也許看到這裡覺得有點異想天開,我們不禁要問,那如何找到這些「不純的部分」,自變量可能受到的影響太多了……工具變量模型就是要找到這樣一些變量z導致了x的變化,但是並不會受到缺失變量的影響。2.2 常見的工具變量人口學基本 信息,人格和認知能力都可以作為工具變量。
  • 如果同時聲明多個變量
    如果同時聲明多個變量,可以用以下語句Suba()Dima As IntegerDimb As IntegerDimc如何檢查是否聲明成功呢?可以使用typename函數來判斷。Msgbox typename(c)可以看出數據類型。
  • 查看伺服器Application/Session變量工具
    正在閱讀:查看伺服器Application/Session變量工具查看伺服器Application/Session變量工具2004-02-14 09:33出處:CSDN作者:alcoholwang>  經常寫ASP,需要定義Application變量、Session變量,有時要檢查正確性。雖然網上有類似得程序,但是發現有很多不足,所以自己寫了個。
  • Stata:內生變量和它的交乘項
    事實上,我們很難控制類似的需求衝擊,因數據資源有限,添加足夠多的控制變量也是一件非常困難的事,因此我們需要用工具變量法來應對內生性問題。進一步,如果模型中包含了內生變量的交乘項,在實證操作中又該如何處理?