SAS Programs

advertisement
D.G. Bonett (11/2015)
SAS IML and Proc Power Programs
Part I - Sample Size for Desired Precision
Program 1: Sample size to estimate one mean
proc IML;
alpha = .05;
/* alpha for 1-alpha confidence
*/
var = 264.4;
/* planning value of DV variance
*/
w = 10;
/* desired confidence interval width */
/* ========================================================================*/
reset noname printadv = 0;
options nodate nonumber nocenter;
ods graphics off; ods html close; ods listing;
z = probit(1 - alpha/2);
n = int(4*var*(z/w)**2 + z**2/2) + 1;
print "Estimate Mean: One-group Design";
print ,,"Desired confidence =
" ((1 - alpha)*100) [format = 9.3];
print "Desired CI width =
" w [format = 9.3];
print "Variance planning value =
" var [format = 9.3];
print ,,"Sample size requirement =
" n [format = 9.0];
quit;
Program 2: Sample size to estimate a mean difference (2-group design)
proc IML;
alpha = .05;
/* alpha for 1-alpha confidence
var = 37.1;
/* planning value of within-group DV variance
w = 5;
/* desired confidence interval width
/* =========================================================================
reset noname printadv = 0;
options nodate nonumber nocenter;
ods graphics off; ods html close; ods listing;
z = probit(1 - alpha/2);
n = int(8*var*(z/w)**2 + z**2/4) + 1;
print "Estimate Mean Difference: Two-group Design";
print ,,"Desired confidence =
" ((1 - alpha)*100) [format =
print "Desired CI width =
" w [format = 9.3];
print "Variance planning value =
" var [format = 9.3];
print ,,"Sample size requirement per group =
" n [format = 9.0];
quit;
*/
*/
*/
*/
9.3];
D.G. Bonett (11/2015)
Program 3: Sample size to estimate a linear contrast of means (between-subjects design)
proc IML;
alpha = .05;
/* alpha for 1-alpha confidence
*/
var = 5.62;
/* planning values of within-group DV variance */
w = 2.0;
/* desired confidence interval width
*/
c = {.5, .5, -1};
/* vector of contrast coefficients
*/
/* ========================================================================= */
reset noname printadv = 0;
options nodate nonumber nocenter;
ods graphics off; ods html close; ods listing;
z = probit(1 - alpha/2);
m = sum(c ^= 0);
n = int(4*var*(c`*c)*(z/w)**2 + z**2/(2*m)) + 1;
print "Estimate Linear Contrast of Means: Between-subjects Design";
print ,,"Contrast coefficients =
" (c`) [format = 5.4];
print "Desired confidence =
" ((1 - alpha)*100) [format = 9.3];
print "Desired CI width =
" w [format = 9.3];
print "Variance planning value =
" var [format = 9.3];
print ,,"Sample size requirement per group = " n [format = 9.0];
quit;
Program 4: Sample size to estimate mean difference (within-subjects design)
proc IML;
alpha = .0167;
/* alpha for 1-alpha confidence
var = 45.67;
/* planning value of DV variance
cor = .919;
/* planning of correlation
w = 2;
/* desired confidence interval width
/* ========================================================================
reset noname printadv = 0;
options nodate nonumber nocenter;
ods graphics off; ods html close; ods listing;
z = probit(1 - alpha/2);
n = int(8*var*(1 - cor)*(z/w)**2 + z**2/2) + 1;
print "Estimate Mean Difference: Within-subjects Design";
print ,,"Desired confidence =
" ((1 - alpha)*100) [format = 9.3];
print "Desired CI width =
" w [format = 9.3];
print "Variance planning value =
" var [format = 9.3];
print "Correlation planning value = " cor [format = 9.3];
print ,,"Sample size requirement =
" n [format = 9.0];
quit;
*/
*/
*/
*/
*/
D.G. Bonett (11/2015)
Program 5: Sample size to estimate a linear contrast of means (within-subjects design)
proc IML;
alpha = .05;
/* alpha for 1-alpha confidence
var = 45.67;
/* planning value of largest DV variance
cor = .919;
/* planning of smallest correlation
w = 2;
/* desired confidence interval width
h = {.5, .5, -1};
/* vector of contrast coefficients
/* ========================================================================
reset noname printadv = 0;
options nodate nonumber nocenter;
ods graphics off; ods html close; ods listing;
z = probit(1 - alpha/2);
n = int(4*var*(h`*h)*(1 - cor)*(z/w)**2 + z**2/2) + 1;
print "Estimate Linear Contrast of Means: Within-subjects Design";
print ,,"Contrast coefficients =
" (h`) [format = 5.3];
print "Desired confidence =
" ((1 - alpha)*100) [format = 9.3];
print "Desired CI width =
" w [format = 9.3];
print "Variance planning value =
" var [format = 9.3];
print "Correlation planning value = " cor [format = 9.3];
print ,,"Sample size requirement =
" n [format = 9.0];
quit;
*/
*/
*/
*/
*/
*/
Program 6: Sample size to estimate a standardized mean difference (2-group design)
proc IML;
alpha = .05;
/* alpha for 1-alpha confidence
*/
d = .029;
/* planning value of standardized mean difference */
w = .4;
/* desired confidence interval width
*/
/* ========================================================================= */
reset noname printadv = 0;
options nodate nonumber nocenter;
ods graphics off; ods html close; ods listing;
z = probit(1 - alpha/2);
n = int((d**2 + 8)*(z/w)**2) + 1;
print "Estimate Standardized Mean Difference: Two-group Design";
print ,,"Desired confidence =
" ((1 - alpha)*100) [format = 9.3];
print "Desired CI width =
" w [format = 9.3];
print "Std difference planning value =
" d [format = 9.3];
print ,,"Sample size requirement per group = " n [format = 9.0];
quit;
D.G. Bonett (11/2015)
Program 7: Sample size to estimate a standardized linear contrast of means (between-subjects
design)
proc IML;
alpha = .05;
/* alpha for 1-alpha confidence
*/
d = 1;
/* planning value of DV variance
*/
w = .6;
/* desired confidence interval width */
c = {.5, .5, -.5, -.5};
/* vector of contrast coefficients
*/
/* =========================================================================== */
reset noname printadv = 0;
options nodate nonumber nocenter;
ods graphics off; ods html close; ods listing;
z = probit(1 - alpha/2);
a = nrow(c);
n = int((2*d**2/a + 4*(c`*c))*(z/w)**2) + 1;
print "Estimate Standardized Linear Contrast of Means: Between-subjects Design";
print ,,"Contrast coefficients =
" (c`) [format = 5.3];
print "Desired confidence =
" ((1 - alpha)*100) [format = 9.3];
print "Desired CI width =
" w [format = 9.3];
print "Standardized contrast planning value = " d [format = 9.3];
print ,,"Sample size requirement per group =
" n [format = 9.0];
quit;
Program 8: Sample size to estimate a standardized mean difference (within-subjects design)
proc IML;
alpha = .05;
/* alpha for 1-alpha confidence
*/
d = 1;
/* planning value of standardized mean difference */
cor = .65;
/* planning of correlation
*/
w = .6;
/* desired confidence interval width
*/
/* =========================================================================== */
reset noname printadv = 0;
options nodate nonumber nocenter;
ods graphics off; ods html close; ods listing;
z = probit(1 - alpha/2);
n = int(4*(d**2*(1 + cor**2)/4 + 2*(1 - cor))*(z/w)**2) + 1;
print "Estimate Standardized Mean Difference: Within-subjects Design";
print ,,"Desired confidence =
" ((1 - alpha)*100) [format = 9.3];
print "Desired CI width =
" w [format = 9.3];
print "Standardized difference planning value = " d [format = 9.3];
print "Correlation planning value =
" cor [format = 9.3];
print ,,"Sample size requirement =
" n [format = 9.0];
quit;
D.G. Bonett (11/2015)
Program 9: Sample size to estimate a standardized linear contrast of means (within-subjects
design)
proc IML;
alpha = .05;
/* alpha for 1-alpha confidence
*/
d = 1;
/* planning value of standardized contrast */
cor = .7;
/* planning of correlation
*/
w = .6;
/* desired confidence interval width
*/
h = {.5, .5, -.5, -.5};
/* vector of contrast coefficients
*/
/* ========================================================================= */
reset noname printadv = 0;
options nodate nonumber nocenter;
ods graphics off; ods html close; ods listing;
z = probit(1 - alpha/2);
a = nrow(h);
n = int(4*(d**2*(1+(a - 1)*cor**2)/(2*a) + (h`*h)*(1 - cor))*(z/w)**2) + 1;
print "Estimate Standardized Linear Contrast of Means: Within-subjects Design";
print ,,"Contrast coefficients =
" (c`) [format = 5.3];
print "Desired confidence =
" ((1 - alpha)*100) [format = 9.3];
print "Desired CI width =
" w [format = 9.3];
print "Standardized contrast planning value = " d [format = 9.3];
print "Correlation planning value =
" cor [format = 9.3];
print ,,"Sample size requirement =
" n [format = 9.0];
quit;
Program 10: Second-stage sample size requirement
proc IML;
n0 = 20;
/* first-stage sample size */
w0 = 5.3;
/* first-stage CI width
*/
w = 2.5;
/* desired CI width
*/
/* ===================================================================== */
reset noname printadv = 0;
options nodate nonumber nocenter;
ods graphics off; ods html close; ods listing;
n = int(((w0/w)**2 - 1)*n0) + 1;
print "Two-stage Sampling";
print ,,"Desired confidence interval width =
" w [format = 9.3];
print "Obtained 1st-stage confidence interval width = " w0 [format = 9.3];
print ,,"Final sample size requirement =
" n [format = 9.0];
quit;
D.G. Bonett (11/2015)
Part II - Sample Size for Desired Power
Program 11: Sample size for one sample t-test
proc IML;
alpha = .05;
var = 80.5;
pow = .90;
es = 7.0;
/* alpha value for test
/* planning value of DV variance
/* desired power
/* mean planning value minus
/* null hypothesis value
/* =====================================================================
reset noname printadv = 0;
options nodate nonumber nocenter;
ods graphics off; ods html close; ods listing;
za = probit(1 - alpha/2);
zb = probit(pow);
n = int(var*(za + zb)**2/es**2 + za**2/2) + 1;
print "Test Mean = b: One-group Design";
print ,,"Alpha level =
" alpha [format = 9.3];
print "Desired power =
" pow [format = 9.3];
print "Variance planning value = " var [format = 9.3];
print "Effect size =
" es [format = 9.3];
print ,,"Sample size requirement = " n [format = 9.0];
quit;
*/
*/
*/
*/
*/
*/
Program 12: Sample size for independent-samples t-test
proc IML;
alpha = .05;
/* alpha value for test
var = 100.0;
/* planning value of within-group DV variance
pow = .95;
/* desired power
es = 10.0;
/* planning value of mean difference
/* ======================================================================
reset noname printadv = 0;
options nodate nonumber nocenter;
ods graphics off; ods html close; ods listing;
za = probit(1 - alpha/2);
zb = probit(pow);
n = int(2*var*(za + zb)**2/es**2 + za**2/4) + 1;
print "Test Mean Difference: Two-group Design";
print ,,"Alpha level =
" alpha [format = 9.3];
print "Desired power =
" pow [format = 9.3];
print "Variance planning value =
" var [format = 9.3];
print "Effect size =
" es [format = 9.3];
print ,,"Sample size requirement per group = " n [format = 9.0];
quit;
*/
*/
*/
*/
*/
D.G. Bonett (11/2015)
Program 13: Sample size to test a linear contrast of means (between-subjects design)
proc IML;
alpha = .05;
/* alpha value for test
var = 27.5;
/* planning value of within-group DV variance
pow = .90;
/* desired power
es = 5.0;
/* planning value of linear contrast
c = {1, -1, -1, 1};
/* vector of contrast coefficients
/* ========================================================================
reset noname printadv = 0;
options nodate nonumber nocenter;
ods graphics off; ods html close; ods listing;
za = probit(1 - alpha/2);
zb = probit(pow);
m = sum(c ^= 0);
n = int(var*(c`*c)*(za + zb)**2/es**2 + za**2/(2*m)) + 1;
print "Test Linear Contrast of Means: Between-subjects Design";
print ,,"Contrast coefficients =
" (c`) [format = 5.3];
print "Alpha level =
" alpha [format = 9.3];
print "Desired power =
" pow [format = 9.3];
print "Variance planning value =
" var [format = 9.3];
print "Effect size =
" es [format = 9.3];
print ,,"Sample size requirement per group = " n [format = 9.0];
quit;
Program 14: Sample size for paired-samples t-test
proc IML;
alpha = .05;
/* alpha value for test
var = 1.25;
/* planning value of DV variance
cor = .75;
/* planning value of correlation
pow = .80;
/* desired power
es = .5;
/* planning value of mean difference
/* =====================================================================
reset noname printadv = 0;
options nodate nonumber nocenter;
ods graphics off; ods html close; ods listing;
za = probit(1 - alpha/2);
zb = probit(pow);
n = int(2*var*(1 - cor)*(za + zb)**2/es**2 + za**2/2) + 1;
print "Test Mean Difference: Within-subjects Design";
print ,,"Alpha level =
" alpha [format = 9.3];
print "Desired power =
" pow [format = 9.3];
print "Variance planning value =
" var [format = 9.3];
print "Correlation planning value = " cor [format = 9.3];
print "Effect size =
" es [format = 9.3];
print ,,"Sample size requirement =
" n [format = 9.0];
quit;
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
D.G. Bonett (11/2015)
Program 15: Sample size to test a linear contrast of means (within-subjects design)
proc IML;
alpha = .05;
/* alpha value for test
var = 50.7;
/* planning value of largest DV variance
pow = .90;
/* desired power
es = 2.0;
/* planning value of linear contrast
cor = .8;
/* planning value of smallest correlation
h = {.5, .5, -.5, -.5};
/* vector of contrast coefficients
/* =======================================================================
reset noname printadv = 0;
options nodate nonumber nocenter;
ods graphics off; ods html close; ods listing;
za = probit(1 - alpha/2);
zb = probit(pow);
n = int(var*(h`*h)*(1 - cor)*(za + zb)**2/(es**2) + za**2/2) + 1;
print "Test Linear Contrast of Means: Within-subjects Design";
print ,,"Contrast coefficients =
" (h`) [format = 5.3];
print "Alpha level =
" alpha [format = 9.3];
print "Desired power =
" pow [format = 9.3];
print "Effect size =
" es [format = 9.5];
print "Variance planning value =
" var [format = 9.3];
print "Correlation planning value = " cor [format = 9.3];
print "Effect size =
" es [format = 9.3];
print ,,"Sample size requirement =
" n [format = 9.0];
quit;
Program 16: Sample size for Sign test (1-group design)
proc IML;
alpha = .05;
p = .3;
/* alpha value for test
/* expected proportion of cases with scores
greater than hypothesized median
pow = .90;
/* desired power
/* =================================================================
reset noname printadv = 0;
options nodate nonumber nocenter;
ods graphics off; ods html close; ods listing;
za = probit(1 - alpha/2);
zb = probit(pow);
es = p - .5;
n = int((za + zb)**2/(4*es**2)) + 1;
print "Sign Test of Median: One-group Design";
print ,,"Alpha level =
" alpha [format = 9.3];
print "Desired power =
" pow [format = 9.3];
print "Proportion planning value = " p [format = 9.3];
print ,,"Sample size requirement =
" n [format = 9.0];
quit;
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
D.G. Bonett (11/2015)
Program 17: Sample size for Mann-Whitney test
proc IML;
alpha = .05;
p = .3;
/* alpha value for test
*/
/* expected proportion of cases with
scores higher under treatment 1
than treatment 2
*/
pow = .9;
/* desired power
*/
/* =============================================================== */
reset noname printadv = 0;
options nodate nonumber nocenter;
ods graphics off; ods html close; ods listing;
za = probit(1 - alpha/2);
zb = probit(pow);
es = p - .5;
n = int((za + zb)**2/(6*es**2)) + 1;
print "Mann-Whitney Test";
print ,,"Alpha level =
" alpha [format = 9.3];
print "Desired power =
" pow [format = 9.3];
print "Proportion planning value =
" p [format = 9.3];
print ,,"Sample size requirement per group = " n [format = 9.0];
quit;
Program 18: Sample size for Sign Test (within-subjects design)
proc IML;
alpha = .05;
p = .75;
/* alpha value for test
*/
/* expected proportion of cases with
scores greater under treatment 1
than treatment 2
*/
pow = .9;
/* desired power
*/
/* =============================================================== */
reset noname printadv = 0;
options nodate nonumber nocenter;
ods graphics off; ods html close; ods listing;
za = probit(1 - alpha/2);
zb = probit(pow);
es = p - .5;
n = int((za + zb)**2/(4*es**2)) + 1;
print "Sign Test: Within-subjects Design";
print ,,"Alpha level =
" alpha [format = 9.3];
print "Desired power =
" pow [format = 9.3];
print "Proportion planning value = " p [format = 9.3];
print ,,"Sample size requirement =
" n [format = 9.0];
quit;
D.G. Bonett (11/2015)
Part III – Confidence Intervals
Program 19: Confidence interval for a standardized mean difference (2-group design)
proc IML;
alpha = .05;
/* alpha for 1-alpha confidence level */
n1 = 12;
/* sample size for group 1
*/
n2 = 12;
/* sample size for group 2
*/
m1 = 11.83;
/* sample mean for group 1
*/
m2 = 14.25;
/* sample mean for group 2
*/
s1 = 2.04;
/* sample SD for group 1
*/
s2 = 2.42;
/* sample SD for group 2
*/
/*====================================================================== */
reset noname printadv = 0;
options nodate nonumber nocenter;
ods graphics off; ods html close; ods listing;
print "CONFIDENCE INTERVALS FOR STANDARDIZED MEAN DIFFERENCE: 2-GROUP DESIGN";
z = probit(1 - alpha/2);
s = sqrt((s1**2 + s2**2)/2);
df1 = n1 - 1;
df2 = n2 - 1;
d1 = (m1 - m2)/s;
v = d1**2*(s1**4/df1 + s2**4/df2)/(8*s**4) + (s1**2/df1 + s2**2/df2)/s**2;
se1 = sqrt(v);
ll1 = d1 - z*se1;
ul1 = d1 + z*se1;
sp = sqrt((df1*s1**2 + df2*s2**2)/(n1 + n2 - 2));
d2 = (m1 - m2)/sp;
v = d2**2*(1/df1 + 1/df2)/8 + 1/n1 + 1/n2;
se2 = sqrt(v);
ll2 = d2 - z*se2;
ul2 = d2 + z*se2;
d3 = (m1 - m2)/s1;
v = d3**2/(2*df1) + 1/df1 + s2**2/(df2*s1**2);
se3 = sqrt(v);
ll3 = d3 - z*se3;
ul3 = d3 + z*se3;
d4 = (m1 - m2)/s2;
v = d4**2/(2*df2) + 1/df2 + s1**2/(df1*s2**2);
se4 = sqrt(v);
ll4 = d4 - z*se4;
ul4 = d4 + z*se4;
print, "Confidence = " (1 - alpha) [format = 5.3];
print "n1 =
" n1 [format = 5.0];
print "n2 =
" n2 [format = 5.0];
print, "
Estimate
SE
LL
UL";
text = {"Equal variances not assumed", "Equal variances assumed",
"Group 1 standardizer", "Group 2 standardizer"};
out = ((d1||se1||ll1||ul1)//(d1||se2||ll2||ul2)
//(d3||se3||ll3||ul3)//(d4||se4||ll4||ul4));
print text out[format = 9.4];
quit;
D.G. Bonett (11/2015)
Program 20: Confidence interval for a standardized mean difference (within-subjects design)
data;
proc IML;
alpha = .05;
/* alpha for 1-alpha confidence level */
n = 25;
/* sample size
*/
m1 = 110.4;
/* sample mean for condition 1
*/
m2 = 102.1;
/* sample mean for condition 2
*/
s1 = 15.3;
/* sample SD for condition 1
*/
s2 = 14.6;
/* sample SD for condition 2
*/
r = .75;
/* sample correlation
*/
/*====================================================================== */
reset noname printadv = 0;
options nodate nonumber nocenter;
ods graphics off; ods html close; ods listing;
print "CONFIDENCE INTERVALS FOR STANDARDIZED MEAN DIFFERENCE: WITHIN-SUBJECTS DESIGN";
z = probit(1 - alpha/2);
v1 = s1**2;
v2 = s2**2;
vd = v1 + v2 - 2*r*s1*s2
s = sqrt((v1 + v2)/2);
d1 = (m1 - m2)/s;
v = d1**2*(v1**2 + v2**2 + 2*r**2*v1*v2)/(8*(n - 1)*s**4) + vd/((n - 1)*s**2);
se1 = sqrt(v);
ll1 = d1 - z*se1;
ul1 = d1 + z*se1;
v = d1**2*(1 + r**2)/(4*(n - 1)) + 2*(1 - r)/n;
se2 = sqrt(v);
ll2 = d1 - z*se2;
ul2 = d1 + z*se2;
d3 = (m1 - m2)/s1;
v = d3**2/(2*(n - 1)) + vd/((n - 1)*s1**2);
se3 = sqrt(v);
ll3 = d3 - z*se3;
ul3 = d3 + z*se3;
d4 = (m1 - m2)/s2;
v = d4**2/(2*(n - 1)) + vd/((n - 1)*s2**2);
se4 = sqrt(v);
ll4 = d4 - z*se4;
ul4 = d4 + z*se4;
print ,,"Confidence = " (1 - alpha) [format = 5.3];
print "n =
" n [format = 5.0];
print , "
Estimate
SE
LL
UL";
text = {"Equal variances not assumed", "Equal variances assumed",
"Level 1 standardizer", "Level 2 standardizer"};
out = ((d1||se1||ll1||ul1)//(d1||se2||ll2||ul2)
//(d3||se3||ll3||ul3)//(d4||se4||ll4||ul4));
print text out[format = 9.4];
quit;
D.G. Bonett (11/2015)
Program 21: Confidence interval for linear contrast of unstandardized and standardized means
(between-subjects design)
data mydata;
input n mean std c;
/* n = sample size
*/
/* mean = sample mean
*/
/* std = sample standard deviation */
/* c = contrast coefficient
*/
/* ===================================================================== */
datalines;
/* Example data - replace with your data */
10 33.5 3.84 .5
10 37.9 3.84 .5
10 38.0 3.65 -.5
10 44.1 4.98 -.5
;
/* ==================================================================== */
proc IML;
alpha = .05;
/* alpha for 1-alpha confidence */
/* ==================================================================== */
reset noname printadv = 0;
options nodate nonumber nocenter;
ods graphics off; ods html close; ods listing;
use mydata;
read all into data;
n = data[,1];
m = data[,2];
s = data[,3];
c = data[,4];
print "CONFIDENCE INTERVALS FOR LINEAR CONTRASTS OF MEANS: BETWEEN-SUBJECTS DESIGN";
file print;
print , "Confidence level: " (1 - alpha)[format = 4.3];
print , "Constrast:" (c`)[format = 6.3];
k = nrow(n);
h = c ^= 0;
b = sum(h);
n1 = n[1,1];
s1 = s[1,1];
v = s##2;
s = sqrt(sum(v)/k);
s0 = sqrt(sum(h#v)/b);
est1 = c`*m;
est2 = est1/s;
est3 = est1/s0;
est4 = est1/s1;
z = probit(1 - alpha/2);
/* ================ Computations for unequal variance methods =============== */
v1 = v/n;
se1 = sqrt(c`*diag(v1)*c);
a1 = est2**2/(k**2*s**4);
a2 = a1*sum((s##4/(2#(n - 1))));
a3 = sum((c##2)#(s##2/(n - 1)));
a4 = est3**2/(b**2*s0**4);
a5 = a4*sum(h#(s##4/(2#(n - 1))));
a6 = sum(h#(c##2)#(s##2/(n - 1)));
se2 = sqrt(a2 + a3/s**2);
se3 = sqrt(a5 + a6/s0**2);
se4 = sqrt(est4**2/(2*n1 - 2) + a3/s1**2);
u1 = (sum(v1#c##2))**2;
u2 = sum((c##4)#v1##2/(n - 1));
df = u1/u2;
t = tinv(1 - alpha/2, df);
t1 = est1/se1;
ll1 = est1 - t*se1;
D.G. Bonett (11/2015)
ul1 = est1 + t*se1;
ll2 = est2 - z*se2;
ul2 = est2 + z*se2;
ll3 = est3 - z*se3;
ul3 = est3 + z*se3;
ll4 = est4 - z*se4;
ul4 = est4 + z*se4;
text = {"Standardized (a) ", "Standardized (b) ", "Standardized (c) "};
out = (est2||se2||ll2||ul2)//(est3||se3||ll3||ul3)//(est4||se4||ll4||ul4);
print ,, "Equal variances not assumed:";
print , "
Contrast
SE
LL
UL
t
print "Unstandardized
" est1[format = 10.4] se1[format = 10.4]
ll1[format = 10.4] ul1[format = 10.4] t1[format = 10.4] df[format = 10.2];
print text out[format = 10.4];
/* ================= Computations for Equal Variance Methods ================= */
df = sum(n) - k;
sp = sum((n - 1)#v)/df;
se1 = sqrt(sp*c`*diag(1/n)*c);
a1 = est2**2/k**2;
a2 = a1*sum(1/(2#(n - 1)));
a3 = sum(c##2/n);
a4 = est3**2/b**2;
a5 = a4*sum(h/(2#(n - 1));
a6 = sum(h#c##2/n);
se2 = sqrt(a2 + a3);
se3 = sqrt(a5 + a6);
se4 = sqrt(est4**2/(2*n1 - 2) + a3);
t = tinv(1 - alpha/2, df);
t1 = est1/se1;
ll1 = est1 - t*se1;
ul1 = est1 + t*se1;
ll2 = est2 - z*se2;
ul2 = est2 + z*se2;
ll3 = est3 - z*se3;
ul3 = est3 + z*se3;
ll4 = est4 - z*se4;
ul4 = est4 + z*se4;
text = {"Standardized (a) ", "Standardized (b) ", "Standardized (c) "};
out = (est2||se2||ll2||ul2)//(est3||se3||ll3||ul3)//(est4||se4||ll4||ul4);
print ,, "Equal variances assumed:";
print , "
Contrast
SE
LL
UL
t
print "Unstandardized
" est1[format = 10.4] se1[format = 10.4] ll1[format = 10.4]
ul1[format = 10.4] t1[format = 10.4] df[format = 10.2];
print text out[format = 10.4];
print ,, "Notes:";
print "a = standardizer based on variances from all groups";
print "b = standardizer based on variances from groups with nonzero coefficients";
print "c = standardizer based on variances from group 1 (assumed control group)";
quit;
df";
df";
D.G. Bonett (11/2015)
Part IV – Power for Specified Sample Size
Program 22: Power for one-sample t-test
proc power;
onesamplemeans
power = .
alpha = 0.05
stddev = 15
mean = 105.0
nullmean = 100
ntotal = 75;
run;
/*
/*
/*
/*
/*
/*
/*
NOTE: no semicolon until last statement
solve for power
alpha value for test
square root of planning variance
planning mean
null hypothesis value
sample size
*/
*/
*/
*/
*/
*/
*/
Program 23: Power for independent-samples t-test
proc power;
twosamplemeans
power = .
alpha = 0.05
stddev = 6.1
meandiff = 5.0
npergroup = 20;
run;
/*
/*
/*
/*
/*
/*
NOTE: no semicolon until last statement
solve for power
alpha value for test
square root of planning variance
difference in planning means
sample size per group
*/
*/
*/
*/
*/
*/
Program 24: Power for paired-samples t-test
proc power;
pairedmeans
power = .
alpha = 0.05
stddev = 10.0
corr = .8
meandiff = 5.0
npairs = 20;
run;
/*
/*
/*
/*
/*
/*
/*
NOTE: no semicolon until last statement
solve for power
alpha value for test
square root of planning variance
planning correlation
difference in planning means
sample size (number of pairs)
*/
*/
*/
*/
*/
*/
*/
Program 25: Power of F-test in one-way ANOVA (between-subjects design)
proc power;
onewayanova
power = .
alpha = 0.05
groupmeans = 10|15|20|22
groupns = 20|20|20|20
stddev = 12
test = overall_F;
run;
/*
/*
/*
/*
/*
/*
/*
NOTE: no semicolon until last statement
solve for power
alpha value for test
planning value means
group sample sizes
squared root of planning variance
specify F-test of equal means
*/
*/
*/
*/
*/
*/
*/
D.G. Bonett (11/2015)
Program 26: Power of test of linear contrast of means (between-subjects design)
proc power;
onewayanova
power = .
alpha = 0.05
groupmeans = 10|15|20|22
groupns = 20|20|20|20
stddev = 12
contrast =(.5 .5 -.5 -.5);
run;
/*
/*
/*
/*
/*
/*
/*
NOTE: no semicolon until last statement
solve for power
alpha value for test
planning value means (4 group design)
group sample sizes
square root of planning variance
contrast coefficients
*/
*/
*/
*/
*/
*/
*/
D.G. Bonett (11/2015)
Part V – Random Sample and Randomization Programs
Program 27: Random sample generator
data random (keep = ID);
N = 4000;
/* study population size */
do ID = 1 to N;
output;
end;
proc surveyselect data = random method = SRS rep = 1 seed = 0 out = sample
sampsize = 32;
/* sample size
*/
ID _all_;
run;
proc print data = sample;
var ID;
run;
Program 28: Randomization into groups
proc print data = sample;
var ID;
options nonumber;
proc format;
value treatment
1 = 'Treatment 1'
2 = 'Treatment 2';
/* a label for each treatment condition
*/
/* add 3='Treatment 3'; for 3 group design, etc. */
/* out semicolon at end of last line only
*/
run;
proc plan;
factors subject = 10 random treatment = 2
/* number of subjects per group in subject =
*/
/* number of treatment groups in treatment =
*/
random/noprint;
output out = first treatment nvals = (1 2) random;
/* integers 1 2 ... k where k is number of groups */
run;
data first(keep = ID subject treatment);
set first;
id = put(_n_, z3.);
run;
proc sort; by ID;
run;
proc print noobs split = "*";
var ID treatment;
label ID = "SUBJECT*ID"
treatment = "TREATMENT*GROUP";
format treatment treatment.;
run;
Download