能否用具體的例子解釋一下 (Model-based) Structural Estimation?

背景:

(1)雖然知乎中關於Structural econometrics v.s. Reduced-form econometrics已經有一些問題和相關答案了,例如:到底什麼是 「reduced form」 ?和 「structural form」 區別在哪裡? - 宏觀經濟學,以及目前社會科學實證研究中的「因果識別」都有哪些方法和新發展? - 慧航的回答。但是,由於這個問題對於很多經濟學學生很有意義,而已有的討論更多地是抽象地探討,需要更一些具體的例子來深入討論。

(2)雖然這個領域已經有一本經典教材《An Introduction to the Structural Econometrics of Auction Data》,但這屬於比較高階的博士生教材,仍然缺少更加適合入門的教材。

(3)深深地希望已經入門的前輩們能夠在此分享一下理解和經驗。希望能夠促進知乎上對這個問題系統地有建設性地討論。

(4) 此外,也希望討論一下computational方面的問題。Structural estimation對編程要求有多高?能用哪些軟體實現呢?或許在討論具體實例的時候,可以討論一下這個方面。

另外,以下列出了一些我搜索到的學習資料:

Peter C. Reiss and Frank A. Wolak:

https://web.stanford.edu/group/fwolak/cgi-bin/sites/default/files/files/Structural%20Econometric%20Modeling_Rationales%20and%20Examples%20From%20Industrial%20Organization_Reiss,%20Wolak.pdf

Toni M. Whited:

http://toni.marginalq.com/FMA.pdf

Simon Quinn:

http://users.ox.ac.uk/~kebl2698/TeachingQM.pdf

Matthew Shum:

http://people.hss.caltech.edu/~mshum/gradio/single-dynamics1.pdf


這個問題很大,試著從IO角度來答一發,順便複習下兩年前學的東西。IO可以說引領了Structural的發展,比較有代表性。以下的例子基於經典的Bresnahan Reiss在90年代初的幾篇paper,包括90年RES和91年JPE等。

Entry問題簡單來說是這樣的:假設你是某種產品/服務的生產者,比如理髮師。與你的無數個潛在的理髮師同行一樣,你們都面對著許多個市場(比如全國的各個社區)。你選擇進入哪個市場的時候,要考慮市場需求,包括市場大小、彈性。另一方面,成本也很重要,包括邊際成本如電費水費,和固定成本比如租金等。這些用來構造市場均衡的基本變數是如何決定的?這就是所謂模型的primitives。此外,注意到你的決策和你同行的決策是互相影響的,因此決策時需要考慮也包括有多少同行以及同行對競爭是如何反應的。這個competitive conduct也可以被model為一個primitive。

我們加一些假設來找均衡。假設如下:

  • 生產者都是同質的,成本一樣,也就是說每個理髮店都是一位理髮師開的個體戶;
  • 需求的彈性一樣,只有市場大小(社區人口)區別;
  • 市場與市場之間是隔離的。

可以解出來均衡是這樣的:社區人口直接決定了這個社區的理髮店數量。打個比方,如果一個壟斷的理髮師每個月需要給1000人理髮才能保證break-even(未來賺的全部利潤在discount後能夠支付固定成本),又假設平均每人每月理髮一次,那麼需要一個1000人的社區才能支持一家理髮店開張。要想支持兩家理髮店,則至少需要2000人的社區。

看到這裡,我們已經有了一個可以用來test的prediction:社區的理髮店數量與人口有非常強的正相關。當然,在實際的數據中,還有無數的問題要解決。第一個問題就是得找到相對隔離的社區。然後是各個變數的measurement問題。比如人口是怎麼度量的?只用現在的人口顯然不行,需要考慮到對未來人口變化的預期。只考慮本社區的人口也不一定合理,說不定有旁邊社區的人願意走幾步過來理髮等等。又如收入不一樣的地區很可能對理髮服務的需求也不一樣,需要控制。對因變數的測量也是個問題,因為實際上理髮店很可能大小不一,大到幾十上百位「老師」、「總監」,小到一位師傅一把剪刀支個攤。reduced-form model要做的就是在控制了其他所有因素的情況下,直接驗證這個prediction。一個理想的實驗是找到在各個方面都近似,唯有人口數量不一樣的社區,看看理髮店的數目,做一個簡單的OLS。更複雜的情況下,可以考慮找人口數的IV,或者利用比如庫區移民之類的外生衝擊來做DiD,再或者看看有沒有什麼類似的政策導致社區人口數量的不連續變化從而做RD之類。

