Analisis METs (multi-environment trials) atau biasa dikenal
dengan percobaan multilokasi (UML) merupakan sederetan percobaan yang
dilakukan pada beberapa lingkungan atau lokasi. Rancangan percobaan di
setiap lingkungan bisa menggunakan RKLT, RBSL ataupun yang lainnya. Pada
analisis ini menggunakan dataset data_ge yang tersedia di
paket metan.
Persiapkan data, mulai dari input data, cek/memeriksa data, manipulasi data ataupun pemrosesan data lainnya. Hal ini dilakukan melalui berbagai cara seperti melihat struktur data, menambah kolom tertentu dengan nama yang sesuai, mengubah karakter atau nilai dari suatu variabel seperti string, numeric, character, factor dll.
library(agricolae)
library(metan)
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
## |=========================================================|
## | Multi-Environment Trial Analysis (metan) v1.18.0 |
## | Author: Tiago Olivoto |
## | Type 'citation('metan')' to know how to cite metan |
## | Type 'vignette('metan_start')' for a short tutorial |
## | Visit 'https://bit.ly/pkgmetan' for a complete tutorial |
## |=========================================================|
my_data <- data_ge
str(my_data)
## tibble [420 × 5] (S3: tbl_df/tbl/data.frame)
## $ ENV: Factor w/ 14 levels "E1","E10","E11",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ GEN: Factor w/ 10 levels "G1","G10","G2",..: 1 1 1 3 3 3 4 4 4 5 ...
## $ REP: Factor w/ 3 levels "1","2","3": 1 2 3 1 2 3 1 2 3 1 ...
## $ GY : num [1:420] 2.17 2.5 2.43 3.21 2.93 ...
## $ HM : num [1:420] 44.9 46.9 47.8 45.2 45.3 ...
Analisis ragam diperuntukkan untuk melihat interaksi antara dua faktor, yaitu G x E, nyata tidaknya tergantung karakter tanaman, jumlah genotipe, dan lingkungan. apabila interaksi nyata dapat dilanjutkan pada analisis berikutnya
# 1. ANOVA
mod1 <- aov(GY ~ ENV + REP%in%ENV + GEN + GEN:ENV, my_data)
anova(mod1)
summary(mod1)
## Df Sum Sq Mean Sq F value Pr(>F)
## ENV 13 279.57 21.506 222.411 < 2e-16 ***
## GEN 9 13.00 1.444 14.933 < 2e-16 ***
## ENV:REP 28 9.66 0.345 3.569 3.59e-08 ***
## ENV:GEN 117 31.22 0.267 2.760 1.01e-11 ***
## Residuals 252 24.37 0.097
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
cv <- cv.model(mod1)
cv
## [1] 11.62779
round(cv, 2)
## [1] 11.63
Analisis AMMI berguna untuk melihat sejauh mana interaksi GxE berperan terhadap karakter yang diamati. Untuk itu, AMMI memperlihatkan pola interaksi GxE melalui komponen-komponen utama yg disebut PC (principle component). Dengan demikian interaksi yg ada didekomposisi atau diuraikan menjadi beberapa komponen utama untuk menerangkan kompleksitas interaksi GxE.
# 2. AMMI
mod2 <- performs_ammi(my_data, ENV, GEN, REP, GY)
## variable GY
## ---------------------------------------------------------------------------
## AMMI analysis table
## ---------------------------------------------------------------------------
## Source Df Sum Sq Mean Sq F value Pr(>F) Proportion Accumulated
## ENV 13 279.574 21.5057 62.33 0.00e+00 NA NA
## REP(ENV) 28 9.662 0.3451 3.57 3.59e-08 NA NA
## GEN 9 12.995 1.4439 14.93 2.19e-19 NA NA
## GEN:ENV 117 31.220 0.2668 2.76 1.01e-11 NA NA
## PC1 21 10.749 0.5119 5.29 0.00e+00 34.4 34.4
## PC2 19 9.924 0.5223 5.40 0.00e+00 31.8 66.2
## PC3 17 4.039 0.2376 2.46 1.40e-03 12.9 79.2
## PC4 15 3.074 0.2049 2.12 9.60e-03 9.8 89.0
## PC5 13 1.446 0.1113 1.15 3.18e-01 4.6 93.6
## PC6 11 0.932 0.0848 0.88 5.61e-01 3.0 96.6
## PC7 9 0.567 0.0630 0.65 7.53e-01 1.8 98.4
## PC8 7 0.362 0.0518 0.54 8.04e-01 1.2 99.6
## PC9 5 0.126 0.0252 0.26 9.34e-01 0.4 100.0
## Residuals 252 24.367 0.0967 NA NA NA NA
## Total 536 389.036 0.7258 NA NA NA NA
## ---------------------------------------------------------------------------
##
## All variables with significant (p < 0.05) genotype-vs-environment interaction
## Done!
print(mod2)
## Variable GY
## ---------------------------------------------------------------------------
## AMMI analysis table
## ---------------------------------------------------------------------------
## Source Df Sum Sq Mean Sq F value Pr(>F) Proportion
## 1 ENV 13 279.573552 21.50565785 62.325457 0.000000e+00 NA
## 2 REP(ENV) 28 9.661516 0.34505416 3.568548 3.593191e-08 NA
## 3 GEN 9 12.995044 1.44389374 14.932741 2.190118e-19 NA
## 4 GEN:ENV 117 31.219565 0.26683389 2.759595 1.005191e-11 NA
## 5 PC1 21 10.749140 0.51186000 5.290000 0.000000e+00 34.4
## 6 PC2 19 9.923920 0.52231000 5.400000 0.000000e+00 31.8
## 7 PC3 17 4.039180 0.23760000 2.460000 1.400000e-03 12.9
## 8 PC4 15 3.073770 0.20492000 2.120000 9.600000e-03 9.8
## 9 PC5 13 1.446440 0.11126000 1.150000 3.176000e-01 4.6
## 10 PC6 11 0.932240 0.08475000 0.880000 5.606000e-01 3.0
## 11 PC7 9 0.566700 0.06297000 0.650000 7.535000e-01 1.8
## 12 PC8 7 0.362320 0.05176000 0.540000 8.037000e-01 1.2
## 13 PC9 5 0.125860 0.02517000 0.260000 9.345000e-01 0.4
## 14 Residuals 252 24.366674 0.09669315 NA NA NA
## 15 Total 536 389.035920 0.72581328 NA NA NA
## Accumulated
## 1 NA
## 2 NA
## 3 NA
## 4 NA
## 5 34.4
## 6 66.2
## 7 79.2
## 8 89.0
## 9 93.6
## 10 96.6
## 11 98.4
## 12 99.6
## 13 100.0
## 14 NA
## 15 NA
## ---------------------------------------------------------------------------
## Scores for genotypes and environments
## ---------------------------------------------------------------------------
## # A tibble: 24 × 12
## type Code Y PC1 PC2 PC3 PC4 PC5 PC6
## <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 GEN G1 2.604 0.3166 -0.04417 -0.03600 -0.06595 -0.3125 -0.4272
## 2 GEN G10 2.471 -1.001 -0.5718 -0.1652 -0.3309 -0.1243 0.1064
## 3 GEN G2 2.744 0.1390 0.1988 -0.7331 0.4735 -0.04816 0.2841
## 4 GEN G3 2.955 0.04340 -0.1028 0.2284 0.1769 -0.1270 0.1400
## 5 GEN G4 2.642 -0.3251 0.4782 -0.09073 0.1417 -0.1924 -0.3550
## 6 GEN G5 2.537 -0.3260 0.2461 0.2452 0.1794 0.4662 -0.03315
## 7 GEN G6 2.534 -0.09836 0.2429 0.5607 0.2377 0.05094 0.1011
## 8 GEN G7 2.741 0.2849 0.5871 -0.2068 -0.7085 0.2315 0.08406
## 9 GEN G8 3.004 0.4995 -0.1916 0.3191 -0.1676 -0.3261 0.2886
## 10 GEN G9 2.510 0.4668 -0.8427 -0.1217 0.06385 0.3819 -0.1889
## # ℹ 14 more rows
## # ℹ 3 more variables: PC7 <dbl>, PC8 <dbl>, PC9 <dbl>
Setelah mendapatkan nilai-nilai komponen AMMI baik itu pada genotipe (G) dan lingkungan (E) dapat diplotkan pada ruang berdimensi dua, yaitu biplot. Biplot AMMI berguna untuk menjelaskan dan memvisualisasikan pola-pola interaksi G x E beserta besarannya.
# 3. Biplot AMMI
plot_scores(mod2, type=1, leg.lab = c("Lingkungan", "Kultivar"))
a1 <- plot_scores(mod2, type=2, leg.lab = c("Lingkungan", "Kultivar"))
a2 <- plot_scores(mod2, type = 1)
Secara teknis berbeda dengan biplot AMMI, terutama perhitungannya, akan tetapi fungsi dan penjelasannya masih mirip dengan AMMI, akan tetapi penggunaannya lebih luas dibandingkan AMMI. Hal ini dikarenakan terdapat beragamnya biplot GGE yang dihasilkan dari visualisasinya.
Basic biplot (PC1 vs PC2), menerangkan pola interaksi GxE.
Mean performance vs. stability (gge biplots) or the The Average Tester Coordination view for genotype-trait and genotype-yield*trait biplots.
Which-won-where. Menjelaskan pola adaptasi spesifik genotipe pada lingkungan tertentu, serta mampu membagi beberapa lingkungan menjadi mega-environment.
Discriminativeness vs. representativeness. Menjelaskan pola-pola genotipe yang memiliki tingkat
Examine an environment (or trait/yield*trait combination).
Ranking environments (or trait/yield*trait combination).
Examine a genotype.
Ranking genotypes.
Compare two genotypes.
Relationship among environments (or trait/yield*trait combination).
# 4. Biplot GGE
mod3 <- gge(my_data, ENV, GEN, GY)
print(mod3)
## $GY
## $coordgen
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0.01610444 -0.14571935 -0.37148174 0.02429496 -0.09558981 -0.8329731403
## [2,] -0.73730534 -0.17022818 0.66186826 -0.27305939 -0.36620007 -0.0533604256
## [3,] 0.16821588 0.12455957 -0.14620200 -0.80637124 0.58368522 0.1744957433
## [4,] 0.41267919 -0.06525041 0.55954226 0.12645717 0.24757034 0.1598142418
## [5,] -0.11571527 0.49262774 0.03135256 -0.10272520 0.17210057 -0.4612039911
## [6,] -0.30307500 0.28924767 -0.10499775 0.33195232 0.18249008 0.5183538386
## [7,] -0.19897590 0.21675196 -0.18110399 0.68009814 0.25078736 0.0005259355
## [8,] 0.26991958 0.39697503 -0.34168137 -0.19783962 -0.84905169 0.3318278433
## [9,] 0.65705951 -0.27715716 0.36022934 0.23713758 -0.16436755 -0.0962665922
## [10,] -0.16890710 -0.86180686 -0.46752557 -0.01994471 0.03857556 0.2587865467
## [,7] [,8] [,9] [,10]
## [1,] 0.08299415 0.004279075 -0.639073732 0.3768857
## [2,] 0.20876348 -0.112347996 -0.001929726 0.3768857
## [3,] 0.41062856 -0.152023887 -0.010004520 0.3768857
## [4,] -0.61816308 -0.380703646 -0.401064125 0.3768857
## [5,] -0.54277314 0.351011713 0.592147332 0.3768857
## [6,] 0.06413009 0.675840846 -0.467742730 0.3768857
## [7,] 0.35211961 -0.646761738 0.302154179 0.3768857
## [8,] -0.10390536 -0.223997564 0.009137699 0.3768857
## [9,] 0.50613224 0.434480805 0.320336675 0.3768857
## [10,] -0.35992656 0.050222392 0.296038948 0.3768857
##
## $coordenv
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0.925566934 0.1611397 0.053498512 -0.28402352 0.11725885 0.06448817
## [2,] 0.816537768 0.3820221 -0.123177353 0.13590579 0.02019406 -0.08880249
## [3,] 0.572276058 0.1859502 -0.002634319 0.17651328 0.21963223 -0.02395520
## [4,] 0.813822254 0.2607079 -0.093983238 -0.18838868 0.07119126 0.37651161
## [5,] 1.385061962 -0.1509422 -0.266337675 0.23296343 0.12914899 0.07217375
## [6,] 0.164749837 0.1608779 0.396847035 0.27031419 -0.25063550 0.10536330
## [7,] 0.194915029 -0.1704715 0.482222337 0.21564143 0.51926931 -0.05522041
## [8,] 0.242625689 -0.5574855 -0.058610312 -0.78076412 0.01383258 0.11255754
## [9,] 0.025465997 -0.8454143 0.896462819 -0.12692656 0.20100879 0.01056652
## [10,] 1.110231746 -0.3776394 0.039316151 0.05859059 -0.22864634 -0.31262658
## [11,] 0.436669676 -0.2542485 0.124562106 -0.04734039 -0.08077277 -0.17979897
## [12,] 0.385690604 0.3937986 0.468849710 -0.29406731 -0.59421714 -0.06161306
## [13,] 0.119804743 -0.1418048 0.469427300 0.45375709 -0.29389041 0.28805138
## [14,] -0.009302892 1.2571064 0.553053603 -0.24958487 0.25886250 -0.08958946
## [,7] [,8] [,9] [,10]
## [1,] -0.082260355 -0.082063696 0.12072956 2.241865e-17
## [2,] 0.144111589 0.030656332 -0.10507714 6.358425e-17
## [3,] 0.099263691 -0.025250838 0.01485091 -5.980407e-16
## [4,] 0.102459392 0.167953205 0.01796643 3.213684e-16
## [5,] -0.102262704 -0.194592585 -0.06026315 1.867780e-16
## [6,] -0.160953868 0.002473073 0.08995450 3.337994e-17
## [7,] -0.006498039 -0.020993802 0.02471786 -3.365799e-16
## [8,] -0.076625568 0.034286040 -0.05071982 -5.051875e-16
## [9,] 0.128254897 -0.037536352 -0.02250992 4.278318e-16
## [10,] 0.079265847 0.195028039 0.06180338 -5.989605e-17
## [11,] -0.284180449 0.082006697 -0.06719233 1.701613e-16
## [12,] 0.114128636 -0.174881716 -0.01121146 -1.102044e-16
## [13,] -0.047481569 0.086220442 -0.06418274 -3.652280e-16
## [14,] -0.084243079 0.073221518 -0.04124440 4.556218e-17
##
## $eigenvalues
## [1] 2.478458e+00 1.827690e+00 1.434583e+00 1.151378e+00 1.011176e+00
## [6] 6.413885e-01 4.647917e-01 4.068879e-01 2.363355e-01 1.110483e-15
##
## $totalvar
## [1] 14.74
##
## $varexpl
## [1] 41.67 22.66 13.96 8.99 6.94 2.79 1.47 1.12 0.38 0.00
##
## $labelgen
## [1] "G1" "G10" "G2" "G3" "G4" "G5" "G6" "G7" "G8" "G9"
##
## $labelenv
## [1] "E1" "E10" "E11" "E12" "E13" "E14" "E2" "E3" "E4" "E5" "E6" "E7"
## [13] "E8" "E9"
##
## $labelaxes
## [1] "PC1" "PC2" "PC3" "PC4" "PC5" "PC6" "PC7" "PC8" "PC9" "PC10"
##
## $ge_mat
## E1 E10 E11 E12 E13 E14
## G1 -0.15489667 0.13242400 -0.012598000 -0.26617901 0.088628395 -0.248600000
## G10 -0.54661000 -0.63895600 -0.469164667 -0.58637654 -1.078964198 0.077276543
## G2 0.38106333 0.12184400 0.122455333 0.38482099 0.118677778 -0.355353086
## G3 0.36790333 0.16151733 0.199462000 0.15584568 0.559517284 0.277720988
## G4 0.06788333 -0.00785600 0.001735333 -0.08117901 -0.273914815 0.079400000
## G5 -0.33242333 -0.03537600 -0.042598000 0.08048765 -0.341532099 0.002362963
## G6 -0.21988333 0.03293733 0.132402000 -0.22284568 0.002035802 0.016918519
## G7 0.25304333 0.26668400 -0.003931333 0.34311728 0.274208642 0.154400000
## G8 0.37867667 0.39965733 0.315168667 0.39148765 0.610344444 0.209930864
## G9 -0.19475667 -0.43287600 -0.242931333 -0.19917901 0.040998765 -0.214056790
## E2 E3 E4 E5 E6 E7
## G1 -0.13926900 0.01600000 -0.18093933 0.26003086 0.145872840 -0.091016000
## G10 -0.03411900 0.05000000 0.59572733 -0.54483333 -0.178337037 0.254730667
## G2 0.05109433 0.50433333 0.04030067 -0.08306790 -0.121880247 -0.001269333
## G3 0.42832100 0.06800000 0.45872733 0.21615432 0.321502469 0.169650667
## G4 0.01012100 -0.21000000 -0.37310600 -0.12789506 0.037971605 -0.008009333
## G5 -0.03982233 -0.32300000 -0.29615933 -0.44150000 -0.229892593 -0.332129333
## G6 0.11121433 -0.62966667 -0.27179933 -0.34157407 -0.327658025 -0.231109333
## G7 -0.56728233 0.03700000 -0.65631933 0.13741358 0.002687654 0.561917333
## G8 0.26483767 0.04566667 0.46250067 0.90159877 0.244909877 0.272884000
## G9 -0.08509567 0.44166667 0.22106733 0.02367284 0.104823457 -0.595649333
## E8 E9
## G1 -0.264442333 -0.27293333
## G10 0.163934333 0.09340000
## G2 -0.491079000 0.30673333
## G3 0.314044333 0.23706667
## G4 -0.235785667 0.66806667
## G5 0.171954333 0.24306667
## G6 0.003004333 -0.01693333
## G7 0.047007667 0.08340000
## G8 0.342477667 -0.22860000
## G9 -0.051115667 -1.11326667
##
## $centering
## [1] "environment"
##
## $scaling
## [1] "none"
##
## $svp
## [1] "environment"
##
## $d
## [1] 0.8390548
##
## $grand_mean
## [1] 2.674242
##
## $mean_gen
## G1 G10 G2 G3 G4 G5 G6 G7
## 2.603676 2.471221 2.744147 2.955344 2.641915 2.537344 2.534030 2.740909
## G8 G9
## 3.003638 2.510192
##
## $mean_env
## E1 E10 E11 E12 E13 E14 E2 E3
## 2.520683 2.175209 1.368265 1.608512 2.909631 1.781933 3.179959 4.064333
## E4 E5 E6 E7 E8 E9
## 3.675273 3.910500 2.663214 1.988896 2.536376 3.056600
##
## $scale_val
## E1 E10 E11 E12 E13 E14 E2 E3
## 0.3353533 0.3139994 0.2242927 0.3266763 0.4876511 0.2085679 0.2624407 0.3341931
## E4 E5 E6 E7 E8 E9
## 0.4208472 0.4187757 0.2118516 0.3351210 0.2674722 0.4758337
##
## attr(,"class")
## [1] "gge"
##
## attr(,"class")
## [1] "gge"
g1 <- plot(mod3, type=1, leg.lab = c('Lingkungan', 'Kultivar'))
g1
g2 <- plot(mod3, type=2, leg.lab = c('Lingkungan', 'Kultivar'))
g2
## Warning in geom_segment(x = 0, y = 0, xend = med1, yend = med2, arrow = arrow(length = unit(0.3, : All aesthetics have length 1, but the data has 24 rows.
## ℹ Please consider using `annotate()` or provide this layer with data containing
## a single row.
g3 <- plot(mod3, type=3, leg.lab = c('Lingkungan', 'Kultivar'))
g3
g8 <- plot(mod3, type=8)
g8
## Warning in geom_segment(x = 0, y = 0, xend = coordx, yend = coordy, arrow = arrow(length = unit(0.15, : All aesthetics have length 1, but the data has 24 rows.
## ℹ Please consider using `annotate()` or provide this layer with data containing
## a single row.
## Warning in geom_point(aes(coordx, coordy), shape = 1, color = col.stroke, : All aesthetics have length 1, but the data has 24 rows.
## ℹ Please consider using `annotate()` or provide this layer with data containing
## a single row.