全部版块 我的主页
论坛 休闲区 十二区 灌水吧
117 0
2025-04-23
尝试跑股价同步性,但遇到了no observations 问题。数据是在国泰安下载的 1、周个股回报率;2、综合市场回报率;3公司文件
以下是具体命令,* =============================================================
/* Author Information */
* Name:        Jason Li
* Email:      
* Affiliation:
* Date:        2025/4/20
* Version:     V1.0
* =============================================================


*- 个股收益率数据处理
import excel using "周个股回报率文件/TRD_Week.xlsx", first clear
labone, nrow(1 2) concat("_")
drop in 1/2

        *- 仅保留A股数据(包含科创板、创业板)
        keep if Markettype == "1" | Markettype == "4" | Markettype == "16" | Markettype == "32" | Markettype == "64"
        replace Markettype = "A"

save ShareReturn.dta, replace



*- 市场收益率数据处理
import excel using "综合周市场回报率文件/TRD_Weekcm.xlsx", first clear
labone, nrow(1 2) concat("_")
drop in 1/2
       
        *- 仅保留A股市场数据(包含科创板、创业板)
        keep if Markettype == "53"
        replace Markettype = "A"
       
save 综合周市场回报率文件/MarketReturn.dta, replace



*- 处理行业数据
import excel using "公司文件/TRD_Co.xlsx", first clear
labone, nrow(1 2) concat("_")
drop in 1/2
save 公司文件/IndustryData.dta, replace

*- 合并个股与市场
use 周个股回报率文件/ShareReturn.dta, clear
merge m:1 Markettype Trdwnt using 综合周市场回报率文件/MarketReturn.dta
drop _merge
save MergenceData.dta, replace

*- 合并行业数据
use MergenceData.dta, clear
merge m:1 Stkcd using 公司文件/IndustryData.dta
keep if _merge == 3
drop _merge
compress

gen Year = real(substr(Trdwnt,1,4))
gen Week = real(substr(Trdwnt,6,2))
destring Wretwd Cwretwdos, replace
keep Stkcd Year Week Wretwd Cwretwdos Nnindcd
order Stkcd Year Week Wretwd Cwretwdos Nnindcd
sort Stkcd Year Week
save MergenceData.dta, replace

*- 计算股价同步性
use MergenceData.dta, clear
destring Stkcd, replace

tostring Year Week, replace
gen Time = Year + Week
destring Time, replace

xtset Stkcd Time
keep Stkcd Year Time Wretwd Cwretwdos Nnindcd
order Stkcd Year Time Wretwd Cwretwdos Nnindcd



//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
前面部分没有遇到问题,此段段命令显示no observations r(2000)问题。


        *- 计算剔除本公司后的行业平均收益率
        gen meanWretwd = .
       
        levelsof Stkcd, local(stkcd)
                local stkcdNum = r(r)
        levelsof Nnindcd, local(indcd)
                local indNum = r(r)
        levelsof Time, local(time)
                local timeNum = r(r)
                local loopNum = `stkcdNum'*`indNum' * `timeNum'
               
       
        local countNum = 1
        foreach ind of local indcd {
                foreach week of local time {
                        foreach code of local stkcd {
                                qui mean Wretwd if Nnindcd == "`ind'" & Time == `week' & Stkcd != `code'
                                qui replace meanWretwd = e(b)[1,1] if Nnindcd == "`ind'" & Time == `week' & Stkcd == `code'
                                display %4.2f `countNum'/`loopNum'*100 "%....." _c
                                local countNum = `countNum' + 1
                        }
                }
        }


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        *- 计算同步性
        gen SYNCH = .
       
        sort Stkcd Time
        levelsof Stkcd, local(stkcd)
        levelsof Year, local(year)
        foreach code of local stkcd {
                foreach yr of local year {
                        cap reghdfe Wretwd Cwretwdos L.Cwretwdos meanWretwd L.meanWretwd if Stkcd == `code' & Year == `yr', noabsorb
                        replace SYNCH = ln(e(r2)/(1-e(r2))) if Stkcd == `code' & Year == `yr'
                }
        }




       
        duplicates drop Stkcd Year, force
        keep Stkcd Year SYNCH
        save SYNCH.dta, replace



也想求助下,计算同步性的命令(此段命令) 是否有相应问。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群