下一步我們還可以考慮理髮師之間的競爭。前一段提到,如果需要1000人才能支持一個理髮店,那麼要想支持兩家理髮店,則至少需要2000人的社區。這個「至少」是很重要的,因為這是在兩家理髮店沒有競爭,互相合謀定價時才能實現。如果兩家店有競爭,那麼勢必導致價格和利潤的下降,因而需要比2000人更大的市場才能支持這兩家店的共存。通過比較數據中一家vs兩家理髮店的市場大小,我們的數據又能幫助我們理解理髮師之間的競爭行為。假如你認為理髮師之間確有競爭,那就有了另一個prediction:一個社區的人口數需要在(只有一家理髮店的社區人口數)兩倍以上時,才能支持兩家理髮店共存。同樣,對這個prediction的驗證也是可以通過reduced-form來完成。

(順便提一下,另外一種可能性是兩家理髮店差異化,從而弱化了競爭,有可能反而不需要兩倍人口。在賣車的例子中,BR1990 的發現就是Ford與GM dealer之間差異化的效應就超過了競爭的效應。)

那麼Structuralist會怎麼做呢?structural的想法是這樣的,既然我用primitives可以解出均衡,並且用數據來驗證均衡解,那為何不用數據來估計我的primitives呢?

具體來說,我們最感興趣的參數有這幾個。其一,是成本曲線(固定、邊際成本)。其二,是需求曲線。其三,是competitive conduct,或者說競爭的激烈程度。下一步,則是看數據能夠identify其中哪些參數。

(插一句無關話題,現在identification幾乎成了exclusive restriction的同義詞,其本意是模型參數能否由數據唯一決定。如果幾套不同的參數能generate一樣的數據,那這個模型就不是identified)

假設我們手頭有社區人口(及幾個其他可能影響市場大小的變數,如人口變化率)、收入、工資等可能同時影響需求與可變成本的變數、幾個可能隻影響固定成本的變數(比如租金),最後是模型的outcome variable即理髮店數目。那麼我們的目的就是用可觀測的這些數據與模型的關係作為primitives,然後用均衡解來給出outcome,最後調整model的參數使得我們模型的解能夠fit數據中理髮店的數量。具體到這個理髮店的entry model,我們最感興趣的是成本曲線和competitive conduct。因此,我們對需求可以暫時不用model得特別仔細,在BR1990 RES paper中採取的辦法是省去從需求和可變成本到均衡價格這一步,直接用人均利潤作為潛在變數之一(它由收入等影響需求彈性和可變成本的變數決定,同時,根據市場中理髮店是否壟斷,還受到可能的競爭的影響,這些關係構成了模型的一部分primitives)。用市場大小作為潛在變數之二(由現有人口、周邊人口、人口變化率決定,這是模型的另一部分primitives)。最後,加上固定成本作為第三個潛在變數(租金等如何決定它將成為模型最後一部分primitives)。最後我們需要一些error term,根據不同的model可以放在不同的地方。這裡暫時不對它過多的處理,只是需要它來保證likelihood在任何參數都不為零以便於MLE的計算。根據每一套參數,我們都可以計算出這三個潛在變數,利用均衡條件可以解出理髮店數目。用MLE等方法,我們可以不斷迭代優化求解一套擬合最佳的參數,並且根據MLE的asymptotic性質得到standard error。

可以看出,這套思路和reduced-form是有所相通,但又很不相同的。具體到這個例子中,它在需求這一步其實已經部分的reduced-form了,因為它model的人均利潤是個均衡下的結果,而非真正的效用、成本這樣的primitive。不難看出,如果我們有更好的數據(如價格、銷量等),那麼更進一步的model是可能的(這也是structural IO / quantitative marketing最重要的工作之一demand estimation的內容)。但是整體看來,它和之前直接test model prediction的思路差別是顯而易見的。

