You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
276 lines
6.2 KiB
Plaintext
276 lines
6.2 KiB
Plaintext
8 months ago
|
capture program drop repet
|
||
|
program repet,rclass
|
||
|
syntax varlist [in], t2(varlist) PARTition(numlist integer >0) calcmethod(string) [SCOrename(string) KAPpa ICKAPpa(integer 0)]
|
||
|
preserve
|
||
|
|
||
|
local nbvars : word count `varlist'
|
||
|
|
||
|
if "`in'"!="" {
|
||
|
qui keep `in'
|
||
|
}
|
||
|
|
||
|
if `ickappa' <= 0 {
|
||
|
local ickappa = ""
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
if "`ickappa'" != "" & "`kappa'" == "" {
|
||
|
di "{it:The ickappa option is ignored}"
|
||
|
}
|
||
|
*/
|
||
|
|
||
|
local C = 0
|
||
|
foreach z in `partition' {
|
||
|
local C = `C' + `z'
|
||
|
}
|
||
|
|
||
|
local nbvars : word count `varlist'
|
||
|
if `C' != `nbvars' {
|
||
|
di in red "The sum of the numbers in the partition option is different from the number of variables precised in varlist"
|
||
|
exit
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
qui tab `id', nofreq
|
||
|
local u = r(r)
|
||
|
if `u' != _N {
|
||
|
di in red "The variable `ident' has not unique values"
|
||
|
exit
|
||
|
}
|
||
|
*/
|
||
|
|
||
|
local P:word count `partition'
|
||
|
if "`scorename'" !="" {
|
||
|
local S:word count `scorename'
|
||
|
if `P'!=`S' {
|
||
|
di in red "The number of score names given is different from the number of dimensions in the partition option"
|
||
|
exit
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
local name
|
||
|
local nname
|
||
|
forvalues i = 1/`P' {
|
||
|
local name "Dim`i'"
|
||
|
local nname `nname' `name'
|
||
|
}
|
||
|
local scorename = "`nname'"
|
||
|
}
|
||
|
|
||
|
local a:word count `varlist'
|
||
|
local b:word count `t2'
|
||
|
if `a' != `b' di in red "The number of items is not the same in t1 and t2"
|
||
|
|
||
|
/* coupure noms des scores */
|
||
|
/*
|
||
|
local i = 1
|
||
|
foreach s in `scorename' {
|
||
|
local len = length("`s'")
|
||
|
if `len' > 10 {
|
||
|
local c = substr("`s'",1,9)
|
||
|
local d = substr("`s'",-1,1)
|
||
|
local s`i' "`c'" "~" "`d'"
|
||
|
}
|
||
|
else local s`i' = "`s'"
|
||
|
local sc `sc' `s`i''
|
||
|
local `++i'
|
||
|
}
|
||
|
*/
|
||
|
|
||
|
local i = 1
|
||
|
foreach s in `scorename' {
|
||
|
local s`i' = abbrev("`s'",10)
|
||
|
local sc `sc' `s`i''
|
||
|
local `++i'
|
||
|
}
|
||
|
|
||
|
/* coupure noms des items */
|
||
|
/*
|
||
|
local i = 1
|
||
|
foreach s in `varlist' {
|
||
|
local len = length("`s'")
|
||
|
if `len' > 10 {
|
||
|
local c = substr("`s'",1,9)
|
||
|
local var`i' "`c'"
|
||
|
}
|
||
|
else local var`i' = "`s'"
|
||
|
local `++i'
|
||
|
}
|
||
|
*/
|
||
|
|
||
|
local i = 1
|
||
|
foreach v in `varlist' {
|
||
|
local var`i' = abbrev("`v'",10)
|
||
|
local `++i'
|
||
|
}
|
||
|
|
||
|
local maxit = 1
|
||
|
forvalues i=1/`nbvars' {
|
||
|
local len = length("`var`i''")
|
||
|
if `len' > `maxit' local maxit = `len'
|
||
|
}
|
||
|
|
||
|
local decit = `maxit' + 4
|
||
|
local colit = `decit'
|
||
|
|
||
|
|
||
|
|
||
|
di as result "{hline}"
|
||
|
di as result "{bf:Reproducibility}"
|
||
|
di as result "{hline}"
|
||
|
di
|
||
|
|
||
|
foreach sco in `scorename' {
|
||
|
*local t = "`sco'bis"
|
||
|
tempname s
|
||
|
local scorename2 `scorename2' `s'
|
||
|
}
|
||
|
|
||
|
qui calcscore `t2', scorename(`scorename2') partition(`partition') calcmethod(`calcmethod')
|
||
|
|
||
|
local i = 1
|
||
|
foreach var in `varlist' {
|
||
|
tokenize `t2'
|
||
|
qui kap `var' ``i''
|
||
|
local k`i' = r(kappa)
|
||
|
if "`ickappa'" != "" {
|
||
|
qui kapci `var' ``i'', reps(`ickappa')
|
||
|
local lbk`i' = r(lb_bc)
|
||
|
local ubk`i' = r(ub_bc)
|
||
|
}
|
||
|
local `++i'
|
||
|
}
|
||
|
|
||
|
local i = 1
|
||
|
foreach s in `scorename' {
|
||
|
tokenize `scorename2'
|
||
|
tempname score id temps
|
||
|
qui gen `id' = _n
|
||
|
qui gen `score'_1 = `s'
|
||
|
qui gen `score'_2 = ``i'' if ``i''!=.
|
||
|
qui reshape long `score'_, i(`id') j(`temps')
|
||
|
qui icc `score'_ `id'
|
||
|
local n`i' = r(N_target)
|
||
|
local icc`i' = r(icc_i)
|
||
|
local lb`i' = r(icc_i_lb)
|
||
|
local ub`i' = r(icc_i_ub)
|
||
|
*qui drop `score' `temps' `id'
|
||
|
qui sort `id'
|
||
|
qui duplicates drop `id', force
|
||
|
local `++i'
|
||
|
}
|
||
|
|
||
|
tokenize `sc'
|
||
|
local max = length("dimension")
|
||
|
|
||
|
forvalues j=1/`P' {
|
||
|
local len`j' = length("`s`j''")
|
||
|
if `len`j'' > `max' local max = `len`j''
|
||
|
}
|
||
|
|
||
|
local dec = `max' + 5
|
||
|
|
||
|
local i = 1
|
||
|
local j = 1
|
||
|
local y = 1
|
||
|
di "{bf:Dimension}" _c
|
||
|
di _col(`=`dec'+2') "{bf:n}" _c
|
||
|
local col = `dec'+6
|
||
|
di _col(`col') "{bf:Item}" _c
|
||
|
local col = `col'+`decit'
|
||
|
|
||
|
if "`kappa'" != "" {
|
||
|
di _col(`col') "{bf:Kappa}" _c
|
||
|
local col = `col'+10
|
||
|
if "`ickappa'" != "" {
|
||
|
di _col(`col') "{bf:95% CI for Kappa}" _c
|
||
|
local col = `col'+20
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
di _col(`=`col'+2') "{bf:ICC}" _c
|
||
|
local col = `col'+9
|
||
|
di _col(`col') "{bf:95% CI for ICC}"
|
||
|
|
||
|
local zz = 0
|
||
|
foreach var in `varlist' {
|
||
|
qui levelsof `var', local(levels)
|
||
|
local z : word count `levels'
|
||
|
if `z' > 2 local zz = 1
|
||
|
}
|
||
|
|
||
|
if "`kappa'" != "" & "`ickappa'" != "" & `zz' == 1 {
|
||
|
local col = `dec'+`decit'+16
|
||
|
di _col(`col') "{bf:(bootstrapped)}"
|
||
|
}
|
||
|
|
||
|
|
||
|
if "`ickappa'" != "" local h = `dec'+6+`decit'+10+8+21+12+1
|
||
|
else if "`kappa'" != "" local h = `dec'+6+`decit'+10+8+21+12-20
|
||
|
else local h = `dec'+6+`decit'+10+8+21+12-30
|
||
|
di "{hline `h'}"
|
||
|
|
||
|
local i = 1
|
||
|
foreach p in `partition' {
|
||
|
tokenize `sc'
|
||
|
di "{bf:``i''}" _c
|
||
|
di _col(`dec') "{text:`n`i''}" _c
|
||
|
if `j' == 1 local s = `p'
|
||
|
else local s = `s' +`p'
|
||
|
local col = `dec'+6
|
||
|
di _col(`col') "{text:`var`y''}" _c
|
||
|
|
||
|
if "`kappa'" != "" {
|
||
|
local k : di %5.2f `k`y''
|
||
|
local col = `col'+`decit'
|
||
|
di _col(`col') "{text:`k'}" _c
|
||
|
if "`ickappa'" != "" {
|
||
|
local lbk : di %5.2f `lbk`i''
|
||
|
local ubk : di %5.2f `ubk`i''
|
||
|
local col = `col'+11
|
||
|
di _col(`col') "{text:[`lbk' ; `ubk']}" _c
|
||
|
local col = `decit'+50
|
||
|
}
|
||
|
|
||
|
else local col = `decit'+30
|
||
|
}
|
||
|
else local col = `decit'+20
|
||
|
|
||
|
*local col = `decit'+30
|
||
|
local icc : di %5.2f `icc`i''
|
||
|
di _col(`col') "{text:`icc'}" _c
|
||
|
local lb : di %5.2f `lb`i''
|
||
|
local ub : di %5.2f `ub`i''
|
||
|
local col = `col'+8
|
||
|
di _col(`col')"{text:[`lb' ; `ub']}"
|
||
|
local w = `y'+1
|
||
|
|
||
|
forvalues z = `w'/`s' {
|
||
|
local col = `dec'+6
|
||
|
di _col(`col') "{text:`var`z''}" _c
|
||
|
if "`kappa'" != "" {
|
||
|
local k : di %5.2f `k`z''
|
||
|
local col = `col'+`decit'
|
||
|
di _col(`col') "{text:`k'}" _c
|
||
|
if "`ickappa'" != "" {
|
||
|
local lbk : di %5.2f `lbk`z''
|
||
|
local ubk : di %5.2f `ubk`z''
|
||
|
local col = `col'+11
|
||
|
di _col(`col')"{text:[`lbk' ; `ubk']}"
|
||
|
}
|
||
|
else di
|
||
|
|
||
|
}
|
||
|
else di
|
||
|
}
|
||
|
local `i++'
|
||
|
local `j++'
|
||
|
local y = `s'+1
|
||
|
di
|
||
|
}
|
||
|
end
|
||
|
|
||
|
*repet ioc1-ioc37, t2(ptgi1-peur16) partition(4 4 7 3 3 4 7 5) scorename(HA PSE W BCC AC AE LI MOC) kappa ickappa(20)
|
||
|
*repet sf36_3q_intenses sf36_3q_moderees sf36_3q_soulever sf36_3q_etages sf36_3q_etage sf36_3q_pencher sf36_3q_15km sf36_3q_500m sf36_3q_100m sf36_3q_douche sf36_4q_limite_temps_travail sf36_4q_moins_choses sf36_4q_type_travail sf36_4q_effort , t2(sf36_3q_intenses_v5 sf36_3q_moderees_v5 sf36_3q_soulever_v5 sf36_3q_etages_v5 sf36_3q_etage_v5 sf36_3q_pencher_v5 sf36_3q_15km_v5 sf36_3q_500m_v5 sf36_3q_100m_v5 sf36_3q_douche_v5 sf36_4q_limite_temps_travail_v5 sf36_4q_moins_choses_v5 sf36_4q_type_travail_v5 sf36_4q_effort_v5 ) partition(10 4)
|