// Log-normal arithmetic parameterization? Not! what van Hecke used. twoway (function y=lnnormalden(x,ln(0.1)-0.5*ln(1/.1^2+1),sqrt(ln(1/.1^2+1))), range(0 4)) /// (function y=lnnormalden(x,ln(0.5)-0.5*ln(1/.5^2+1),sqrt(ln(1/.5^2+1))), range(0 4)) /// (function y=lnnormalden(x,ln(1)-0.5*ln(1/1^2+1),sqrt(ln(1/1^2+1))), range(0 4)), title("LogNormal, d ~= 0.5") postfile kwpower test d T dfm dfr using kwpowermcln2.dta, replace quietly forvalues d=0.1(0.05)0.5 { noisily display "difference " `d' forvalues i=1/2500 { clear set obs 60 // group size = 20 generate group = mod(_n, 3)+1 generate sigma = sqrt(log(1+1/(group*`d')^2)) generate mu = log(group*`d')-0.5*sigma^2 generate y = exp(rnormal(mu, sigma)) anova y group post kwpower (1) (`d') (e(F)) (e(df_m)) (e(df_r)) kwallis y, by(group) post kwpower (2) (`d') (r(chi2_adj)) (r(df)) (.) } } postclose kwpower use kwpowermcln2.dta, clear generate sig = Ftail(dfm, dfr, T)<0.05 if test==1 replace sig = chi2tail(dfm, T)<0.05 if test==2 *tabulate test sig, row bysort test: tabulate d sig, row collapse (mean) sig, by(test d) separate sig, by(test) label variable sig1 "Anova" label variable sig2 "Kruskal-Wallis" save kwpowermcln2table.dta, replace line sig1 sig2 d, title("Log-Normal, by MC") ytitle("Power") /// xtitle("group differences")