8 Lnear Models 3 SR Box.6 Nested ANOVA ORIGIN Unbalanced Nested ANOVA - Sokal & Rohlf Example prepared by Wm Sten Ths sheet offers prototyped example of "Full Sb" nested ANOVA appearng n Sokal & Rohlf Bometry 3 rd Edton (SR) for comparson of ther Least Squares drect approach n Box.6. wth Reduced Maxmum Lklhood estmaton results of lme() {nlme} functon n R, descrbed by J.C. Pnhero & D.M. Bates Mxed-Effects Models n S and S-Plus (PB). Varance Components are calculated comparng quanttes n SR wth equvalent formulas n M. Lynch & B. Walsh 998 (LW) Genetcs and analyss of quanttatve trats, Chapter 8. Readng Data: X READPRN ( "/Data/SRBox.6.txt" ) ^ Data reformatted wth col =Dam, =Sre, =PH response, 3=Sre means. A READPRN ( "/Data/SRBox.6DamMeans.txt" ) ^ Independent factor Dam wth col =Dam means, =n. B READPRN ( "/Data/SRBox.6LtMeans.txt" ) ^ Nested factor Sre (Ltter) wth col =Sre means, =n j, =Dam means. GM mean X GM ^ grand mean Sums of Squares: ndependent factor: SS B nested factor: length A a length A n A AM A < n & means n AM GM SS A j length B b length B X B n B BM B AM B < n j, B means j, & A means SS B n BM AM SS j j j B j SS E wthn nested error: k length X r length X O X AM X 3 SS E O AM SS k k E k SS T Total SS: < Response k, B means k SS T O GM SS k T SS k A SS B SS E A
8 Lnear Models 3 SR Box.6 Nested ANOVA ANOVA Table: Sums of Squares: degrees of freedom: Mean Squares: df A a df A MS A MS A dfaa SS B(A) SS E SS B df B b a SS B df B MS B dfbb SS E df E r b SS E df E MS E dfee MS B MS E SS T SS T df T r df T ^ These values verfed SR p. 96. Tests of Sgnfcance: Usng Full and Reduced Lnear Models approach KNNL. For effect n ndependent varable A: Null Hypothess and Alternatve: H : Regresson coeffcent for Treatment A s zero - no ndependent effect n A H : Regresson coeffcent not zero - treatment effect s evdent n A Test Statstc: MS A F a MSEE MS A F a F a MSB B F a < verfed SR p. 96 Decson Rule: ^ fxed effects denomnator ^ random effects denomnator.5 < set as desred (wthout Satterthwath's correcton) If Fs > F(-df A, df E ) then Reject H, otherwse accept H qf df A df E Probablty: pff a df A P mn pf F a df A df E df E P For effect n nested varable B(A): Null Hypothess and Alternatve: H : Regresson coeffcent for Nested B s zero - no effect for nested B(A) H : Regresson coeffcent not zero - effect evdent n B(A) Test Statstc: Decson Rule:.5 MS B F b MSE E < set as desred F b < verfed SR p. 97 If Fs > F(-df B, df E ) then Reject H, otherwse accept H qf df B df E Probablty: pff b df B P mn pf F b df B df E df E P
8 Lnear Models 3 SR Box.6 Nested ANOVA 3 Calculatng Varance Components: 4 4 Calculatons based on LW pp. 573-574. Equvalent notaton: 5 4 a number of outer factor (Dams) N a N 3 4 4 5 3 b b number of nner factor (Sres) Mbar Mbar 3 4 4 a r total number of ndvduals T r T 3 5 4 3 3 57 5 lengtha 3 4 4 5 3 5 3 4 5 5 3 57 3 66 BB 3 5 BB 34 BB k T 4 4 3 N ( Mbar ) k A SR n 5 4 4 5 A 5 5 4 BB BB k 5 4 3 5 N A k T 3 57 SR n ' 3 5 3 4 3 75 3 4 4 5 A 3 5 5 5 k 3 T k 3 N T ^ Note: One must use SR (nb) ^n j 's from counts n B correcton (from SR) ^ n 's ^ number of sres wthn dams of LW Table 8.3 for k 3 : T (not N) n denomnator ^ values verfed SR p. 97 From SR pp 96-97 Intermedate calculaton quanttes -4: q r q BB q q q3 A q3 q4 BB A From LW Eq. 8.3a-c & Table 8.3: Mean Squares Expected MS Expected Varance Components q4 MS A br r MS B r MS E MS A MS E s A MS B MS E s B k s E MS E k k k 3 MS B MS E s A s B s E values verfed SR p. 98 ^
8 Lnear Models 3 SR Box.6 Nested ANOVA 4 Prototype n R: lbrary(nlme) # {nlme} for lme() & nvervals() lbrary(ape) # {ape} for varcomp() #lbrary(help=ape) # prototype for fndng package ndex #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #CALCULATING VARIANCE COMPONENTS #READ STRUCTURED DATA TABLE WITH NUMERIC CODED NESTED FACTORS K=read.table("c:/8LnearModelsData/SRBox.6NEWR.txt") K aach(k) Y=PH #response varable A=factor(Dam) #OUTER FACTOR A B=factor(Sre) #INNER FACTOR B nsde A r=dm(k)[[]] #TOTAL NUMBER OF INDIVIDUALS r #quanty n SR BB=summary(B) BBsq=BB^ q=sum(bbsq) q a=length(levels(a)) AA=summary(A) AAsq=AA^ q3=sum(aasq) #quanty n SR q3 #quanty 3 n SR b=length(levels(b)) L=table(A,B) BBsum=rowSums(L^) M=BBsum/AA q4=sum(m) q4 #quanty 4 n SR k= (/(a*((b/a) )))*(r q4) k #quanty k n LW k= (/(a ))*(q4 (q/r)) k #quanty k n LW k3= (/(a ))*(r (q3/r)) k3 #quanty k3 n LW > r #quanty n SR [] 6 > q #quantty n SR [] 78 > q3 #quanty 3 n SR [] 8 > q4 #quanty 4 n SR [] 65.68956 > k #quanty k n LW [] 4.86838 > k #quanty k n LW [] 4.3764 > k3 #quanty k3 n LW [].65
8 Lnear Models 3 SR Box.6 Nested ANOVA 5 #LEAST SQUARES VARIANCE COMPONENTS: sga = (MSA-MSE-(k/k)*(MSB-MSE))/k3 sga #varance component for outsde factor A sgb = (MSB-MSE)/k sgb #varance component for nested factor B nsde A sge = MSE sge #varance component for error LEASTSQvar=c(sgA,sgB,sgE) #MAXIMUM LIKLIHOOD VARIANCE COMPONENTS usng lme(): FMe=lme(Y~,random=~ A/B,data=K) FMe summary(fme) varcomp(fme) # {ape} Varance Components calculated MAXLIKvar=c(varcomp(FMe)[],varcomp(FMe)[],varcomp(FMe)[3]) ntervals(fme) # {nlme} PB Confdence Intervals PBINTlower=c(ntervals(FMe)$reStruct$A[,]^, ntervals(fme)$restruct$b[,]^, ntervals(fme)$sgma[]^) PBINTest =c(ntervals(fme)$restruct$a[,]^, ntervals(fme)$restruct$b[,]^, ntervals(fme)$sgma[]^) PBINTupper = c(ntervals(fme)$restruct$a[,3]^, ntervals(fme)$restruct$b[,3]^, ntervals(fme)$sgma[3]^) results=cbnd(ms,leastsqvar,maxlikvar,pbintlower,pbintest,pbintupper) #LEAST SQUARES AND MAXIMUM LIKLIHOOD ESTIMATES OF VARIANCE COMPONENTS: results detach(k) RETURNS: > #LEAST SQUARES AND MAXIMUM LIKLIHOOD ESTIMATES OF VARIANCE COMPONENTS: > results MS LEASTSQvar MAXLIKvar PBINTlower PBINTest PBINTupper A 7.556 8.588 8.895675 3.4687 8.895675 6.76 B 36.3744.7495.64557.367645.64557 9.6683 Wthn 4.7364 4.73643 4.87877 9.35579 4.87877 3.86 KEY TO THE ABOVE TABLE: MS: mean squares from lm() anova() table. LEASTSQvar: Least Squares Varance Components calculated from SR & LW formulas. MAXLIKvar: REML varance components reported by varcomp() {ape}. PBINT: Approxmate 95% Confdence Interval reported by ntervals() {nlme}. (Note all values n ntervals() are reported n Standard Devatons, so are squared n ths table to allow drect comparson wth other values. ) PBINTlower: lower C.I. lmt. PBINTest: Pont Estmate from ntervals() {nlme}. PBINTupper: upper C.I. lmt.