Good afternoon, Thank you for providing this SAS support online platform. I would be grateful if anyone could help me with this question. I am looking at obtaining the broad sense heritability of a plant trait y measured under field conditions in four different environments, using proc glimmix and the heritability concept and basic SAS code (proc mixed) presented by Holland et al 2010. The random effects of my model include: environment, rep(environment), genotype, genotype*environment and the covariance parameters are environment, rep(environment), genotype (Vg), genotype*environment (Vge) error (Vr). The idea is to retrieve the estimate of the covariance parameters and obtain the heritability estimates via the formula : h2 = Vg / (Vge + Vg + Vr). The traits I am looking at corresponds to proportion data so I am specifying a beta distribution with a logit link. I have no problem using this code and obtaining my estimates with a normal or lognormal distributions. However, I am wondering if any post-processing of the estimates of the covariance parameters are necessary under the beta distribution before being able to compute the heritability. Please see my code below. Thank you for your support, Daisy data first;
input env$ rep$ genotype$ RG;
datalines;
[...]
run;
*Estimate heritability from proc glimmix ;
proc glimmix data = first asycov;
title 'estimating heritability & covtest in Mixed Model';
class env rep genotype ;
model y = /dist = beta link = logit ;
random env rep(env) genotype genotype*env ;
ods exclude AsyCov CovParm;
ods output asycov = gl_covmat covparms = gl_estmat;
Run;
Data gl_estmat (drop=StdErr);
set gl_estmat;
Run;
proc iml;
start seh(V, C, LG, LP, H, SE, Vp, Vg) ;
Vp = LP`*V;
Vg = LG`*V;
H = VG/Vp;
d = (1/Vp)*(LG - (LP*H));
VH = d`*C*d;
SE = sqrt(VH);
finish seh;
use gl_estmat;
read all into V;
use gl_covmat;
read all into C;
* Note that SAS introduces an extra first column into the matrix which must be removed;
C = C(|1:nrow(C), 2:ncol(C)|);
*order of variance components in v and c matrices is V(E), V(RnestedinE), V(G), V(GE), V(error); *[P=G+GE+error];
LG = {0, 0, 1, 0, 0};
LP = {0, 0, 1, 1, 1};
call seh(V, C, LG, LP, H, SE, Vp, Vg);
print "Heritability on a Plot Basis", H, SE, Vp, Vg;
run;
... View more