Computed theoretical power for N=100 and N=200 scenarios
This commit is contained in:
89
Modules/ado/plus/b/blandaltman.ado
Normal file
89
Modules/ado/plus/b/blandaltman.ado
Normal file
@ -0,0 +1,89 @@
|
||||
|
||||
***********************************************************************************************************************
|
||||
**** Program blandaltman (one parameter against another parameter) startet ********************************************
|
||||
***********************************************************************************************************************
|
||||
|
||||
* set more off
|
||||
* capture program drop blandaltman
|
||||
program blandaltman
|
||||
syntax varlist(max=2)
|
||||
|
||||
// prepare for Bland Altman Interreader
|
||||
tempvar diff_xy
|
||||
tempvar avg_xy
|
||||
tempvar lower
|
||||
tempvar higher
|
||||
tempvar MW
|
||||
tempvar SE
|
||||
tempvar CIhigher
|
||||
tempvar CIlower
|
||||
|
||||
generate `diff_xy'=0
|
||||
generate `avg_xy'=0
|
||||
generate `lower'=0
|
||||
generate `higher'=0
|
||||
generate `MW'=0
|
||||
generate `SE'=0
|
||||
generate `CIhigher'=0
|
||||
generate `CIlower'=0
|
||||
|
||||
// count the variable: how many variable are in the list?
|
||||
local noofvars : word count `varlist'
|
||||
display as text "The variable list of this program counts " `noofvars' " variables"
|
||||
display as result " "
|
||||
display as result " "
|
||||
|
||||
// Interreader
|
||||
local x = 1
|
||||
local y = 1
|
||||
foreach varx of varlist `varlist' {
|
||||
foreach vary of varlist `varlist'{
|
||||
if `y' >`x'{
|
||||
quietly replace `avg_xy'=(`varx'+`vary')/2
|
||||
quietly replace `diff_xy'=`varx'-`vary'
|
||||
display as result " Bland Altman Plot of `varx' and `vary'"
|
||||
quietly sum `diff_xy'
|
||||
quietly return list
|
||||
quietly replace `MW'=r(mean)
|
||||
quietly replace `lower'=r(mean)-2*r(sd)
|
||||
quietly replace `higher'=r(mean)+2*r(sd)
|
||||
quietly replace `SE'=(r(sd))/(sqrt(r(N)))
|
||||
quietly replace `CIlower'=r(mean)-2*`SE'
|
||||
quietly replace `CIhigher'=r(mean)+2*`SE'
|
||||
display as result "- mean of difference between `varx' and `vary' is "r(mean)
|
||||
display as result "- sd of difference between `varx' and `vary' is "r(sd)
|
||||
display as result "- lower limit of difference between `varx' and `vary' is " `lower'
|
||||
display as result "- higher limit of difference between `varx' and `vary' is " `higher'
|
||||
display as result "- Limits of agreement (Reference Range for difference): " `lower' " to " `higher'
|
||||
display as result "- Mean difference:" `MW' " (CI " `CIlower' " to " `CIhigher' ")"
|
||||
display as result " "
|
||||
display as result " "
|
||||
|
||||
label var `diff_xy' "Values"
|
||||
label var `MW' "mean of difference"
|
||||
label var `lower' "lower limit of agreement"
|
||||
label var `higher' "higher limit of agreement"
|
||||
twoway (scatter `diff_xy' `avg_xy', msymbol(smcircle_hollow) mcolor(ebblue)) (line `MW' `avg_xy', lcolor(red))(line `lower' `avg_xy', lcolor(black) ) (line `higher' `avg_xy', lcolor(black) ), title(Bland Altman Plot, size(8)) subtitle(,size(5)) xtitle(Average of `varx' and `vary') ytitle(Difference of `varx' and `vary') caption() note(NOTE) legend(off)
|
||||
}
|
||||
local y = `y'+1
|
||||
}
|
||||
local y = 1
|
||||
local x =`x'+1
|
||||
}
|
||||
end
|
||||
|
||||
***********************************************************************************************************************
|
||||
**** Program blandaltman (one parameter against another parameter) endet **********************************************
|
||||
***********************************************************************************************************************
|
||||
|
||||
|
||||
|
||||
|
||||
// EXAMPLE
|
||||
|
||||
* sysuse bpwide.dta
|
||||
|
||||
// to create a bland altman plot use the command "blandaltman" with variable1 and variable2
|
||||
* blandaltman bp_before bp_after
|
||||
|
||||
|
Reference in New Issue
Block a user