Computed theoretical power for N=100 and N=200 scenarios
This commit is contained in:
275
Modules/ado/personal/r/repet.ado
Normal file
275
Modules/ado/personal/r/repet.ado
Normal file
@ -0,0 +1,275 @@
|
||||
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)
|
Reference in New Issue
Block a user