那麼比較這同一個問題、同一數據的兩種做法,各有何優劣呢?簡單說幾句。

  1. structural model無疑用了更強的假設。在reduced-form中test的hypothesis,雖然是在一定的假設下推導出來的,不難看出它很可能在弱得多的假設下也都成立。例如它不太依賴於具體的函數(比如說人口對市場大小的影響真的是線性的嗎?租金對固定成本的影響又是何種形式呢?)和分布(error term真的是logit error嗎?)等等。
  2. 但是,structural model也得到了"強"很多的結論。這個「強」的意思是信息量大很多。這些額外的信息量來源,一部分必然是從假設來的,但是另外一部分是對數據的更充分利用來的。reduced-form為了放寬假設,同時也會喪失一定的信息量,這個trade-off是不可避免的。reduced-form中的confounding factor,在structuralist看來可能恰恰是夢寐以求的exogenous variation。
  3. 至於structural model額外的信息量多有用,則是具體問題具體分析。structural model最大的吸引力之一就是可以做policy simulation,得到完全不在原來數據的自變數區間中有的信息。在這個問題上,我認為structural model額外得到的信息值得它額外的假設帶來的代價。例如,如果有人對regulations感興趣,想知道對理髮店減稅等等政策對理髮店數量會帶來什麼影響,對消費者的福利又有什麼影響,這是只有structural model能回答的問題。
  4. 現代的做法,對structural的paper一般都要先看所謂model-free evidence,然後再看模型的結果。所以並不太需要在這兩種方法中做太多取捨。魚和熊掌大可以兼得。作為學生,學好structural對reduced-form也是有益的。
  5. structural model往往比較delicate,所以在structural中犯錯要比reduced-form中容易得多,做起來往往難度也大很多,coding和計算上的門檻也高一些(有些estimator收斂很慢,有些根本就不是global concave……)。

以上只是structural model非常早期的一個例子,權當拋磚引玉。最新的進展在模型和計算上都可謂日新月異,我也是剛剛接觸不多,就不獻醜了。

匆匆寫完,望各位方家指正。


大家說的都比較技術化,但是我覺得題主可能更想了解一些普及性的知識。Structural Model自己一直都在用,而且導師也是做這個出身的,所以就佔個坑,然後慢慢答好了。

首先,Structural Model很難入門,因為想要寫一篇有關Structural Estimation的論文,需要同時具備計量知識(參數是否被識別),經濟理論知識(搭建模型,而且知道怎麼能解出均衡),編程知識(要能夠把模型寫出來,而且知道怎麼樣能提高效率),甚至還有有關所研究產業的一些背景知識。我也一直處於懵懵懂懂的狀態,所以就按照現在自己力所能及的程度來講一講吧。

1.Structural Model到底是什麼?

一開始讀這類論文的時候,就覺得凡是帶經濟模型的實證論文都算是Structural Estimation,以至於有段時間把模型看的比估計還要重要。後來一點點明白,模型再花哨也是為了最終的估計服務的,所以說到底,結構估計重點還是在估計,只不過是多了一些條件的估計。

比如說,我們觀測到了啤酒的銷量,然後我們想知道什麼啤酒賣的好一些。是國產啤酒還是進口啤酒?是貴一些的啤酒還是便宜一些的啤酒?有了數據我們可以直接跑一個回歸,左邊放上各種啤酒的銷量,右邊是價格和一些Dummy,比如是否國產等等。這就是Reduced-form,而且能一定程度上解決問題。但是有人會問了,這麼跑回歸只能證明這幾個變數之間的相關性,而且我們還有一個條件沒用到,就是觀測到的銷量來自於消費者的最優決策。為了把這個最優的條件給用上,我們就需要搭建一個模型,在輸入參數值的時候,返回消費者最優決策設定下啤酒的銷量,然後看看這個計算的銷量是否和數據相吻合。如果不吻合,就換一個參數繼續計算;如果吻合了,那麼我們就說,在這個模型設定下,我們得到了這些參數。

沒錯,這就是Structural Estimation,而且如果你把需求模型設置的很簡單的話,那麼整個估計過程可以簡化成很簡單的回歸。(比如假設logit demand,那需求和產品特徵可以轉化成線性回歸)但是因為我們使用了預設的模型結構,所以和Reduced-form Regression又有了區別。我的理解是,假如真實的數據生成過程是未知的,那麼Reduced-form regression只是去通過變數變動之間的相關性來揭示要研究的問題,而結構模型是你提前就搭好了一個架子,然後相信這個架子是對的,變數之間的傳導機制也固定住了,然後把整個架子往數據裡面塞,看看怎麼樣能讓這個架子最大限度的貼合數據。固然通過這個模型,很多內部的機理也能估計和模擬了,但是你又怎麼能知道這個架子是不是應該用在這裡呢?加入一個新的傳導機制,整個架子就又要重新搭。

所以如果你想做關於結構模型的論文,不如先問自己,是否一定需要這個結構模型?比如如果只是想分析啤酒銷量隨季節變化這種簡單的回歸就能搞定的事情,那麼添加一個模型也並不能幫助你,而要是考慮消費者消費習慣波動,或者企業價格競爭這種涉及到複雜機制的研究課題,那麼結構模型是不想用也得用。

2. 有關Computation

