AMMI
ADDITIVE MAIN EFFECT AND
MULTIPLICATIVE INTERACTION MODEL
AMMI determina la presencia de
interacción genotipo-ambiente en una variable respuesta (rendimiento,
enfermedad u otra variable), AMMI analiza los efectos principales aditivos e
interacción multiplicativa mediante el análisis de variancia. AMMI hace uso de
los componentes principales para expresar gráficamente como un Biplot o Triplot
la interaccion. AMMI es una herramienta muy útil para estudiar y caracterizar la
presencia de interacción genotipo-ambiente y descubrir los genotipos menos
afectados por los ambientes, lo que podria entenderse como la presencia estable
del genotipo, aunque no necesariamente, para una sospecha, es necesario analizar
con una herramienta de estabilidad como stabilty.par o stability.nonpar del
paquete agricolae u otros metodos de estabilidad..
Aquí veremos algunos ejemplos:.
Analisis
AMMI con datos experimentales con 3 repeticiones.
Experimentos repetidos en localidades con las mismas variedades en lo
posible y con 2 o mas repeticiones del experimento en cada localidad.
library(agricolae)
library(klaR)
data(plrv)
model<- AMMI(plrv[,2], plrv[,1], plrv[,3], plrv[,5], graph="biplot")
AMMI: ADDITIVE MAIN EFFECT AND MULTIPLICATIVE INTERACTION MODEL
ANALYSIS AMMI: plrv[, 5]
Class level information
ENV: Ayac LM-02 SR-02 Hyo-02 LM-03 SR-03
GEN: 102.18 104.22 121.31 141.28 157.26 163.9 221.19 233.11 235.6 241.2
255.7 314.12 317.6 319.20 320.16 342.15 346.2 351.26 364.21 402.7 405.2
406.12 427.7 450.3 506.2 Canchan Desiree Unica
REP: 1 2 3
Number of observations: 504
model Y: plrv[, 5] ~ ENV + REP%in%ENV + GEN + ENV:GEN
Analysis of Variance Table
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
ENV
5 9607.4 1921.5 284.6352 4.957e-12 ***
REP(ENV) 12 81.0 6.8 2.7313 0.00154 **
GEN 27 1367.4 50.6 20.4904 < 2.2e-16 ***
ENV:GEN 135 1764.8 13.1 5.2891 < 2.2e-16 ***
Residuals 324 800.8 2.5
---
Signif.
codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Coeff var Mean ltrv[, 5]
20.07525 7.831188

# Grafico con tres componentes principales, uso del triplot
model<- AMMI(plrv[,2], plrv[,1], plrv[,3],
plrv[,5], graph="triplot")

