I have been attempting some basic power calculations using R and I am not getting the results I expect. I had a homework assignment in SAS, but I want to learn R as well, so I was attempting to reproduce my result. (No one else in the class is doing R, so there's no need to obsfucate the answer, the SAS code is what I get my grade for.) The code I am using is: # You assume that the within-population standard deviations all equal 9. You set the Type 1 error rate at # alpha = .05. You presume that the population means will have the following values: 17.5, 19, 25, 20.5. # You intend to run 80 subjects in all, with equal n's across all 4 groups. Compute your power to reject # the null hypothesis under these conditions. means = c(17.5, 19, 25, 20.5) power.anova.test(groups = length(means), n = 80 / length(means), between.var = var(means), within.var = 9, sig.level = 0.05) The result I'm getting is: Balanced one-way analysis of variance power calculation groups = 4 n = 20 between.var = 10.5 within.var = 9 sig.level = 0.05 power = 1 NOTE: n is number in each group I've already done the calculation in SAS with the following code: data Dep; Input cue $ mean weight; datalines; A 17.5 1 B 19 1 C 25 1 D 20.5 1 ; proc glmpower; class cue; model mean = cue; weight weight; power stddev = 9 alpha = 0.05 ntotal= 80 power = .; run; This produces a power of 0.616 which is the answer I was supposed to get. Any idea what I need to change? Will [[alternative HTML version deleted]]
Will, Your SAS input indicates that within standard deviation is 9, not the variance. If you use within.var=81 in your R statement you will get the answer matching SAS. Cheers, Andy __________________________________ Andy Jaworski 518-1-01 Process Laboratory 3M Corporate Research Laboratory ----- E-mail: apjaworski at mmm.com Tel: (651) 733-6092 Fax: (651) 736-3122 "Will Holcomb" <wholcomb at gmail.c om> To Sent by: r-help <r-help at r-project.org> r-help-bounces at r- cc project.org Subject [R] one-way anova power 02/19/2008 10:19 calculations AM I have been attempting some basic power calculations using R and I am not getting the results I expect. I had a homework assignment in SAS, but I want to learn R as well, so I was attempting to reproduce my result. (No one else in the class is doing R, so there's no need to obsfucate the answer, the SAS code is what I get my grade for.) The code I am using is: # You assume that the within-population standard deviations all equal 9. You set the Type 1 error rate at # alpha = .05. You presume that the population means will have the following values: 17.5, 19, 25, 20.5. # You intend to run 80 subjects in all, with equal n's across all 4 groups. Compute your power to reject # the null hypothesis under these conditions. means = c(17.5, 19, 25, 20.5) power.anova.test(groups = length(means), n = 80 / length(means), between.var = var(means), within.var = 9, sig.level = 0.05) The result I'm getting is: Balanced one-way analysis of variance power calculation groups = 4 n = 20 between.var = 10.5 within.var = 9 sig.level = 0.05 power = 1 NOTE: n is number in each group I've already done the calculation in SAS with the following code: data Dep; Input cue $ mean weight; datalines; A 17.5 1 B 19 1 C 25 1 D 20.5 1 ; proc glmpower; class cue; model mean = cue; weight weight; power stddev = 9 alpha = 0.05 ntotal= 80 power = .; run; This produces a power of 0.616 which is the answer I was supposed to get. Any idea what I need to change? Will [[alternative HTML version deleted]] ______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Will Holcomb wrote:> I have been attempting some basic power calculations using R and I am not > getting the results I expect. I had a homework assignment in SAS, but I want > to learn R as well, so I was attempting to reproduce my result. (No one else > in the class is doing R, so there's no need to obsfucate the answer, the SAS > code is what I get my grade for.) The code I am using is: > > # You assume that the within-population standard deviations all equal 9. You > set the Type 1 error rate at > # alpha = .05. You presume that the population means will have the following > values: 17.5, 19, 25, 20.5. > # You intend to run 80 subjects in all, with equal n's across all 4 groups. > Compute your power to reject > # the null hypothesis under these conditions. > > means = c(17.5, 19, 25, 20.5) > power.anova.test(groups = length(means), n = 80 / length(means), > between.var = var(means), within.var = 9, > sig.level = 0.05) > > The result I'm getting is: > > Balanced one-way analysis of variance power calculation > > groups = 4 > n = 20 > between.var = 10.5 > within.var = 9 > sig.level = 0.05 > power = 1 > > NOTE: n is number in each group > > I've already done the calculation in SAS with the following code: > > data Dep; > Input cue $ mean weight; > datalines; > A 17.5 1 > B 19 1 > C 25 1 > D 20.5 1 > ; > > proc glmpower; > class cue; > model mean = cue; > weight weight; > power > stddev = 9 > alpha = 0.05 > ntotal= 80 > power = .; > run; > > This produces a power of 0.616 which is the answer I was supposed to get. > Any idea what I need to change? > >Using the _variance_ rather than the standard deviation for within.var seems to help quite a bit!> Will > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >-- O__ ---- Peter Dalgaard ?ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907