其他回答中有人提到了John Rust。這人簡直是不世出的奇才。傳聞他最喜歡乾的事就是到酒吧里隨便找別人搭訕,酒喝完了,數據就搞到了。著名的Rust (1987)據說就是他和公交車維護站的頭頭喝了一頓酒之後拿到數據的……

有點扯遠了。在經濟學手冊裡面和Structural Model相關的有三本:Handbook of Econometrics, Handbook of Industrial Organization和Handbook of Computational Economics。John Rust在這三部手冊裡面都寫了相關的章節,所以可以對比著來看,這樣就知道Computation到底強調哪些方面。另外還有一本書,Kenneth Judd的Numerical Methods in Economics也是經典之作,題主可以去看看。就我個人經歷來說,如果會編程,比如寫State space evolution,Value function iteration那麼就基本滿足編程的要求了。可是如果想精益求精一些,比如想增加迭代的速度,或者更充分利用計算機內存那麼可以讀一些computation相關的文章。但是現階段來看,有了cluster,100萬X100萬維度的矩陣運算完全不是問題,瓶頸仍然出在如何把理論模型轉換到代碼上,也就是把程序寫出來,所以對於這個不要有太大壓力,自己試著寫一些simulation就算是入門了。

至於軟體,我個人會的不多,絕大多數時候都是處理數據用Stata,寫模型的時候用Matlab。這個領域能用到的軟體五花八門,比如R,Python,Fortran,C,Julia等等。有的軟體跑起來會快一些, 有的軟體會比較適合處理大數據,有的軟體會比較適合跑循環多的代碼等等。不過能實現的功能都是大同小異,所以可以先找一兩種練一練,然後到後期如果有更高要求再學。

3. 有關其他經驗

對其他領域我不了解,在IO中,Structural Estimation也是五花八門,比如Static demand和Dynamic demand不一樣,perishable good,storable good和durable good又不一樣,這個好像也沒什麼捷徑,只能不斷的讀新文章。不過,至少在某一個細分領域裡面,這些模型還是大同小異的,所以讀了一定量的文章之後可以關注一下某篇文章的模型設定和其他文章不同的部分,來學習怎麼樣構建更合適的模型。


題主自己列出的幾篇參考文獻其實已經把 structural approach 與 atheoretic approach 的異同之處介紹得相當清楚了。這裡補充一個比較新的技術,也是去年暑假回財大培訓時從 Ariel Pakes 那裡學到的一點皮毛:矩不等式(moment inequalities)。我們用一個簡單而具體的例子 (Katz, 2007) 來看一看這個矩不等式究竟是何方神聖。

假設一個消費者開車去超市購物,我們想要估計駕駛時間所帶來的成本,這一信息在分析土地使用管制、公共交通項目等問題時非常有用。消費者i的效用函數採用如下形式:

pileft(d_{i},z_{i};	heta_{i}
ight)=Uleft(b_{i}
ight)-eleft(b_{i},s_{i}
ight)-	heta_{i}dtleft(s_{i},z_{i}
ight)

其中,d_{i}為消費者的決策,b_{i}=bleft(d_{i}
ight)表示選擇的一籃子商品,s_{i}=sleft(d_{i}
ight)表示選擇的超市,z_{i}為個體的特徵(如家庭住址)。效用函數是加性可分的,其中Uleft(cdot
ight)提供了一籃子商品消費的效用,eleft(cdot
ight)提供了支出(的反效用),dtleft(cdot
ight)提供了駕駛時間(的反效用)。

傳統的離散選擇模型要求指定消費者從每個可選項中獲得的主觀期望效用,這需要指定:(1)消費者對所有可能選擇的超市裡的所有商品價格的主觀概率分布;(2)每一個隨機價格向量實現時消費者所購買的商品組合。由於涉及到了消費者可能選擇的所有超市裡的所有商品組合,這種方法對於消費者的信息要求非常高,並且在進行估計時難度較大。

另一種方法是使用顯示偏好——我們可以計算消費者的真實選擇和某個備選項所帶來的效用差——根據顯示偏好弱公理,這個差值的符號應該為非負。具體而言,當觀測到一個決策d_{i}時,我們令d^{prime}left(d_{i},z_{i}
ight)為消費者在離家更遠的某超市購買同一籃子商品的反事實決策。將消費者的主觀期望運算元寫成mathcal{E}left(cdot
ight),我們有 (*) 式:

mathcal{E}left[Deltapileft(d_{i},d^{prime}left(d_{i},z_{i}
ight)
ight)
ight]=-mathcal{E}left[Delta eleft(d_{i},d^{prime}left(d_{i},z_{i}
ight)
ight)
ight]-	heta_{i}mathcal{E}left[Delta dtleft(d_{i},d^{prime}left(d_{i},z_{i}
ight)
ight)
ight]geq0

