CBT.csv
proc import datafile="F:\publish\data analysis using R\data\CBT.csv" out=cbt dbms=csv replace;
run;
proc sql;
select t(postwt-prewt) as t, prt(postwt-prewt) as pvalue
from cbt
;quit;
t pvalue
------------------
2.215588 0.035023
/* make cbt long for proc mixed */
proc sql;
create table cbt_long as
select monotonic() as id, 1 as period, prewt as weight from cbt union
select monotonic() as id, 2 as period, postwt as weigt from cbt
;quit;
proc mixed data=cbt_long;
class id period;
model weight = period;
random id;
run;
/* Note: 2.215588^2 = 4.90883 (F) */
Cov Parm Estimate
id 19.9096
Residual 26.7071
Num Den
Effect DF DF F Value Pr > F
period 1 28 4.91 0.0350
proc mixed data=cbt_long method=ml;
class id period;
model weight = period;
random id;
run;
Cov Parm Estimate
id 19.2231
Residual 25.7862
Type 3 Tests of Fixed Effects
Num Den
Effect DF DF F Value Pr > F
period 1 28 5.08 0.0322
proc nlmixed data=cbt_long;
parms mu=10, p=10, s2b=10, s2e=10;
if period=1 then eta=mu+bi;
else eta=mu+p+bi;
model weight ~ normal(eta, s2e);
random bi ~ normal(0, s2b) subject=id;
run;
Standard
Parameter Estimate Error DF t Value Pr > |t| Alpha Lower Upper Gradient
mu 82.6897 1.2458 28 66.37 <.0001 0.05 80.1377 85.2416 1.588E-6
p 3.0069 1.3336 28 2.25 0.0322 0.05 0.2752 5.7385 -2.73E-7
s2b 19.2231 9.0884 28 2.12 0.0434 0.05 0.6064 37.8398 -1.22E-8
s2e 25.7862 6.7718 28 3.81 0.0007 0.05 11.9148 39.6576 1.564E-7