08-21-2013 03:48 PM
I'm a biologist with little training in linear algebra. So: I want to calculate a covariance matrix in MIXED then constrain the DIFFERENCE between two matrices to be equal to the difference of two other matrices, and use a LRT to compare the constrained model to the unconstrained model. Here's the setup:
I have two Populations (N and P), each of which is present in two Treatments (C and M). Each Population contains 15 Lines in the C treatment and 45 Lines in the M treatment; C Lines are independent from M Lines. Each Line consists of ~ 25 Replicates. Each Replicate was measured for a set of four (continuous) Traits, normalized to the Trait mean. Population and Treatment are fixed effects, Line and Replicate are random effects. The quantity of interest is the DIFFERENCE IN THE DIFFERENCE in the among-Line (co)variances between the two treatment groups in the two Populations. Representing the among-Line covariance matrix as L, the question is: Does L(M)-L(C) differ between the two Populations?
To calculate the covariance matrix(s), I use the following code:
PROC MIXED data=<datasetname>;
CLASS Trait Treatment Population LIne Replicate;
RANDOM Trait/SUBJECT=Line GROUP=Population*Treatment TYPE=un;
REPEATED Trait/SUBJECT=Rep(Line Population Treatment) TYPE=un;
ODS OUTPUT covparms=cov_parms;
This code generates unstructured among-Line covariance matrices for each Population*Treatment combination and an overall likelihood. The next step is to constrain L(M)-L(C) for Population N equal to L(M)-L(C) for population P and compare the likelihood to the first model. Which is where I'm stuck.
08-22-2013 07:57 AM
I have never tried TYPE=LIN(q), but it looks like it might be a way to construct a linear combination of known matrices. The constraint that you want could be (might be, not sure how) coded in a datastep. This looks difficult from an outside perspective, though.