其中,對於任意一個函數f,我們有Delta fleft(d_{i},d^{prime}left(d_{i},z_{i}
ight)
ight)equiv fleft(d_{i}
ight)-fleft(d^{prime}left(d_{i},z_{i}
ight)
ight)。值得注意的是,消費者對於價格的認識是主觀的,因此可能會犯錯。現在我們想要找到	heta_i真值的取值集,使得上述不等式在平均意義上成立——這就是矩不等式估計。在這個例子中,我們考慮以下兩種情況:

情況 1:	heta_{i}=	heta_{0}對於每一個消費者i都相同。此時所有決定駕駛時間的因素都可以被我們觀測到,並且可以被包含進效用函數。我們假設N個消費者平均支出/駕駛時間差異的主觀期望依概率收斂到事後值:

N^{-1}sum_{i}mathcal{E}left[Delta eleft(d_{i},d^{prime}left(d_{i},z_{i}
ight)
ight)
ight]-N^{-1}sum_{i}Delta eleft(d_{i},d^{prime}left(d_{i},z_{i}
ight)
ight)overset{P}{	o}0

N^{-1}sum_{i}mathcal{E}left[Delta dtleft(d_{i},d^{prime}left(d_{i},z_{i}
ight)
ight)
ight]-N^{-1}sum_{i}Delta dtleft(d_{i},d^{prime}left(d_{i},z_{i}
ight)
ight)overset{P}{	o}0

換句話說,我們允許消費者犯錯,但是在平均意義上他們對價格的認識是正確的。此時根據 (*) 式:

-frac{sum_{i}Delta eleft(d_{i},d^{prime}left(d_{i},z_{i}
ight)
ight)}{sum_{i}Delta dtleft(d_{i},d^{prime}left(d_{i},z_{i}
ight)
ight)}overset{P}{	o}underline{	heta}leq	heta_{0}

現在我們取d^{primeprime}left(d_{i},z_{i}
ight)為消費者在離家更近的某超市購買同一籃子商品的決策,那麼:

-frac{sum_{i}Delta eleft(d_{i},d^{primeprime}left(d_{i},z_{i}
ight)
ight)}{sum_{i}Delta dtleft(d_{i},d^{primeprime}left(d_{i},z_{i}
ight)
ight)}overset{P}{	o}overline{	heta}geq	heta_{0}

這樣一來,我們就有了	heta_{0}上下界的相合估計子。

情況 2:	heta_{i}=left(	heta_{0}+
u_{i}
ight)sum_{i}
u_{i}=0。此時決定駕駛時間的因素中有一部分只有消費者自己知道(異質性),但是卻無法被我們觀測到。這裡的
u_{i}便是一個結構性誤差(可以感受 structural approach 與 atheoretic approach 各自誤差項的區別)。假設消費者的信息集中存在dtleft(d_{i}
ight)dtleft(d^{prime}left(d_{i},z_{i}
ight)
ight),那麼 (*) 式意味著:

mathcal{E}left[frac{Delta eleft(d_{i},d^{prime}left(d_{i},z_{i}
ight)
ight)}{Delta dtleft(d_{i},d^{prime}left(d_{i},z_{i}
ight)
ight)}-left(	heta_{0}+
u_{i}
ight)
ight]leq0

與第一種情況類似,如果N個消費者平均支出差異的主觀期望依概率收斂到事後值,那麼:

frac{1}{N}sum_{i}left(frac{Delta eleft(d_{i},d^{prime}left(d_{i},z_{i}
ight)
ight)}{Delta dtleft(d_{i},d^{prime}left(d_{i},z_{i}
ight)
ight)}
ight)overset{P}{	o}underline{	heta}leq	heta_{0}

文章接著使用了 2004 年的 Nielsen 家庭掃碼數據,比較了傳統方法和矩不等式法的估計結果,發現傳統離散選擇模型估計得到的駕駛時間的平均成本高達 240 美元/小時,並且發現其他一些係數的估計值符號反了。矩不等式估計得到的結果則較為合理(由於原文利用工具變數生成了更多矩,因此得到了點估計):如果不假設異質性,那麼駕駛時間的平均成本為 4 美元/小時;如果假設了異質性,那麼駕駛時間的平均成本為 14 美元/小時。文章還利用這一結果做了反事實政策模擬。

References:

  • Katz, Michael. Essays in Industrial Organization and Technological Change. Harvard University, 2007.
  • Pakes, Ariel. Lecture Notes for the Shanghai Industrial Organization Summer School. 2015.


