选了combobox里的选项后没激发change事件_stata 事件分析法
前言:
因為一些原因,國慶節(jié)期間學的。學習過程很酸爽,自己并沒有很多統(tǒng)計學及其相關軟件的經驗,網上相關資料也不是很多。我在微信公眾號、知網、經管之家、B站、百度文庫等很多平臺找了各式的資料來學(花了70大洋去買代碼,本學生窮得叮當響),最終有了一個簡單的成果(當然,在數據的處理上還比較粗糙,沒有剔除ST,事件窗口也只有一個)。進一步的成果涉及到一些東西,就無法發(fā)出了。
希望能給像我一樣的小白一些幫助(本來想寫一個教程,但原諒我太懶了)。另外,請大佬們多多指導!
正文:
事件分析法:見百度 https://baike.baidu.com/item/事件分析法/2871756
1. 定義事件:上海自貿區(qū)成立
2. 樣本選取范圍:2013年8月22日前位于上海的上市公司的所有A股
3. 考察:2013年8月22日上海自貿區(qū)成立當日,位于上海上市公司的短期市場反應
4. 數據來源:CSMAR
5. 事件窗口:以2013年8月22日為事件日,(-5,+5)為研究期間
6. 估計窗口:(-155,-6)
7. 估計模型:市場模型
8. 估計正常表現
9. 異常表現和累計超額回報
10. 顯著性檢驗
11. 全部事件交叉檢驗
12. 結論:上海自貿區(qū)成立對位于上海的上市公司的所有A股有顯著的市場效應
1.導入數據
/*首先在CSMAR下載(2013.03.20-2013.8.22)(上海市)(所有A股)的股票代碼、交易日期、考慮了現金分紅的日收益率,和(2013.03.20-2013.8.22)(滬深300指數)的交易日期、考慮了現金分紅的日收益率,下載數據類型為excel類型;
然后,用vlookup函數處理兩個excel表格,根據交易日期,把滬深300指數的日收益率對應到上海市A股日收益率后;
接著,增加event_date這一列;
接著,把股票代碼由文本類型轉換成常規(guī)類型。*/
/*將處理好的excel復制到Data Editor里,保存到路徑里(查看路徑用pwd),保存為event_study.dta。*/
//調用時:
use event_study.dta2.數據處理
//將日期從字符串型轉換為數值型:
set matsize 500 cap gen event_date1=date(event_date,"YMD") drop event_date rename event_date1 event_date format event_date %dCY-N-D set matsize 500 cap gen trade_date1=date(trade_date,"YMD") drop trade_date rename trade_date1 trade_date format trade_date %dCY-N-D//關閉more選項,使一次全部輸出:
set more off3.估計正常收益
sort stk_id trade_date //按股票代碼、交易日進行排序 by stk_id:gen datenum=_n //對每一股票按交易日從1開始計數:1、2、3、4……用來計算每一個股票有多少行數據 by stk_id:gen target=datenum if trade_date==event_date //針對每只股票,生成target變量,并且如果交易日=事件日,對target變量賦值上datenum變量的數值 by stk_id: replace target=datenum if trade_date-event_date<=1 & trade_date-event_date>=-1 //針對每只股票,對發(fā)行公告日前后1天有交易的行數據,用datenum變量的數值覆蓋target變量的數值 egen td1=mean(target),by(stk_id) //針對每只股票生成變量td1,并賦值target的均值 gen td2=round(td1) //生成td2變量并賦值td1的四舍五入數值 gen dif=datenum-td2 //生成dif變量,并賦值datenum-td2,該數值代表以事件日為起點,向前/后開始計數的天數 by stk_id: gen event_window=1 if dif>=-5 & dif<=5 //針對每只股票,生成事件窗口變量并賦值“1”,dif變量大于-5小于5表示事件窗口為(-5,5) egen count_event_obs=count(event_window), by(stk_id) //針對每只股票生成計算事件窗口天數的變量 by stk_id:gen estimation_window=1 if dif>=-155 & dif<-6 //針對每只股票,生成估計窗口變量并賦值“1”,dif變量大于-155小于-6表示估計窗口為(-155,-6) egen count_est_obs=count(estimation_window), by(stk_id) //針對每只股票生成計算估計窗口天數的變量 replace event_window=0 if event_window==. //如果事件窗口為空值,則賦值“0” replace estimation_window=0 if estimation_window==. //如果估計窗口為空值,則賦值“0” gen predicted_return=. //生成估計收益變量并賦值空值 egen id=group(stk_id) //重新定義公司代碼為1,2,3...,便于執(zhí)行循環(huán) forvalues id=1(1)194 { reg stk_chg zs_chg if id==i & estimation_window==1 //得到全樣本范圍內的正常回報率 predict p if id==i //在事件窗口內計算正常回報率 replace predicted_return = p if id==i & event_window==1 drop p }/*通過上述id,可知共194個樣本股票,對1-194個股票的估計窗口內的數據進行回歸,股票漲跌幅為因變量,指數漲跌幅為自變量,并對每只股票用回歸方程結果計算其預期收益。
對每只股票的事件窗口(-5,5),用預期收益覆蓋predicted_return變量的空值。該方法為用市場模型計算事件窗口期內的預期收益。*/
4.超額收益和累計超額收益
sort id trade_date //按id、交易日排序 gen AR=stk_chg-predicted_return if event_window==1 //計算每個公司在事件期內的日非正常報酬率 by id:egen car=sum(AR) //計算每個公司在事件窗口內的累計非正常報酬率(固定值) gen car_date=. forvalues id=1(1)194 { replace car_date=sum(AR) if (id==i & event_window==1) } //每個公司在事件窗口內逐日累加得到的累積回報率5.顯著性檢驗
/*其中AR是超額收益,ar_sd是超額收益的標準差。如果test的絕對值大于1.96,則每只股票的平均超額收益在5%的顯著性水平上異于0。*/
sort id trade_date //按id、交易日排序 by id:egen ar_sd=sd(AR) //對每個公司求超額收益的標準差 gen test=(1/sqrt(11))*(car/ar_sd) //生成test統(tǒng)計量 list stk_id car test if dif==0 //列出發(fā)生事件的公司代碼,累計超額收益,test統(tǒng)計量//輸出excel表格:
outsheet stk_id trade_date car test using car_test.csv if dif==0,comma names6.在整個事件期內進行穩(wěn)健性檢驗
reg car if dif==0, robust/*由p值可知,我們可以在1%水平上拒絕這194家公司的累積超常回報率為0的原假設(在1%的顯著性水平下顯著,car在整個事件期內穩(wěn)健)。*/
7.事件期內car的走勢圖(看兩點之差)
//注:這一步是我亂加的。
preserve keep if event_window==1 bysort dif:egen car_t=mean(car_date) keep dif car_t //計算每天的平均累積超常回報率 duplicates drop //僅保留事件期的觀察值 twoway connect car_t dif //繪制時序圖 restore平均累計超常回報率時序圖總結
以上是生活随笔為你收集整理的选了combobox里的选项后没激发change事件_stata 事件分析法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python姓名输出语句_Python最
- 下一篇: vb6 由于超出容量限制 不能创建新事务