Analisis AMMI con datos experimentales en donde se tiene una estimacion de
la variancia del error y el numero de repeticiones que se utilizo. En alguna
situaciones solo se dispone de un repuesta promedio del genotipo en una
localidad y si es posible estimar el error y el numero de repeticiones, se
puede hacer un analisis AMMI.
data(sinRepAmmi)
attach(sinRepAmmi)
REP <- 3
MSerror <- 93.24224
model<-AMMI(ENV, GEN, REP, YLD, MSerror)
ANALYSIS
AMMI: YLD
Class level information
ENV: A1 A2 A3 A4 A5
GEN: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
REP: 3
Number of observations: 250
Dependent Variable: YLD
Analysis of variance
Df Sum Sq Mean Sq F value Pr(>F)
ENV 4 728766.51 182191.62761
REP(ENV) 10
GEN 49 23488.96 479.36643 5.141087 0.000000e+00
ENV:GEN 196 40728.33 207.79760 2.228578 9.999779e-13
Residuals 490 45688.70 93.24224
Coeff var Mean YLD
19.60900 49.24373
Analysis
percent acum Df Sum.Sq Mean.Sq F.value Pr.F
CP1 64.8 64.8 52 26396.303 507.62122 5.44 0.0000
CP2 18.6 83.4 50 7567.908 151.35817 1.62 0.0061
CP3 13.5 96.9 48 5497.733 114.53609 1.23 0.1463
CP4 3.1 100.0 46 1266.386 27.53012 0.30 1.0000
CP5 0.0 100.0 44 0.000 0.00000 0.00 1.0000
Graficando una componente principal y el rendimiento.
bplot<-model$biplot[,1:4]
attach(bplot)
par(cex=0.8)
plot(YLD,PC1,cex=0.0,text(YLD,PC1,labels=row.names(bplot),col="blue"),main="AMMI
BIPLOT",frame=TRUE)
media<-mean(YLD)
abline(h=0,v= media,lty=2,col="red")
amb<-subset(bplot,type=="ENV")
attach(amb)
s <- seq(length(YLD))
arrows(media, 0, 0.9*(YLD[s]-media)+media, 0.9*PC1[s], col= "brown",lwd=1.8,length=0.1)

Utilizando
un circulo concéntrico se puede detectar gráficamente a un radio determinado
(proporcional a la distancia máxima) cuanto y que genotipos están por debajo
de esa distancia, indicándonos una cierta independencia de los ambientes en
estudio. Para esto se hace uso de la funcion AMMI.contourn().
library(agricolae)
data(sinRepAmmi)
attach(sinRepAmmi)
REP <- 3
MSerror <- 93.24224
# Example 1
#startgraph
model<-AMMI(ENV, GEN, REP, YLD, MSerror)
AMMI.contour(model,distance=0.7,shape=8,col="red",lwd=2,lty=5)
Limit, radio: 2.303589
Genotype in: 41
Genotype out: 9
$`GENOTYPE IN`
[1] "1" "10" "11" "12" "13" "15" "16" "17" "18" "19" "21" "22" "23" "24"
"25"
[16] "26" "27" "28" "29" "31" "32" "33" "35" "36" "37" "38" "39" "4" "40"
"41"
[31] "42" "43" "44" "45" "46" "47" "48" "49" "50" "6" "7"
$`GENOTYPE OUT`
[1] "14" "2" "20" "3" "30" "34" "5" "8" "9"
$Distance
distance
1 1.9514760
10 1.5615217
11 1.1769189
...
9 3.1242502

Analisis
de los datos publicados en R: Newsletter Volume 7/1, April 2007
Table1. Field averages (three replicates) for six genotypes in seven
years.
library(agricolae)
dataset<-read.table("Variety.txt",header=TRUE)
REP<-3 # paper
MSerror <-0.149 # paper
attach(dataset)
model<-AMMI(years, Genotype, REP, yield, MSerror, number=FALSE)
Output
ANALYSIS AMMI: yield
Class level information
ENV: 1996 1997 1998 1999 2000 2001 2002
GEN: COLOSSEO CRESO DUILIO GRAZIA IRIDE SANCARLO SIMETO SOLEX
REP: 3
Number of means: 56
Dependent Variable: yield
Analysis of variance
Df
Sum Sq Mean Sq F value
Pr(>F)
ENV 6 159.15401 26.5256679
REP(ENV) 14
GEN 7 11.53755
1.6482214 11.061889 3.091565e-10
ENV:GEN 42 27.70605 0.6596679 4.427301 7.053320e-10
Residuals 98 14.60200 0.1490000
Coeff var Mean yield
6.160242 6.266071
Analysis
percent acum Df Sum.Sq Mean.Sq F.value Pr.F
CP1 66.5 66.5 12 18.428682 1.535723 10.31 0.0000
CP2 19.6 86.1 10 5.442634 0.544263 3.65 0.0004
CP3 7.1 93.2 8 1.975196 0.246900
1.66 0.1179
CP4 4.9 98.1 6 1.362955 0.227159
1.52 0.1795
CP5 1.2 99.3 4 0.328892 0.082223
0.55 0.6994
CP6 0.6 99.9 2 0.167690 0.083845
0.56 0.5730

rm(REP)
bplot<-model$biplot[,1:4]
attach(bplot)
plot(yield,CP1,cex=0.0,text(yield,CP1,labels=row.names(bplot),col="blue"),
main="AMMI BIPLOT",frame=TRUE)
means <- mean(yield)
abline(h=0,v= means,lty=2,col="red")
env<-subset(bplot,type=="ENV")
attach(env)
s <- seq(length(yield))
arrows(means, 0, 0.9*(yield[s]-means)+means, 0.9*CP1[s], col= "brown",
lwd=1.8,length=0.1)

File: Variety.txt
Obs Genotype years yield
1 COLOSSEO 1996 6.35
2 CRESO 1996 5.60
3 DUILIO 1996 5.64
4 GRAZIA 1996 6.26
5 IRIDE 1996 6.04
6 SANCARLO 1996 5.70
7 SIMETO 1996 5.08
8 SOLEX 1996 6.14
9 COLOSSEO 1997 6.46
10 CRESO 1997 6.09
11 DUILIO 1997 8.06
12 GRAZIA 1997 6.74
13 IRIDE 1997 7.72
14 SANCARLO 1997 6.77
15 SIMETO 1997 7.19
16 SOLEX 1997 6.39
17 COLOSSEO 1998 6.70
18 CRESO 1998 6.13
19 DUILIO 1998 7.15
20 GRAZIA 1998 6.35
21 IRIDE 1998 6.39
22 SANCARLO 1998 6.81
23 SIMETO 1998 6.44
24 SOLEX 1998 6.44
25 COLOSSEO 1999 6.98
26 CRESO 1999 7.13
27 DUILIO 1999 7.99
28 GRAZIA 1999 6.84
29 IRIDE 1999 7.99
30 SANCARLO 1999 7.41
31 SIMETO 1999 7.07
32 SOLEX 1999 6.87
33 COLOSSEO 2000 6.44
34 CRESO 2000 6.08
35 DUILIO 2000 5.18
36 GRAZIA 2000 4.75
37 IRIDE 2000 6.05
38 SANCARLO 2000 5.66
39 SIMETO 2000 4.82
40 SOLEX 2000 5.45
41 COLOSSEO 2001 7.07
42 CRESO 2001 6.45
43 DUILIO 2001 7.88
44 GRAZIA 2001 7.30
45 IRIDE 2001 7.71
46 SANCARLO 2001 6.67
47 SIMETO 2001 7.55
48 SOLEX 2001 7.52
49 COLOSSEO 2002 4.90
50 CRESO 2002 4.33
51 DUILIO 2002 4.24
52 GRAZIA 2002 4.34
53 IRIDE 2002 4.96
54 SANCARLO 2002 4.50
55 SIMETO 2002 3.34
56 SOLEX 2002 4.79