就我自己的理解談談 structural econometrics 的開山文獻之一, John Rust 的 Optimal Replacement of GMC Bus Engines: An Empirical Model of Harold Zurcher, Econometrica, 1987. 這篇文章不僅勾勒出了一大類 structural 方法(dynamic discrete choice, DDC hereafter)的基本框架,也比較適合解釋 structural 和 reduced form 方法的不同。

==== Part 1: Discrete Choice Model ====================================

DDC模型的基本要素如下(便於討論,有所簡化,僅考慮最簡單的情況):

(1)一個agent,需要在每期做出一個binary choice, a_t=1 or a_t=0. T是時間期數:t=1,2,ldots,T.,可以是有限的整數(比如人的年齡),也可以是無窮。

(2)每期的影響agent決策的state variables 表示為 s_t[x_t,epsilon_t]. 其中,x_t是一個可以被我們觀測到的變數,而epsilon_t是一個僅被agent觀測到的數據。

(3)agent每期的效用函數可以表示為U(x_t,epsilon_t,a_t)

(4)一個折現係數(discount factor)eta

agent 面臨的問題是:選擇一系列的決策函數,alpha_t(x_t,epsilon_t), t=1,ldots,T, 以最大化他的折現當期期望效用:

{a_t=alpha_t(x_t,epsilon_t) }_{t=1}^{T} = arg max_{a_1,ldots,a_T} E_{t=1}Bigg[ sum_{t=1}^T  eta^{t-1}U(x_t,epsilon_t,a_t)  Bigg].

==== Part 2: Harold Zurcher"s Problem ====================================

回到Rust文章的具體例子,agent就是 Harold Zurcher (HZ hereafter) --- 一個公共汽車公司的經理,他管理著一百多輛汽車的維護。HZ面對的最主要問題,是何時更換汽車的引擎。如果等到引擎壞了再去更換,會影響公司的正常運轉,而且要面臨著乘客的投訴 -- 作為乘客,當然不希望在上班的途中聽到巴士引擎壞掉的消息。反之,如果引擎更換得太頻繁,就會增加公司的成本,因為一輛巴士最大的維護成本就是更換引擎。因此,HZ面臨著一個動態優化的問題:每一個月,HZ都要根據每輛巴士的引擎公里數(x_t)和一些其他的因素(epsilon_t)來決定當月要不要更換該巴士的引擎(a_t=1
代表換,a_t=0
代表不換)。

假設 HZ的每期選擇是最優的 -- 也就是說他完美地解決了上述最優化的問題。那麼我們的問題是如何根據我們觀測到的數據: (x_t,a_t),t=1,ldots,T,來估計出HZ的效用函數。

PS:我們需要參數化HZ的效用函數,那麼估計效用函數就等於估計這些參數。描述效用函數的這些參數,通常被認為是 structural parameters。能夠估計structural parameters, 正是 structural approach的核心價值所在。

==== Part 3: Dynamic Programming ====================================

用動態規劃這個工具求解agent的最優選擇, 是聯繫structural parameter和觀測值的重要步驟。

假設T=infty

定義:V(x_t,epsilon_t)=max E_{t}Bigg[ sum_{j=0}^{infty}  eta^{j}U(x_{t+j},epsilon_{t+j},a_{t+j})  Bigg] ,

在一定的假設下我們可以得到著名的Bellman equation:

V(x_t,epsilon_t)= max_{a_t} Big{U(x_t,epsilon_t,a_t) + eta E[ V(x_{t+1},epsilon_{t+1}) |x_t,epsilon_t,a_t] Big}.

做出如下假設:

Assumption AS: U(x_t,epsilon_t,a_t)=u(x_t,a_t)+epsilon_t(a_t)

