RAの仕事で算出することに
以前,学部の後輩がSTATA上で全作業できるらしいっすよ(゜Д゜)って言ってたのを思い出したのですが,できず.どこかの大学のサイトにDoファイルが書いているらしいが,見つからず.
というわけで前作業をExcelでさせて,やってみた.
下のはそれを若干修正したもの.いじったので,間違えているかもしれません.サーセン
たぶん使いにくいかと思いますが,お好きにいじって使ってください.
VimもhatenaもStataシンタックスが使える.すばらしい.
*CARを出すdoファイル *ついでにBHARも出せる(こっちは自信がない) * *データフォーマットを前もって整理する必要がある. * 各企業につき修正済株価とその日に対応するINDEXを並べる必要がある. * つまり,データは,企業数の倍の列が必要. * このdoファイルでは,それぞれ t`i'price, t`i'index と名付けている. * tは1から順に振る必要がある. * また,このデータでは,-270日から+20日までの291行あり,271行目にイベントディが来るように,表計算ソフトか何かでデータの整理をしている. *ar_3から.ar_5までの変数ができる.それらが,-3日から+5日までのARに相当する(mはマイナスのつもり,Stataでは"-"が変数名として認識できないっぽい.). *それぞれ,1行目にi=1番目の企業,2行目にi=2番目の企業のARが並ぶようになっている. set more off gen a =. gen b =. gen ar_m3 = . gen ar_m2 = . gen ar_m1 = . gen ar_0 = . gen ar_1 = . gen ar_2 = . gen ar_3 = . gen ar_4 = . gen ar_5 = . gen n = . set obs 1000 forvalue i = 1 / 852{ * CAR gen t`i'index_return = (t`i'index - t`i'index[_n-1] ) /t`i'index[_n-1] gen t`i'price_return = (t`i'price - t`i'price[_n-1] ) /t`i'price[_n-1] qui:reg t`i'price_return t`i'index_return in 1/250 *ここのin 以降が推定期間である. replace a = _b[_cons] replace b = _b[t`i'index_return] gen ar`i' = t`i'price_return - (a + b * t`i'index_return) local n = ar`i' in 268 replace ar_m3 = `n' in `i' local n = ar`i' in 269 replace ar_m2 = `n' in `i' local n = ar`i' in 270 replace ar_m1 = `n' in `i' local n = ar`i' in 271 replace ar_0 = `n' in `i' local n = ar`i' in 272 replace ar_1 = `n' in `i' local n = ar`i' in 273 replace ar_2 = `n' in `i' local n = ar`i' in 274 replace ar_3 = `n' in `i' local n = ar`i' in 275 replace ar_4 = `n' in `i' local n = ar`i' in 276 replace ar_5 = `n' in `i' * BHAR local bhr_i = 1 local bhr_m = 1 forvalue day = 251 / 292{ local bhar_i = t`i'price_return + 1 in `day' local bhar_m = t`i'index_return + 1 in `day' local bhr_i = `bhr_i' * `bhar_i' local bhr_m = `bhr_m' * `bhar_m' local bhar = `bhr_i' - `bhr_m' replace bhar`day' = `bhar' in `i' } drop t`i'index_return drop t`i'price_return drop t`i'index drop t`i'turn drop t`i'price } *CARの算出.お好きに変更してください. gen car_m1_0 = ar_m1 + ar_0 *CAR of day -1 to day 0 gen car_m1_1 = ar_m1 + ar_0 + ar_1 *CAR of day -1 to day +1 gen car_m2_2 = ar_m2 + ar_m1 + ar + ar_1 + ar_2 *CAR of day -2 to day +2