BookmarkSubscribeRSS Feed
GaryNMarks
Calcite | Level 5

I have a data set of pairs of ‘siblings’ from the NLSY which includes MZ twins (RRfull=1), DZ twins and full-siblings (RRfull=0.5), half siblings (RRfull=0.25) and same sex twins of uncertain zygosity (RRfull=0.75).

I have analysed the data using OpenMX. the estimates are.

For height the OpenMx A,C and E estimates are:    

Measure

Additive Genetic

Common Environment

Unique Environment.

Age

Male

D of F

 

A

95% CI

C

95% CI

E

95% CI

 

 

 

Height (Age ge 18)

0.74

[0.51,0.88]

0.10

[0.01,0.21]

0.16

[0.09,0.28]

0.00

5.7***

4481

 

This looks pretty good.

 

I am an experienced SAS user, but I cannot get proc mixed to return similar estimates from the McArdle 2005 paper.

McArdle, J. J. and C. A. Prescott. 2005. "Mixed Effects Variance Components Models for Biometric Family Analyses." Behavior Genetics 35:631-52.

 

I realize that Mixed Effects Variance Components Models for Biometric Family Analyses is now more likely done in proc hpmixed. I tried to contact these authors, but the senior author is on medical leave and I think the second author has died.

Prescott, C. A., McArdle, J. J., Achorn, D. L., Kaiser, A., & Lapham, S. (2012, October). Applying Project Talent sibling and classmate data to evaluate community and family influences on cognitive abilities. Paper presented at the Annual Meeting of the Society of Multivariate Experimental Psychology, Vancouver, BC, USA.  

I can't locate this or similar articles. 

 

 

I’ve tried many models, but A is nowhere near 0.74. C is usually about twice that of A.

I include a regression model for age and sex as is standard in twin studies.

 

I am sure my syntax is wrong, but I am not sure where.  Could someone please help me and indicate what I got wrong.

 

Thanks

 

Gary Marks

Sociology, University of Melbourne

 

title "Building Relational Weights"; /*trying to follow McArdle and Prescott 2005*/

 

data sim_rel;

set gen2.Rsib_pairs;

if RRfull in(1,0.75,0.5,0.25);

famid=g1_family_ID;

weightAC=0; weightAM=0; weightAU1=0; weightAU2=0; weightAU3=0; weightAU4=0;

weightSU1=0; weightSU2=0; weightSU3=0; weightSU4=0;

ST=0; /* wherev does Sib and ST appear in proc mixed*/

Sib=1;

if RRfull in(1 0.75) then ST=1;

*MZ Twins;

if RRfull in(1) then do;

weightAC=sqrt(0.5);

weightAM=1;

weightAU1=0;

end;

*Second ID Twins Unclear;

if RRfull=0.75 then do;

weightAC=sqrt(0.75);

weightAU2=sqrt(0.25);

weightSU1=1;

end;

height=sib2_height;male=sib2_male; age=sib2_age;

person=(famid*10)+1;Nper_fam=2;

 

*FULL SIBLING WEIGHTS;

*First Sibling;

if RRfull=0.5 then do;

weightAC=sqrt(0.5);

weightAU3=sqrt(0.5);

weightSU2=1;

end;

height=sib1_height;male=sib1_male; age=sib1_age;

person=(famid*10)+1;Nper_fam=1;

 

*HALF SIBLINGS;

*Half Sibling weights Sib1;

if RRfull=0.25 then do;

weightAC=sqrt(0.25);

weightAU4=sqrt(0.75);

weightSU3=1;

end;

*Assign and output values for sibling 1;

height=sib1_height; male=sib1_male; age=sib1_age;

person=(famid*10)+1;Nper_fam=1;

 

if Nper_fam=1 then do;

weightE1=1; weightE2=0;

end;

 

output;

 

*Second ID Twins Unclear;

if RRfull=0.75 then do;

weightAC=sqrt(0.75);

weightAU2=sqrt(0.25);

weightSU1=1;

end;

height=sib2_height;male=sib2_male; age=sib2_age;

person=(famid*10)+1;Nper_fam=2;

 

*Second Sibling;

if RRfull=0.5 then do;

weightAC=sqrt(0.5); 

weightAU3=sqrt(0.5);

weightSU2=1;

end;

*Assign and output values for sibling;

height=sib2_height;male=sib2_male; age=sib2_age;

person=(famid*10)+2;Nper_fam=2;

 

 

*Half Sibling weights Sib2;

if RRfull=0.25 then do;

weightAC=sqrt(0.25);

eightAU4=sqrt(0.75);

weightSU3=1;

end;

*Assign and output values for sibling 2;

height=sib2_height;male=sib2_male; age=sib2_age;

 

person=(famid*10)+2;Nper_fam=2;

 

 

*assign weights for common factor E;

if Nper_fam=2 then do; weightE1=0; weightE2=1;

end;

 

output;

keep RRfull famid person weightAC weightAM weightAU1-weightAU4 weightSU1-weightSU3

Nper_fam weightE1 weightE2 height male age

Sib ST;

run;

proc print data=sim_rel(obs=19);

where rrfull=0.75;

run;

 

proc freq data=sim_rel;

tables weightAC weightAM weightAU1-weightAU4 SIB ST;

run;

 

 

 

proc mixed data=sim_rel noclprint covtest method=reml;

class famid;

model height=male age/solution DDFM=satterth CHISQ; /*Mean and E Variance*/

random intercept/subject=famid type=VC; /*S Variance*/

random weightAC weightAC weightAU1-weightAU4 sib ST weightSU1-weightSU3 

/subject=famid type=TOEP(1); /*A Variance*/

ods output CovParms = cov1 nobs=obs;

run;

 

 

4 REPLIES 4
SteveDenham
Jade | Level 19

I haven't done genetics by environment interaction analyses in years. The best I can come up with to get started in SAS is actually PROC HPLMIXED. The one example is Computing BLUPs for a Large Number of Subjects. If that example isn't really applicable due to its assumption of known variance and covariance values, then HPMIXED would almost certainly be a better choice than MIXED.  And I realize that my answer is pretty vague.

 

SteveDenham

GaryNMarks
Calcite | Level 5
Not sure how that helps.
Is there any have any documentation with SAS code supporting the following papers/conference papers.
McArdle, J. J. and C. A. Prescott. 2005. "Mixed Effects Variance Components Models for Biometric Family Analyses." Behavior Genetics 35:631-52.
Arpawong, T. E., E. Walters, M. Gatz, T. L. Gruenewald, J. J. McArdle, S. J. Lapham and Prescott C. A. 2017. "Individual, Family, Community and Genetic Predictors of Educational Attainment " Paper presented at the IAGG World Congress of Gerontology & Geriatrics, July 2017, San Francisco, CA.
Prescott, C. A., J. J. McArdle, D. L. Achorn, A. Kaiser and S. Lapham. 2012. "Applying Project Talent Sibling and Classmate Data to Evaluate Community and Family Influences on Cognitive Abilities." in Society of Multivariate Experimental Psychology.

I think McArdle may have died and Prescott is on medical leave.
SteveDenham
Jade | Level 19

A search through lexjansen.com might give you some SAS oriented papers that use these references.

 

SteveDenham

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 4 replies
  • 703 views
  • 0 likes
  • 3 in conversation