proc de jour - proc mixed - sas · proc de jour - analysis for ... random patient(drug); repeated...

25
Proc de Jour Proc de Jour - - Analysis for Linear Models Analysis for Linear Models with Continuous Response Data Using with Continuous Response Data Using Proc Mixed Proc Mixed GHSUG Presentation GHSUG Presentation April 23, 2010 April 23, 2010 by by David Borth David Borth [email protected] [email protected] http:// http:// ca.linkedin.com/in/davidborth ca.linkedin.com/in/davidborth

Upload: vuongnhu

Post on 19-May-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

Proc de Jour Proc de Jour -- Analysis for Linear Models Analysis for Linear Models with Continuous Response Data Using with Continuous Response Data Using

Proc MixedProc Mixed

GHSUG PresentationGHSUG Presentation

April 23, 2010April 23, 2010

byby

David BorthDavid Borth

[email protected]@gmail.com

http://http://ca.linkedin.com/in/davidborthca.linkedin.com/in/davidborth

Page 2: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

OutlineOutline• What are mixed models – examples, math

• Basic syntax

• Class, model, random and repeated statements

• Simple repeated measures example with code

• Sample output

• G side vs. R side modeling

• Longitudinal model example with random coefficients

• BLUPs and EBLUPs

• Heterogeneous variances

• Conclusion

Page 3: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

What Is Proc Mixed?What Is Proc Mixed?

• An important Proc which significantly generalizes Proc GLM to handle linear mixed models

– For continuous response data (not count data)

Examples of Mixed ModelsExamples of Mixed Models• Split plot designs

– e.g. fertilizer as main plot, varieties as subplots

• Components of variance models

– e.g. measurement system study with different laboratories, days, analysts, etc.

• Repeated measures (often longitudinal studies)

Page 4: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

