Figure 3.1, page 87.

(a)

proc print data = pain; where paintol = .; run; data pain; set pain; where id not in (4, 18, 20, 33, 42, 44); run; proc sort data = pain; by id cs; run; proc means data = pain; where trial ne 4; by id cs; var l2paintol; output out = pain2; run; data pain2; set pain2; if _STAT_ = "MEAN"; rename _STAT_ = l2paintol; keep l2paintol id cs; run; proc univariate data = pain2 noprint; where cs = "attender"; histogram l2paintol / midpoints=3.167 to 7.833 by .333 vscale = count; run;

(b)

proc univariate data = pain2 noprint; where cs = "distracter"; histogram l2paintol / midpoints=3.167 to 7.833 by .333 vscale = count; run;

Table 3.1, page 88.

proc ttest data = pain2; class cs; var l2paintol; run;

The TTEST Procedure Statistics Lower CL Upper CL Lower CL Upper CL Variable cs N Mean Mean Mean Std Dev Std Dev Std Dev Std Err l2paintol attender 29 4.1384 4.473 4.8075 0.6979 0.8795 1.1895 0.1633 l2paintol distracter 29 4.6601 5.0762 5.4923 0.8681 1.0939 1.4794 0.2031 l2paintol Diff (1-2) -1.125 -0.603 -0.081 0.8379 0.9925 1.2175 0.2606 T-Tests Variable Method Variances DF t Value Pr > |t| l2paintol Pooled Equal 56 -2.31 0.0243 l2paintol Satterthwaite Unequal 53.5 -2.31 0.0245 Equality of Variances Variable Method Num DF Den DF F Value Pr > F l2paintol Folded F 28 28 1.55 0.2544

Table 3.2, page 89.

data transform; input l2seconds; datalines; .6 .88 1.09 4.47 5.08 3 4 5 6 7 8 ; run; data transform; set transform; seconds = 2 ** l2seconds; run; proc print data = transform; run;

Obs l2seconds seconds 1 0.60 1.516 2 0.88 1.840 3 1.09 2.129 4 4.47 22.162 5 5.08 33.825 6 3.00 8.000 7 4.00 16.000 8 5.00 32.000 9 6.00 64.000 10 7.00 128.000 11 8.00 256.000

Figure 3.2, page 90.

(a) Follows formula from page 89

proc means data = pain; var l2paintol trial; run; data pain; set pain; ystar = l2paintol - 4.7730379; tstar = (trial - 2.5); tstar2 = (tstar) * (tstar); ytstar = ystar * tstar; run; proc sort data = pain; by id treatment cs; run; proc means data = pain sum; by id treatment cs; var ytstar tstar2; output out = pain3; run; data pain3; set pain3; where _STAT_ = "MEAN"; drop _FREQ_ _STAT_ _TYPE_; ytstar = 4 * ytstar; tstar2 = 4 * tstar2; slope = ytstar / tstar2; run; proc univariate data = pain3 noprint; where cs = "attender"; histogram slope / midpoints=-.9375 to 0.9375 by .125 vscale = count RTINCLUDE; run;

(b)

proc univariate data = pain3 noprint; where cs = "distracter"; histogram slope / midpoints=-.9375 to 0.9375 by .125 vscale = count RTINCLUDE; run;

Table 3.3, page 90.

proc ttest data = pain3; class cs; var slope; run;

The TTEST Procedure Statistics Lower CL Upper CL Lower CL Upper CL Variable cs N Mean Mean Mean Std Dev Std Dev Std Dev Std Err slope attender 29 -0.109 -0.017 0.0739 0.1904 0.2399 0.3245 0.0446 slope distracter 29 -0.187 -0.046 0.0959 0.2954 0.3722 0.5034 0.0691 slope Diff (1-2) -0.136 0.0283 0.193 0.2644 0.3131 0.3841 0.0822 T-Tests Variable Method Variances DF t Value Pr > |t| slope Pooled Equal 56 0.34 0.7324 slope Satterthwaite Unequal 47.8 0.34 0.7326 Equality of Variances Variable Method Num DF Den DF F Value Pr > F slope Folded F 28 28 2.41 0.0234

Figure 3.3, page 91.

data pain3; set pain3; if cs = "attender" then do; if treatment = "attend" then cst = "AA"; else if treatment = "distract" then cst = "AD"; else cst = "AN"; end; if cs = "distracter" then do; if treatment = "attend" then cst = "DA"; else if treatment = "distract" then cst = "DD"; else cst = "DN"; end; run; proc sort data = pain3; by cst; run; proc boxplot data = pain3; plot slope * cst; run;

Table 3.4, page 92.

data t2; set pain; where trial = 2; keep id cs treatment l2paintol; run; data t4; set pain; where trial = 4; keep id cs treatment l2paintol; run; data t2; set t2; rename l2paintol = l2pt2; run; data t4; set t4; rename l2paintol = l2pt4; run; proc sort data = t2; by id; run; proc sort data = t4; by id; run; data pain24; merge t2 t4; by id; if cs = "attender" then do; if treatment = "attend" then cst = "AA"; else if treatment = "distract" then cst = "AD"; else cst = "AN"; end; if cs = "distracter" then do; if treatment = "attend" then cst = "DA"; else if treatment = "distract" then cst = "DD"; else cst = "DN"; end; run; proc sort data = pain24; by cst; run; proc ttest data = pain24; paired l2pt4 * l2pt2; by cst; run;

*[…output omitted…]*

Figure 3.4, page 93.

data pain24; set pain24; diff = l2pt4 - l2pt2; run; proc sort data = pain24; by cst; run; proc boxplot data = pain24; plot diff * cst; run;

Table 3.5, page 93.

data AAAN DDDN; set pain24; if cst in ("AA" "AN") then output AAAN; if cst in ("DD" "DN") then output DDDN; run; proc ttest data = AAAN; class CST; var diff; run;

The TTEST Procedure Statistics Lower CL Upper CL Lower CL Upper CL Variable cst N Mean Mean Mean Std Dev Std Dev Std Dev Std Err diff AA 10 -0.445 0.1819 0.8085 0.6025 0.8759 1.599 0.277 diff AN 9 -0.393 0.0284 0.4501 0.3706 0.5486 1.051 0.1829 diff Diff (1-2) -0.564 0.1536 0.871 0.5554 0.7401 1.1096 0.3401 T-Tests Variable Method Variances DF t Value Pr > |t| diff Pooled Equal 17 0.45 0.6573 diff Satterthwaite Unequal 15.3 0.46 0.6501 Equality of Variances Variable Method Num DF Den DF F Value Pr > F diff Folded F 9 8 2.55 0.2022

proc ttest data = DDDN; class CST; var diff; run;

The TTEST Procedure Statistics Lower CL Upper CL Lower CL Upper CL Variable cst N Mean Mean Mean Std Dev Std Dev Std Dev Std Err diff DD 11 0.0682 0.7153 1.3625 0.6731 0.9633 1.6906 0.2905 diff DN 8 -1.8 -0.679 0.4427 0.8868 1.3413 2.7299 0.4742 diff Diff (1-2) 0.282 1.394 2.5061 0.8512 1.1343 1.7005 0.5271 T-Tests Variable Method Variances DF t Value Pr > |t| diff Pooled Equal 17 2.64 0.0170 diff Satterthwaite Unequal 12 2.51 0.0275 Equality of Variances Variable Method Num DF Den DF F Value Pr > F diff Folded F 7 10 1.94 0.3303