\[
\newcommand{\mY}{\mathbf{Y}}
\newcommand{\mT}{\mathbf{T}}
\newcommand{\mS}{\mathbf{S}}
\newcommand{\mR}{\mathbf{R}}
\newcommand{\vg}{\mathbf{g}}
\newcommand{\E}{\mathrm{E}}
\newcommand{\Var}{\mathrm{Var}}
\newcommand{\Cov}{\mathrm{Cov}}
\]
Abstract
Griffing’s four methods with the fixed-effects model (Model 1): the analysis of variance, the gca, sca and reciprocal effects, their standard errors and how to compare parents and crosses.
The four methods on one data set
The data sets for Methods 2 to 4 are subsets of the complete diallel, so the methods can be compared directly.
fits <-
lapply(
X = 1:4
, FUN = function(m) Griffing(
y = Yield
, Rep = Rep
, Cross1 = Cross1
, Cross2 = Cross2
, data = get(paste0("GriffingData", m))
, Method = m
, Model = 1
, Reciprocal = c("combined", "split")[1]
)
)
names(fits) <- paste("Method", 1:4)
do.call(
what = rbind
, args = lapply(X = fits, FUN = function(f) f$ANOVA[c("gca", "sca"), "Mean Sq"])
)
[,1] [,2]
Method 1 543.5204 787.8853
Method 2 264.4133 447.4681
Method 3 801.7759 916.8174
Method 4 446.6969 465.2278
Method 1: parents, \(F_1\) and reciprocals
With \(a_i = Y_{i\cdot} + Y_{\cdot i}\) and \(Y_{\cdot\cdot}\) the grand total, \[
SS_g = \frac{1}{2P}\sum_i a_i^2 - \frac{2}{P^2}Y_{\cdot\cdot}^2, \qquad
\hat{g}_i = \frac{a_i}{2P} - \frac{Y_{\cdot\cdot}}{P^2}, \qquad
\hat{R}_{ij} = \frac{Y_{ij} - Y_{ji}}{2} .
\]
f1 <- fits[["Method 1"]]
knitr::kable(x = f1$ANOVA, digits = 3)
| gca |
7 |
3804.643 |
543.520 |
18.887 |
0.000 |
| sca |
28 |
22060.789 |
787.885 |
27.378 |
0.000 |
| reciprocals |
28 |
365.537 |
13.055 |
0.454 |
0.992 |
| Error |
189 |
5438.991 |
28.778 |
NA |
NA |
knitr::kable(x = f1$Genetic.Components, digits = 4)
| gca |
32.1714 |
| sca |
759.1076 |
| Reciprocal |
-7.8614 |
| gca/sca |
0.0424 |
The table Effects keeps the layout of earlier versions: gca effects on the diagonal, sca effects above it and reciprocal effects below it. The full matrices are in SCA and Reciprocal:
round(x = f1$Effects, digits = 2)
1 2 3 4 5 6 7 8
1 0.06 -7.43 -3.49 29.66 27.30 -20.18 10.41 -31.03
2 3.16 0.47 7.82 0.96 12.52 -17.00 -5.72 2.28
3 -5.89 3.51 9.03 5.32 -6.17 2.39 2.98 25.89
4 -2.09 -0.57 -1.02 -3.44 -0.65 21.85 -33.50 -31.42
5 4.50 -1.48 3.01 0.95 -2.33 -0.43 -15.32 14.74
6 -0.14 0.98 0.65 -1.43 -1.91 -1.93 22.59 -22.73
7 -0.81 4.91 1.55 3.40 1.59 2.97 7.24 32.83
8 1.96 1.25 1.17 0.06 0.75 -3.25 3.55 -9.10
round(x = f1$SCA[1:4, 1:4], digits = 2)
1 2 3 4
1 -5.23 -7.43 -3.49 29.66
2 -7.43 6.58 7.82 0.96
3 -3.49 7.82 -34.73 5.32
4 29.66 0.96 5.32 7.77
Standard errors and comparisons
StdErr gives the standard errors of single effects and of differences between effects; for Method 1 \(\Var(\hat{g}_i) = (P-1)\sigma^2_m/(2P^2)\) and \(\Var(\hat{g}_i - \hat{g}_j) = \sigma^2_m/P\).
round(x = f1$StdErr, digits = 3)
gi sii sij rij gi_gj sii_sjj sii_sij sii_sjk sij_sik sij_skl
1.255 4.694 3.353 3.793 1.897 6.570 6.290 5.690 5.018 4.646
rij_rkl
5.364
t_gca <- f1$GCA / f1$StdErr[["gi"]]
round(x = t_gca, digits = 2)
1 2 3 4 5 6 7 8
0.05 0.37 7.20 -2.74 -1.85 -1.54 5.77 -7.25
A parent’s gca effect is significant at the 5% level when \(|t|\) exceeds the \(t\) quantile on the error degrees of freedom:
qt(p = 0.975, df = f1$ANOVA["Error", "Df"])
Predicting crosses from general combining ability
Under the fixed model a cross is predicted by \(\hat{\mu} + \hat{g}_i + \hat{g}_j\) from the gca effects alone (the prediction for a cross not yet made) or by adding \(\hat{S}_{ij} + \hat{R}_{ij}\) (which reproduces the observed mean). The gap between the two is the specific combining ability of the cross:
pr_g <- predict(object = f1, newdata = NULL, type = c("gca", "full")[1])
pr_f <- predict(object = f1, newdata = NULL, type = c("gca", "full")[2])
pr <- merge(x = pr_g, y = pr_f, by = c("Cross1", "Cross2"), suffixes = c("_gca", "_full"))
head(pr[order(-predicted_full)], 8)
Cross1 Cross2 predicted_gca predicted_full
<char> <char> <num> <num>
1: 7 8 88.89031 125.270
2: 6 7 96.05125 121.610
3: 1 5 88.48500 120.290
4: 4 1 87.37250 119.115
5: 8 7 88.89031 118.170
6: 3 8 90.67953 117.735
7: 7 6 96.05125 115.670
8: 8 3 90.67953 115.400
Methods 2, 3 and 4
knitr::kable(x = fits[["Method 2"]]$ANOVA, digits = 3)
| gca |
7 |
1850.893 |
264.413 |
9.470 |
0 |
| sca |
28 |
12529.107 |
447.468 |
16.026 |
0 |
| Error |
105 |
2931.770 |
27.922 |
NA |
NA |
knitr::kable(x = fits[["Method 3"]]$ANOVA, digits = 3)
| gca |
7 |
5612.432 |
801.776 |
26.434 |
0.000 |
| sca |
20 |
18336.349 |
916.817 |
30.227 |
0.000 |
| reciprocals |
28 |
365.537 |
13.055 |
0.430 |
0.995 |
| Error |
165 |
5004.571 |
30.331 |
NA |
NA |
knitr::kable(x = fits[["Method 4"]]$ANOVA, digits = 3)
| gca |
7 |
3126.878 |
446.697 |
14.323 |
0 |
| sca |
20 |
9304.556 |
465.228 |
14.917 |
0 |
| Error |
81 |
2526.151 |
31.187 |
NA |
NA |
round(
x = rbind(
Method1 = fits[[1]]$GCA
, Method2 = fits[[2]]$GCA
, Method3 = fits[[3]]$GCA
, Method4 = fits[[4]]$GCA
)
, digits = 2
)
1 2 3 4 5 6 7 8
Method1 0.06 0.47 9.03 -3.44 -2.33 -1.93 7.24 -9.10
Method2 -0.31 2.38 5.93 -2.65 -4.71 -0.72 7.60 -7.52
Method3 -0.09 -1.65 13.80 -5.75 1.99 -5.21 8.60 -11.69
Method4 -0.86 -0.58 13.40 -6.76 2.33 -6.45 10.57 -11.66
The best general combiners (parents 3 and 7) and the poorest (parent 8) are the same in all four methods; including the parents themselves (Methods 1, 2) or the reciprocals (Methods 1, 3) changes the size of the effects and the order of the parents in between.
Summary
Model 1 gives the effects of each parent and cross with their standard errors; the Effects table keeps the layout of earlier versions and GCA, SCA, Reciprocal give the effects in full.
References
Griffing, B. (1956). Concept of general and specific combining ability in relation to diallel crossing systems. Australian Journal of Biological Sciences, 9(4), 463–493.
Singh, R. K. and Chaudhary, B. D. (2004). Biometrical Methods in Quantitative Genetic Analysis. Kalyani Publishers, New Delhi.