尝试跑股价同步性,但遇到了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
也想求助下,计算同步性的命令(此段命令) 是否有相应问。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


雷达卡


京公网安备 11010802022788号







