[程式] 使用stata分年分組計算出一階自我相關

看板Statistics作者 (丹尼爾)時間9年前 (2015/03/30 14:58), 9年前編輯推噓0(006)
留言6則, 2人參與, 最新討論串1/1
------------------------------------------------------------------------ [軟體程式類別]: Stata [程式問題]: 一階自我相關(first-order autocorrelation) [軟體熟悉度]: 中(3個月到1年) [問題敘述]: 需計算各公司各年(共四年)的前16季EPS的一階自我相關(first-order autocorrelation) 目前我已經將各公司以及分年設為panel data了 但卡在corrgram eps, lags(1)--->這個程式碼後面不能加上if 因此我無法利用迴圈計算出各公司各年之first-order autocorrelation 然而,如果我將資料刪減至只剩一家公司的16季資料時,就可以順利跑出來了.. 也就是說土法煉鋼的方法下...我一家公司做4次...但我樣本有1000家公司.. 那我需要共跑4000次...才能計算出4000個一階自我相關的變數 希望版上有強人可以幫我解惑...讓我知道如何使用迴圈或其他的程式碼 順利計算出一階自我相關(亦即earnings persistence) 如果順利跑出來的話...我願意花全部的P幣...目前是也沒多少錢XD [程式範例]: 以下是我資料的摘錄:(每一id都有28季的資料,我將每16季分為一組,用year_2008,2009..) id month eps year_2008 year_2009 1 1 .42 1 1 2 .35 1 1 3 .43 1 1 4 .4 1 1 5 0 1 1 1 6 1.25 1 1 1 7 .5 1 1 1 8 .22 1 1 1 9 .18 1 1 1 10 .62 1 1 1 11 .72 1 1 1 12 .71 1 1 1 13 .6 1 1 1 14 .58 1 1 1 15 .99 1 1 1 16 .38 1 1 1 17 .39 1 1 18 .69 1 1 19 .33 1 1 20 .34 1 我寫過的程式碼: gen persistence_2008=. forvalues i=1(1) 1367 { corrgram eps, lags(1) if id==`i' replace persistence_2008 = r(AC) if id==`i' } 希望有強者可以指點我正確的方法...謝謝! ----------------------------------------------------------------------------- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.180.69.99 ※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1427698708.A.68D.html ※ 編輯: gn01208307 (175.180.69.99), 03/30/2015 14:58:49

03/30 17:54, , 1F
試試改成 corrgram eps if id==`i' , lags(1)
03/30 17:54, 1F

03/30 19:38, , 2F
謝謝,有跑出來一個後,但告訴我type mismatch
03/30 19:38, 2F

03/30 19:43, , 3F
請問我儲存AC的結果是否有誤?謝謝~~
03/30 19:43, 3F

03/30 21:14, , 4F
replace persistence_2008 = r(ac1) if id==`i'
03/30 21:14, 4F

03/30 21:16, , 5F
stata 指令大小寫有差,help裡都有範例 建議可以先看
03/30 21:16, 5F

03/30 22:51, , 6F
謝謝你,我跑出變數出來了!!
03/30 22:51, 6F
文章代碼(AID): #1L6FGKQD (Statistics)