Finlay and Wilkinson's regression of each genotype on the environment index
Source:R/stab_reg.R
stab_reg.Rdstab_reg() regresses the mean of each genotype in each environment on the environment index (the mean of
all genotypes in that environment minus the grand mean), as proposed by Finlay and Wilkinson (1963). The slope
describes how a genotype responds to better environments; the deviations from the line describe how predictable
that response is.
Usage
stab_reg(.data, .y, .rep, .gen, .env)
# Default S3 method
stab_reg(.data, .y, .rep, .gen, .env)Arguments
- .data
a data frame (or
data.table) with one row per plot.- .y
response: a column of
.datagiven by name (.y = Yieldor.y = "Yield") or a numeric vector of lengthnrow(.data).- .rep
replicate: as for
.y; optional (needed forDeltaand its test).- .gen
genotype: a column of
.dataor a vector, as for.y.- .env
environment: a column of
.dataor a vector, as for.y.
Value
An object of class c("stab_reg", "stab_result", "list") with the components of earlier versions:
StabIndvRegdata.table, one row per genotype (in the order of the genotype levels):Gen,Mean,Slope,SE,LCI,UCI,t.b1,p.b1(test of slope 1),R.Sqr,RMSE,SSE(deviation sum of squares),Delta(\(S^2_{d_i}\)) andp.Delta(its test).MeanSlopePlotggplotof the mean against the slope.
Methods: print(), summary(), plot() (which = c("slope", "lines", "residuals",
"qq"); "lines" draws the fitted line of every genotype), stab_interpret().
Details
With the environment index \(I_j = \bar{y}_{\cdot j} - \bar{y}\) the fitted line of genotype \(i\) is \(\bar{y}_{ij} = \mu_i + \beta_i I_j + \delta_{ij}\) with $$\hat{\beta}_i = \frac{\sum_j \bar{y}_{ij}I_j}{\sum_j I_j^2}, \qquad \mathrm{SE}(\hat{\beta}_i) = \sqrt{\frac{\sum_j\hat{\delta}_{ij}^2}{(E - 2)\sum_j I_j^2}}, \qquad t = \frac{\hat{\beta}_i - 1}{\mathrm{SE}(\hat{\beta}_i)},$$ the confidence limits \(\hat{\beta}_i \pm t_{0.975, E - 2}\,\mathrm{SE}(\hat{\beta}_i)\), the coefficient of determination \(R^2_i\) and, when replicates are given, Eberhart and Russell's deviation variance \(S^2_{d_i} = \sum_j\hat{\delta}_{ij}^2/(E - 2) - s^2/B\) with the test \(F = (\sum_j\hat{\delta}_{ij}^2/(E - 2))/(s^2/B)\) on \(E - 2\) and \(f_e\) degrees of freedom.
Finlay and Wilkinson read the slope against the mean: \(\beta_i \approx 1\) with a high mean indicates general adaptability; \(\beta_i > 1\) a genotype that profits from favourable environments; \(\beta_i < 1\) one that resists unfavourable environments.
Changes from the earlier version. The rows of the earlier table paired the genotype means (in the order
of the data) with the slopes (in the order of the genotype levels), so that the slope shown for a genotype
belonged to another one unless the data were sorted by genotype; the column Delta (deviation sum of
squares divided by the number of replicates) is now \(S^2_{d_i}\); the confidence limits use the
deviations of each genotype (not those pooled over genotypes). The regression is computed in closed form.
References
Finlay, K. W. and Wilkinson, G. N. (1963). The analysis of adaptation in a plant-breeding programme. Australian Journal of Agricultural Research, 14(6), 742–754. doi:10.1071/AR9630742
Eberhart, S. A. and Russell, W. A. (1966). Stability parameters for comparing varieties. Crop Science, 6(1), 36–40. doi:10.2135/cropsci1966.0011183X000600010011x
See also
er_anova, stab_par, stab_interpret
Other stability analyses:
add_anova(),
ammi(),
ammi_biplot(),
er_anova(),
ge_effects(),
ge_means(),
gge_biplot(),
indiv_anova(),
stab_asv(),
stab_dist(),
stab_eskridge(),
stab_fox(),
stab_huehn(),
stab_kang(),
stab_masv(),
stab_measures(),
stab_par(),
stab_reliability(),
stab_superiority()
Author
Muhammad Yaseen (myaseen208@gmail.com), Kent M. Eskridge (keskridge1@unl.edu)
Examples
data(ge_data)
fit <-
stab_reg(
.data = ge_data
, .y = Yield
, .rep = Rep
, .gen = Gen
, .env = Env
)
head(fit$StabIndvReg)
#> Gen Mean Slope SE LCI UCI t.b1
#> <char> <num> <num> <num> <num> <num> <num>
#> 1: 013BT034 4247.500 0.9539767 0.2181489 0.4604897 1.447464 -0.21097187
#> 2: 122557 4062.364 1.5159430 0.1702936 1.1307122 1.901174 3.02972727
#> 3: 122559 4258.591 0.9834026 0.3015181 0.3013213 1.665484 -0.05504595
#> 4: 12B.2511 4414.409 1.6375025 0.2843871 0.9941741 2.280831 2.24167144
#> 5: 12FJ26 4057.227 0.7025845 0.2633342 0.1068811 1.298288 -1.12942201
#> 6: 14B.1030 3995.409 0.9951608 0.2598803 0.4072708 1.583051 -0.01862075
#> p.b1 R.Sqr RMSE SSE Delta p.Delta
#> <num> <num> <num> <num> <num> <num>
#> 1: 0.83760871 0.6799841 323.5306 942048.3 55088.39 2.670478e-02
#> 2: 0.01425298 0.8980107 252.5577 574068.5 14201.74 2.406599e-01
#> 3: 0.95730445 0.5416911 447.1733 1799675.3 150380.28 4.849012e-05
#> 4: 0.05170192 0.7865003 421.7667 1600984.5 128303.52 2.261371e-04
#> 5: 0.28792236 0.4416320 390.5438 1372720.0 102940.80 1.268556e-03
#> 6: 0.98554993 0.6196686 385.4213 1336946.3 98965.95 1.653205e-03
plot(x = fit, which = c("slope", "lines", "residuals", "qq")[1])
stab_interpret(
x = fit
, higher_better = TRUE
, top = 5L
)
#> Finlay and Wilkinson's regression on the environment index
#>
#> Slopes range from 0.09 to 1.71; 2 genotype(s) combine a mean above average
#> with a slope close to 1 (V14154 and PR119).
#>
#> Findings:
#> - Widely adapted (mean above average, slope not different from 1, no
#> significant deviations): V14154 and PR119.
#> - Responsive to favourable environments (slope significantly above 1): DN126
#> and 122557.
#> - Better in poor environments (slope significantly below 1): BARDC1016.
#> - The regression explains on average 59% of the variation of a genotype over
#> environments; below 50% for 17 genotype(s), whose response is poorly
#> described by a line.
#> - Significant deviations from regression (unpredictable response): DN126,
#> V14170, PR115, 12B.2511, FAISALABAD08 and 50 more.
#>
#> Recommendations:
#> - Read the slope together with the mean: a slope of 1 is desirable only for a
#> high-yielding genotype.
#> - Recommend responsive genotypes for favourable, high-input conditions.
#> - Recommend genotypes with low slopes where conditions are often poor.
#>
#> Cautions:
#> - With few environments the confidence intervals of the slopes are wide.