Assumption CI: F(x

首先根據 Assumption CI, 我們有: E[ V(x_{t+1},epsilon_{t+1}) |x_t,epsilon_t,a_t] = E[ V(x_{t+1},epsilon_{t+1}) |x_t,a_t] 。然後定義:

v(x,a)= u(x,a) + eta E[V(x

最後通過 Bellman equation 和 fixed point theorem,我們可以得到E[V(x從而得到 v(x,a)

如果我們參數化這個模型:

u(x,a)=u(x,a; 	heta_u)F(x,

則我們有

v(x,a;	heta)= u(x,a;	heta_u) + eta E[V(x

where 	heta=[	heta_u,	heta_f].

比如說,在我們的具體例子中:

u(x,1)=-RC

u(x,0)=-	heta_1 x

其中,RC表示更換引擎的固定成本,	heta_1x表示跟里程數相關的維修成本。那麼

	heta=[RC,	heta_1]

==== Part 4: Choice Probability and MLE ====================================

做出第三個重要的假設:

Assumption ED:epsilon_t(1), epsilon_t(0)是兩個獨立的隨機變數,並服從極值分布。

根據以上的假設,我們可以得出:

P[a_t=1|x_t;	heta] = frac{e^{v(x,1;	heta)}}{e^{v(x,1;	heta)}+e^{v(x,0;	heta)}} = frac{1}{1+e^{v(x,0;	heta) -v(x,1;	heta)}}

假設我們有 i=1,...,N 個巴士的觀測值,那麼我們可以寫出所有觀測值的似然函數:

fig(    {x_{it},a_{it}}_{t=1,i=1}^{T,N} ig)
= Pi_{i=1}^{N}Pi_{t=1}^{T}P[a_{it}|x_{it};	heta]f(x_{it}|x_{it-1},a_{it-1};	heta_f) ,

然後就可以用最大似然估計去估計了。

==== Part 5: The Differences between Structural and Reduced-Form Methods ===========

上述的估計方法,最體現structural的思路的地方,就是在似然函數裡面有一個未知函數 v(x,a) ---這個函數是一個動態優化問題的副產品,它通過動態優化問題和模型的structural parameter產生了聯繫。而這也正是 structural 方法的難度所在:最開始的時候,Rust的方法就是對於每一個 	heta,都解一個動態優化問題求出 v(x,a;	heta),然後比較似然函數的大小找出最大似然函數估計值。而每解決一次動態優化問題,都要通過 iteration 找出 Bellman equation 的 fixed point -- 這是一個複雜且很耗時間的計算過程(至少在當時看來)。

相反的,在reduced-form的方法中,我們經常直接做出以下假設(logistic model):

P[a_t=1|x_t;	heta] =  frac{1}{1+e^{	heta x_t}},

然後用最大似然估計得出	heta的估計量。這種方法的特點是簡單方便入門快,直接用stata命令就可以得出估計結果。問題在於我們估計的	heta
到底有何經濟含義??上面這個簡單的logistic model和我們的structural model推導出的 choice probability 相比,我們可以看到這個簡單模型等於假設:

v(x,0;	heta) -v(x,1;	heta) =	heta x --- 這是一個沒有道理,過於簡單的假設。這是為什麼做structural model的人經常批評做reduced form的人沒有經濟含義的原因。

但是,structural method也不是完美無缺。我們可以看到,structural method 需要對效用函數的形式做很強的parametric假設,還要假設agent做出的選擇是最優的。這是他們經常被攻擊的兩個點。

總而言之,兩個方法各有其優點和缺點。至於誰優誰劣,這是一個辯論不完的話題,只能說各有偏好,見仁見智了。


特別贊同 @鍾澤民的回答,看了很有啟發,再舉一個稍微新的structural的例子,來自Guvenen和Smith,發表在2014年的Econometrica上。去年學這篇論文的時候有大致跑一下裡面的東西,裡面的估計方法確實比較強大,可以解決很多很難的動態模型估計問題。個人遠遠沒有入門,只能當提供一個例子了。感覺 @鍾澤民的五點歸納其實已經講很清楚了。

這篇論文大致是要解決這樣一個問題:從實證事實看,隨著年齡增長,同一代內勞動者收入的差距是越拉越大的。這個現象原因究竟在哪裡?這有可能是運氣導致的,或者說,是一系列沒有被預料到的衝擊導致了收入差距拉開。這也有可能是勞動者本身能力有異質性的結果。如果真是前者導致了收入差距懸殊,那勞動者在他/她的一生中會面臨比較大的不確定性。如果原因是後者,聯想到我們即將踏入社會之前的迷茫,又可以考慮兩種情況。一是勞動者自己很清楚自己的能力,明白自己以後工資的增長模式。那他/她可以很好地規劃未來的收入,面對的不確定性相對比較小。也有可能勞動力並不清楚自己能力如何,這時候他就需要不停地學習,更新自己關於自己信念的能力。

上面是每個勞動力每一期的收入變化的方程。第一項是一些外部的對所有人都起作用的變數,像GDP之類的。第二部分是稟賦,刻畫異質性。以前的文獻這一塊都是常量,但這裡放鬆了這個假定,後面加上了一個隨機項beta。這個beta又可以拆成兩部分,都服從零均值的正態分布,都在模型的第0期由自然選定,兩者相互獨立。區別在於方差不同,並且,其中一個勞動者是知道它的實現值的,另一個則觀察不到。個體知道這裡有兩個部分,並且知道它們均值都是0,但是不知道這兩個分布的方差是多少。如果勞動者知道這裡方差都是0,那每個人都沒有任何私人信息,因為他/她自己的稟賦和其他所有人都是一致的。但是這只是很特殊的情況。方程的最後一項是兩個雜訊,一個是AR(1),一個是普通的白雜訊。勞動者為了實現學習,就要根據每一期觀察到的收入來更新自己的信念。更具體一點,就是勞動者要想辦法,怎麼最有效率地去更新下面的式子。這是個規範化的問題,可以直接用卡爾曼濾波來做。做出來以後個體預期收入關於自己每一期信息的分布是多元正態的。

接下來就是比較常規的部分了,假設個體終生的效用函數,給定約束條件,這裡為了更好地擬合現實情況,還加了一個借貸約束,個體借貸的能力受到年齡的影響。收入上面也加了一個保底項來保證不碰到0,不然會影響後面的估計。他們還把美國的社保也放了進去。最後,勞動者每一期的信念按照前面卡爾曼濾波的結果更新。不討論這個結果,僅僅看形式就知道常規的估計方法沒有辦法用了。似然函數沒有辦法得到顯式解,一是因為有信念系統,二是因為這裡還有一個借貸邊界。要做reduced form也非常難。如果不用CRRA而是用有饜足點的效用函數,再把借貸約束拿掉,是可以得到部分簡約的估計式的,但在CRRA情況下不行。即使在簡單的效用函數下可以識別待估參數,用GMM方法得到的估計擬合效果也不好,因為,如果某一時刻借貸約束是緊的,我們有可能觀察到消費和收入一比一的變動。這是由緊的約束帶來的,而不是衝擊本身是永久性衝擊,但GMM估計出來的係數無法反映這一點,所以不能擬合好已有的數據。此外,這還有可能導致我們錯誤估計個體的風險態度。

在估計之前,還有很多很多的數據清理和轉換工作,這裡就全部省略了。他們用的辦法叫做間接推斷(indirect inference method),大致思想是構造一個比較容易計算的輔助模型,然後把真實數據帶進去估計出一組參數,可以把這個叫做真實參數。接下來再利用模擬的方法,先從一個分布中抽出一些初值,用這個模型模擬出一組和原數據格式一致的數據(缺失位置之類的必須一致),然後用這個數據集估計出一組參數。抽樣——模擬——估計若干次,來最小化一組參數,讓這個參數和前面提到的真實參數距離最小。更詳細的內容,要閱讀這一塊比較經典的文獻,Gourieroux和Monfort(1993)。他們在這裡選的是一個結合了移動平均和差分的線性模型,所以輔助方程里的參數就是一組回歸的參數,而兩組參數在輔助模型中估計效果的差異也可以用殘差來衡量,比如下面的形式。這裡的最小化可以理解成最小化距離,而L是關於殘差和協方差陣距離的函數,在這篇文章取的是高斯函數。在估計其它模型的時候,要根據理論和需要選取不同的輔助模型和距離函數。最後得到的這個beta就是前面模型中的參數組。再補一句,間接推斷其實是一種比較耍無賴的估計方法,很多看起來似乎根本無從下口的方程都可以用這個來做,並且,這個估計量的漸進分布一般而言是正態分布。它的另一個優點是不需要確定矩條件。但是,用之前要檢驗幾個條件,不然估計量可能不一致。

這篇文章還有很多很多內容這裡沒有寫,但如果感興趣可能還是直接看文章比較好。這算是現在的結構文章裡面比較典型的一個例子,為了得到最後的結果,真心要花很多力氣(我當時跑最後那個估計的時候電腦直接躺了......)。真要做這樣一篇實證文章對理論、數據、計量各項要求都很高,稍微不注意就會犯錯誤。之所以舉這個例子也是因為這個估計方法比較有用,如果要估計一些非常複雜的模型(不可避免的),可以考慮這種辦法。參考文獻:

Gourieroux C, Monfort A, Renault E. Indirect inference[J]. Journal of Applied Econometrics, 1993, 8: S85-S85.

Guvenen F, Smith A A. Inferring labor income risk and partial insurance from economic choices[J]. Econometrica, 2014, 82(6): 2085-2129.


推薦閱讀:

我註冊了一個全新的 Quora 賬戶,它是怎麼知道我喜歡什麼的?
FTRL演算法在使用中需不需要通過Batch Model初始化?
關於L2範數如何避免過擬合?
中國基層編作曲從業人員是否可能被人工智慧取代?

TAG:統計學 | 機器學習 | 經濟學 | 計量經濟學 | 數理統計學 |