Example R programs and commands 6. Use, power and sample size in Student t tests # All lines preceded by the "#" character are my comments. # All other left-justified lines are my input. # All other indented lines are the R program output. # Perform a one-sample, two-sided t-test of H_0: mu=1.7 on data vector x: x<-c(1,4,2,2,3,1,5,3,4,2,1,3); t.test(x,mu=1.7) One Sample t-test data: x t = 2.3334, df = 11, p-value = 0.03963 alternative hypothesis: true mean is not equal to 1.7 95 percent confidence interval: 1.750127 3.416539 sample estimates: mean of x 2.583333 # Perform a one-sample, one-sided t-test of H_A: mu>1.7 on data vector x: x<-c(1,4,2,2,3,1,5,3,4,2,1,3); t.test(x,mu=1.7, alternative="greater") One Sample t-test data: x t = 2.3334, df = 11, p-value = 0.01982 alternative hypothesis: true mean is greater than 1.7 95 percent confidence interval: 1.903482 Inf sample estimates: mean of x 2.583333 # Perform a two-sample, two-sided t-test of H_0:mu_x=mu_y on data vectors x,y # of unequal length, assuming both populations have the same variance: x<-c(1,4,2,2,3,1,5,3,4,2,1,3); y<-c(3,6,4,5,7,5,6); t.test(x,y, var.equal=TRUE) Two Sample t-test data: x and y t = -4.0666, df = 17, p-value = 0.0008027 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -3.887451 -1.231596 sample estimates: mean of x mean of y 2.583333 5.142857 # ...and using Welch's correction for not assuming equal variance: x<-c(1,4,2,2,3,1,5,3,4,2,1,3); y<-c(3,6,4,5,7,5,6); t.test(x,y, var.equal=FALSE) Welch Two Sample t-test data: x and y t = -4.0378, df = 12.415, p-value = 0.001540 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -3.935537 -1.183511 sample estimates: mean of x mean of y 2.583333 5.142857 # Perform a two-sample, one-sided t-test of H_A:mu_x-mu_y < -1.5 on data vectors x,y # of unequal length, assuming both populations have the same variance: x<-c(1,4,2,2,3,1,5,3,4,2,1,3); y<-c(3,6,4,5,7,5,6); t.test(x,y, mu= -1.5, alternative="less", var.equal=TRUE) Two Sample t-test data: x and y t = -1.6834, df = 17, p-value = 0.05529 alternative hypothesis: true difference in means is less than -1.5 95 percent confidence interval: -Inf -1.464607 sample estimates: mean of x mean of y 2.583333 5.142857 # ...and using Welch's correction for not assuming equal variance: t.test(x,y, mu= -1.5,alternative="less", var.equal=FALSE) Welch Two Sample t-test data: x and y t = -1.6715, df = 12.415, p-value = 0.05981 alternative hypothesis: true difference in means is less than -1.5 95 percent confidence interval: -Inf -1.432897 sample estimates: mean of x mean of y 2.583333 5.142857 # Perform a paired-sample, one-sided t-test of H_A:mu_d < -1.5 on data vectors x,y # of equal length: x<-c(1,4,2,2,3,1,5,3,4,2,1,3); y<-c(3,6,4,2,6,5,5,7,5,6,4,6); t.test(x,y, mu= -1.5, paired=TRUE, alternative="less") Paired t-test data: x and y t = -2.011, df = 11, p-value = 0.03474 alternative hypothesis: true difference in means is less than -1.5 95 percent confidence interval: -Inf -1.589141 sample estimates: mean of the differences -2.333333 # Perform a paired-sample, two-sided t-test of H_0:mu_d = 0 on data vectors x,y # of equal length: x<-c(1,4,2,2,3,1,5,3,4,2,1,3); y<-c(3,6,4,2,6,5,5,7,5,6,4,6); t.test(x,y, paired=TRUE) # mu=0 and alternative="two.sided" are defaults Paired t-test data: x and y t = -5.6308, df = 11, p-value = 0.0001531 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -3.245395 -1.421272 sample estimates: mean of the differences -2.333333 # Find the power in a two-sided two-sample Student t test with n1=n2=n=33 # samples per population, a true difference |mu1-mu2|=1.7, equal standard # deviations s1=s2=2.1, using a Type I error probability of alpha=0.05: power.t.test(n=33,delta=1.7,sd=2.1, sig.level=0.05, power=NULL) Two-sample t test power calculation n = 33 delta = 1.7 sd = 2.1 sig.level = 0.05 power = 0.8994822 alternative = two.sided NOTE: n is number in *each* group # Find the minimum sample size, if the desired power level is 95%: power.t.test(n=NULL,delta=1.7,sd=2.1, sig.level=0.05, power=0.95) Two-sample t test power calculation n = 40.64486 delta = 1.7 sd = 2.1 sig.level = 0.05 power = 0.95 alternative = two.sided NOTE: n is number in *each* group # Find the minimum detectable difference with 50 samples, same distribution # parameters, alpha=0.05 and power=0.95: power.t.test(n=50,delta=NULL,sd=2.1, sig.level=0.05, power=0.95) Two-sample t test power calculation n = 50 delta = 1.529104 sd = 2.1 sig.level = 0.05 power = 0.95 alternative = two.sided NOTE: n is number in *each* group # Given d, find the the number n of samples needed from an N(mu,sigma) # probability space so that the average m of the n samples makes a 95% # confidence interval [m-d,m+d] for mu: variance <- 12.8; sigma <- sqrt(variance) # example variance and its s.d. conf <- 0.95; sig <- 1-conf # 95% confidence is significance level 5% err <- 2.0; # allowed error; we want to estimate mu within err power.t.test(n=NULL, # this is computed and returned sig.level=sig, # 1 - confidence delta=err, # half-width of conf. interval sd=sigma, # estimated standard deviation power=0.50, # fixed value! type="one.sample") # required flag for non-default # This "magic" value power=0.50 is what it takes to get the right value of n