What is a Mixed Model?What is a Mixed Model?

)IN(0,~ 2σε

εβ += Xy

Generalize from General Linear Model:

To Linear Mixed Model:

0Cov(u,

R)N(0,

),0(~u

Zu

=)

++=

ε

ε

εβ

GN

Xy

Allows more than one random effectand allows that ε’s have covariance structure

Page 5: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

Proc Mixed Proc Mixed -- SyntaxSyntaxPROC MIXED < Data=, Method=REML (default), other options > ;

BY variables ;

CLASSCLASS variables ;

ID variables ;

MODEL dependent = < fixed-effects > < / options > ;

RANDOM random-effects < / options > ;

REPEATED < repeated-effect > < / options > ;

PARMS (value-list) ... < / options > ;

PRIOR < distribution > < / options > ;

CONTRAST 'label' < fixed-effect values ... > < | random-effect values ... > , ... < / options > ;

ESTIMATE 'label' < fixed-effect values ... > < | random-effect values ... >< / options > ;

LSMEANS fixed-effects < / options > ;

MAKE 'table' OUT=SAS-data-set ;

WEIGHT variable ;

Page 6: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

Class, Model (Class, Model (XXββ)), Random (, Random (ZuZu) & Repeated (R) ) & Repeated (R)

StatementsStatements

*Class as in Proc GLM defines variable as categorical:

Class A B C time individual ;

Model y=A B A*B x/ ddfm=kr; *ddfm = denominator df method;

Random intercept x/ type=un subject=individual; *un=unstructured;

Random C / type=vc; *vc=variance component;

Repeated time/subject=individual type=AR(1);

Many more options exist for model, random and repeated statements!

Many more types exist for the repeated statement!

Page 7: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

Repeated Measures Repeated Measures –– Example 1Example 1Effect of Three Drugs on Respiratory Ability of Asthma PatientsEffect of Three Drugs on Respiratory Ability of Asthma Patients

• Respiratory ability (Fev1) was measured at one hour intervals

• 3 x 24 patients randomly assigned to one of three drugs

• The drugs were placebo (P), standard (A) and experimental (C)

drug=p

pat i ent 201 202 203 204 205 206 207 208209 210 211 212 214 215 216 217

218 219 220 221 222 223 224 232

f ev1

0

1

2

3

4

hour

1 2 3 4 5 6 7 8

Page 8: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

Sample Code for AnalysisSample Code for Analysis

*Data set variables are patient drug hour fev1;

proc mixed data=fev1uni;

class drug patient hour;

model fev1 = drug hour drug*hour;

random patient(drug);

repeated hour / subject=patient(drug)

type=ar(1);

run;

Page 9: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

SAS OutputSAS OutputThe Mixed Procedure

Model Information

Data Set WORK.FEV1UNI

Dependent Variable fev1

Covariance Structures Variance Components,

Autoregressive

Subject Effect patient(drug)

Estimation Method REML

Residual Variance Method Profile

Fixed Effects SE Method Model-Based

Degrees of Freedom Method Containment

Page 10: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

SAS Output SAS Output -- ContinuedContinuedClass Level InformationClass Level InformationClass Level InformationClass Level Information

Class Levels ValuesClass Levels ValuesClass Levels ValuesClass Levels Values

drug 3 a c pdrug 3 a c pdrug 3 a c pdrug 3 a c p

patient 24 201 202 203 204 205 206 patient 24 201 202 203 204 205 206 patient 24 201 202 203 204 205 206 patient 24 201 202 203 204 205 206 207207207207

208 209 210 211 212 214 208 209 210 211 212 214 208 209 210 211 212 214 208 209 210 211 212 214 215215215215

216 217 218 219 220 221 216 217 218 219 220 221 216 217 218 219 220 221 216 217 218 219 220 221 222222222222

223 224 232223 224 232223 224 232223 224 232

hour 8 1 2 3 4 5 6 7 8hour 8 1 2 3 4 5 6 7 8hour 8 1 2 3 4 5 6 7 8hour 8 1 2 3 4 5 6 7 8

DimensionsDimensionsDimensionsDimensions

Covariance Parameters 3Covariance Parameters 3Covariance Parameters 3Covariance Parameters 3

Columns in X 36Columns in X 36Columns in X 36Columns in X 36

Columns in Z 72Columns in Z 72Columns in Z 72Columns in Z 72

Subjects 1Subjects 1Subjects 1Subjects 1

Max Max Max Max ObsObsObsObs Per Subject 576Per Subject 576Per Subject 576Per Subject 576

Number of ObservationsNumber of ObservationsNumber of ObservationsNumber of Observations

Number of Observations Read 5Number of Observations Read 5Number of Observations Read 5Number of Observations Read 576767676

Number of Observations Used 5Number of Observations Used 5Number of Observations Used 5Number of Observations Used 576767676

Number of Observations Not Used Number of Observations Not Used Number of Observations Not Used Number of Observations Not Used 0000

Page 11: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

SAS Output SAS Output -- ContinuedContinuedCovariance Parameter EstimatesCovariance Parameter EstimatesCovariance Parameter EstimatesCovariance Parameter Estimates

CovCovCovCov ParmParmParmParm Subject EstimateSubject EstimateSubject EstimateSubject Estimate

patient(drugpatient(drugpatient(drugpatient(drug) 0.4145) 0.4145) 0.4145) 0.4145

AR(1) AR(1) AR(1) AR(1) patient(drugpatient(drugpatient(drugpatient(drug) 0.5420) 0.5420) 0.5420) 0.5420

Residual 0.08Residual 0.08Residual 0.08Residual 0.08337337337337

Fit StatisticsFit StatisticsFit StatisticsFit Statistics

----2 2 2 2 ResResResRes Log Likelihood 296.0Log Likelihood 296.0Log Likelihood 296.0Log Likelihood 296.0

AIC (smaller is better) 302.0AIC (smaller is better) 302.0AIC (smaller is better) 302.0AIC (smaller is better) 302.0

AICC (smaller is better) 302.1AICC (smaller is better) 302.1AICC (smaller is better) 302.1AICC (smaller is better) 302.1

BIC (smaller is better) 308.9BIC (smaller is better) 308.9BIC (smaller is better) 308.9BIC (smaller is better) 308.9

Type 3 Tests of Fixed EffectsType 3 Tests of Fixed EffectsType 3 Tests of Fixed EffectsType 3 Tests of Fixed Effects

Num DenNum DenNum DenNum Den

Effect DF Effect DF Effect DF Effect DF DFDFDFDF F Value Pr > FF Value Pr > FF Value Pr > FF Value Pr > F

drug 2 69 3.64 0.drug 2 69 3.64 0.drug 2 69 3.64 0.drug 2 69 3.64 0.0315031503150315

hour 7 483 17.03 <.hour 7 483 17.03 <.hour 7 483 17.03 <.hour 7 483 17.03 <.0001000100010001

drug*hour 14 483 3.93 <.drug*hour 14 483 3.93 <.drug*hour 14 483 3.93 <.drug*hour 14 483 3.93 <.0001000100010001

Page 12: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

Plot of Means by TreatmentPlot of Means by TreatmentBars Show 1 Std. Error of MeansBars Show 1 Std. Error of Means

drug a c p

f ev1

0

1

2

3

4

5

hour

1 2 3 4 5 6 7 8

Page 13: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

G Side vs. R Side ModelingG Side vs. R Side Modeling

),0(~

')(

),N(X~y

R)Zu,(~|

GNu

RZGZyVarV

V

XNuy

+==

+

β

β

- Sometimes random effects (u) are not modeled

directly, but instead are incorporated into the (modified)

R matrix = ZGZ’+R

-Then in Proc Mixed there is a Repeated statement, but

no Random statement

- There are a large number of type= choices on the

repeated statement for R side modeling

Page 14: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

Example 2: Relationship Between Health Traits and Milk, Example 2: Relationship Between Health Traits and Milk,

Fat and Protein Yields. Fat and Protein Yields.

A Longitudinal Analysis using Random CoefficientsA Longitudinal Analysis using Random Coefficients. .

••Production measurements from a single lactation per Production measurements from a single lactation per

cow cow -- 1292 cows in 53 herds 1292 cows in 53 herds

••Average of 8 production measurements per lactationAverage of 8 production measurements per lactation

••Approximately 10,000 measurements of 24 hour milk, Approximately 10,000 measurements of 24 hour milk,

fat and protein yield, overallfat and protein yield, overall

Page 15: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

Longitudinal Data

24 Hour Milk Yields vs. Days in Milk

HERD=31405

M24

0

10

20

30

40

50

60

70

DIM

0 25 50 75 100 125 150 175 200 225 250 275 300 325 350

Page 16: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

Statistical Modeling Statistical Modeling -- WoodWood’’s Model withs Model with

Random CoefficientsRandom Coefficients

ijijiijiiij DIMnaDIMaaMn ε+++= )()24( )(2)(10 ll

∑=

++=K

k

ikiki xa1

00000 δββ

∑=

++=K

k

ikiki xa1

11101 δββ

∑=

++=K

k

ikiki xa1

22202 δββ

•Conceptually, coefficients for each cow are modeled

as functions of the model fixed effects

•Each coefficient has random residuals at the cow level

which are most likely not independentSee J. D. Singer – Use of SAS PROC MIXED to Fit

Multilevel Models, Hierarchical Models and Individual

Growth Models. J. Ed. Behav. Stats, 1998, 24, No.4 323-355.

Page 17: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

Fixed Effects in ModelFixed Effects in Model

1.1. DIM (Days in Milk) and DIM (Days in Milk) and ln(DIMln(DIM))

2.2. Health trait effects and parity( lactation number): Health trait effects and parity( lactation number): treated as categorical/indicator variablestreated as categorical/indicator variables

3.3. Seasonality termsSeasonality terms

4.4. HerdsHerds

Random Effects in ModelRandom Effects in Model

1.1. The WoodThe Wood’’s model coefficients for each cows model coefficients for each cow•• Covariance expected between residuals of Covariance expected between residuals of

coefficientscoefficients2.2. The within cow residuals The within cow residuals

•• autoauto--correlated in time for each cowcorrelated in time for each cow•• AR(1) model fittedAR(1) model fitted

Page 18: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

Protein Yield vs. DIM for Protein Yield vs. DIM for KetotestKetotest ++veve and and ––veve

FittedFitted Curves and pCurves and p--valuesvalues

Ketotest Positive NO YES

Pro

tein

Yie

ld (

Kg./D

ay)

0 .5

0.6

0.7

0.8

0.9

1.0

1.1

Days in M ilk

0 100 200 300 400

P-V

alu

e fo

r Diffe

rence

0 .0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

Page 19: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

SAS Code for Dairy ExampleSAS Code for Dairy Example

proc mixed data=c.logtrans2 method=MIVQUE0 cl;

class herd cow lact_cat scc_ls_rnd ketotest DA lameness ketosis RP milk_fever;

model lp24=dim ldim ketotest dim*ketotestldim*ketotest herd dim*lact_cat ldim*lact_catketosis*dim ketosis*ldim dim*SCC_ls_rndldim*SCC_ls_rnd lameness*dim lameness*ldimrp*dim rp*ldim dim*DA ldim*DA sintm costm

/ ddfm=kr residuals influence(effect=cow(herd));

Page 20: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

SAS Code for Dairy Example SAS Code for Dairy Example –– ContCont’’dd

random intercept dim ldim/ type=un

subject=cow(herd);

*type= un allows covariance among the random

coefficients (default would not);

repeated testnum/ subject=cow(herd)

type=ar(1);

Page 21: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

SAS Code for Dairy Example SAS Code for Dairy Example –– ContCont’’dd

lsmeans ketotest/at (dim ldim) =(5 1.6094)

…………………………………………………..;

lsmeans ketotest/diff at (dim ldim) =(305 5.7203);

lsmeans ketotest/diff at (dim ldim) =(5 1.6094);

…………………………………………………..;

lsmeans ketotest/diff at (dim ldim) =(305 5.7203);

Ketotest Positive NO YESPro

tein

Yie

ld (

Kg./D

ay)

0 .5

0.6

0.7

0.8

0.9

1.0

1.1

Days in M ilk

0 100 200 300 400

P-V

alu

e fo

r Diffe

rence

0 .0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

Page 22: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

SAS Code for Dairy Example SAS Code for Dairy Example –– FinalFinal

contrast 'ketotest' ketotest 1 -1,dim*ketotest 1 -1,

ldim*ketotest 1 -1;

The contrast statement provides an overall test of whether

the curves are different for ketotest +ve or –ve.

estimate 'ketotest average' ketotest -1 1 ketotest*dim -155

155 ketotest*ldim -2.445123643 2.445123643;

The estimate statement allows us to test whether the

curves are different on average over a lactation

Ketotest Positive NO YESPro

tein

Yie

ld (

Kg./D

ay)

0 .5

0.6

0.7

0.8

0.9

1.0

1.1

Days in M ilk

0 100 200 300 400

P-V

alu

e fo

r Diffe

rence

0 .0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

Page 23: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

BLUPsBLUPs and and EBLUPsEBLUPs

• For random factors, Proc Mixed will generate

shrinkage estimates called Estimated Best

Linear Unbiased Predictors (EBLUPs)

• If variances known exactly they are called

BLUPs

Page 24: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

Heterogeneous Variances Heterogeneous Variances

(Group=,Local=(Group=,Local= ))

• Group=<groupname1,..> is a potential option on

both the random and repeated statements

• Results in different variance or covariance

estimates for different levels of <groupname1,..>

• Local= is an option on the repeated statement

Local=EXP(x) fits

• Local=POM(POM-data-set) fits a power of the

mean (predicted) value model for the variance

)exp()( 2

i γσε ixVar =

Page 25: Proc de Jour - Proc Mixed - SAS · Proc de Jour - Analysis for ... random patient(drug); repeated hour / subject=patient ... no Random statement-There are a large number of type=

ConclusionConclusion

• Proc Mixed is a powerful procedure for linear

mixed models with a continuous response

• Be careful with denominator degrees of

freedom: model …./ddfm= ; See SUGI paper 262-26

• Be careful with random … / type= ; for random

coefficient models

• For non-linear models see Proc Nlmixed

• For count data see Proc Glimmix