代码拉取完成,页面将自动刷新
同步操作将从 kerrydu/statamacroe 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
cap program drop segmindex
program define segmindex
version 14
syntax varlist(numeric min=2), gen(string) Wmat(string) IDMat(string) id(varname) t(varname)
confirm name `wmat'
confirm name `idmat'
confirm new var `gen'
preserve
qui keep `id' `t' `varlist'
foreach v in `varlist'{
rename `v' `v'_j
}
rename `id' `id'_j
tempfile _pij0
qui save `_pij0'
restore
preserve
tempname pairij
mata: `pairij' = findpair(`idmat',`wmat')
*mata: `pairij'
clear
tempfile _pijdta
getmata (`id' `id'_j) = `pairij'
qui save `_pijdta'
restore
qui joinby `id' using `_pijdta'
qui merge m:1 `id'_j `t' using `_pij0', nogenerate
foreach v in `varlist'{
tempvar ln`v' dln`v'
qui gen double `ln`v''=abs(ln(`v')-ln(`v'_j))
qui bys `t': egen double `dln`v''=mean(`ln`v'')
qui replace `dln`v''=`ln`v''-`dln`v''
local ddq `ddq' `dln`v''
}
tempvar varq
qui egen double `varq' = rowsd(`ddq')
qui bys `id' `t': egen double `gen' = mean(`varq'^2)
qui drop `id'_j
qui duplicates drop `id' `t',force
end
cap mata mata drop findpair()
mata:
real matrix function findpair(real colvector id,real matrix W)
{
pairij=J(0,2,.)
for(j=1;j<=rows(W);j++){
i=select(id,W[.,j]:!=0)
pairij= pairij \ (J(length(i),1,id[j]),i)
}
return(pairij)
}
end
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。