data <- read.table("C:/Users/MINH/Downloads/Salmon_characteristics.txt", header = TRUE, sep = "\t", stringsAsFactors = FALSE)
print(data)
## Product water lipid TVBN TMA salt phenol pH
## 1 prod1_Fr -0,8644 1,1375 -0,7629 -0,8717 -0,1471 -0,3776 1,5412
## 2 prod2_Fr -1,1476 0,7036 0,2357 0,3204 0,1626 0,0112 1,2098
## 3 prod3_Fr -0,4172 0,3378 0,4354 1,2144 0,3174 0,4001 0,3812
## 4 prod4_Scot -0,8147 -0,0961 -0,5632 -0,8717 0,3174 -0,4554 0,2154
## 5 prod5_Ger -1,6991 0,0366 -0,7629 -0,8717 2,1752 -0,3776 -0,2817
## 6 prod6_Ire -0,9886 0,9653 -0,7629 -0,8717 0,0077 0,6594 1,0441
## 7 prod7_Ire -1,5848 1,2809 -0,3635 -0,8717 0,0077 -0,1702 0,8783
## 8 prod8_Ger 0,338 0,094 -0,9626 -0,5737 -2,0049 1,126 -1,1104
## 9 prod9_Ire 1,9081 -0,2969 -1,1623 -0,8717 1,4011 1,4631 0,5469
## 10 prod10_It 0,1095 -2,1795 0,8348 0,0224 0,9366 0,9964 0,3812
## 11 prod11_Fr 1,4659 -1,283 -0,7629 -0,2757 -0,4567 -0,935 -1,7733
## 12 prod12_Dk 1,3615 -0,3005 -0,7629 -0,5737 -0,3793 0,3223 0,8783
## 13 prod13_Ger 0,1939 -0,3722 0,2357 0,6184 -0,7663 -1,1036 0,5469
## 14 prod14_Ger -0,1787 1,6072 -1,1623 -0,8717 0,3174 -0,4554 -0,9446
## 15 prod15_Fr 0,3976 0,5135 -0,9626 -0,7346 0,3948 -0,5591 -0,2817
## 16 prod16_Ger 1,5752 -0,9711 -0,7629 -0,2757 0,1626 -0,598 -0,2817
## 17 prod17_Fr -0,3228 -0,5623 -0,3635 -0,8717 1,5559 -0,6628 -1,4418
## 18 prod18_UK -0,5563 0,3665 2,033 2,1085 -1,076 1,0483 -0,116
## 19 prod19_UK 1,1131 -2,4628 1,2342 0,3204 0,0077 1,489 0,7126
## 20 prod20_Dk -0,3675 1,6251 -0,7629 -0,8717 -0,1471 0,0631 -1,2761
## 21 prod21_UK -1,2072 0,5709 0,8348 0,3204 -0,6115 -1,2073 -1,4418
## 22 prod22_Fr -0,9985 0,5529 1,4339 1,2144 -0,6889 0,0631 -0,4475
## 23 prod23_Ger 2,0273 -1,5341 -0,3635 -0,8717 0,9366 -0,2221 -0,4475
## 24 prod24_Dk 0,4821 0,431 -0,3635 -0,2757 -0,9212 -0,6369 1,3755
## 25 prod25_Bel 0,4622 -0,0853 2,6322 2,4065 -1,3856 -0,8443 -1,2761
## 26 prod26_UK 0,7554 -1,2472 0,4354 0,6184 -0,6115 -1,1813 2,0384
## 27 prod27_Fr -0,924 0,3665 -0,0439 -0,1892 0,0077 -0,9739 1,0441
## 28 prod28_Bel -0,0048 0,5781 1,8333 2,1085 -1,3856 -0,7406 0,0497
## 29 prod29_Scot -0,1439 -0,4439 -0,7629 -0,8717 2,4848 0,4001 -1,1104
## 30 prod30_Bel 0,03 0,6677 0,2357 1,2144 -0,6115 3,4593 -0,6132
## total.viable.count lactic.flora lactobacilli brochothrix yeast
## 1 0,1112 0,6665 1,1382 0,5461 0,7729
## 2 0,4302 -0,4514 0,129 -0,7559 1,2034
## 3 0,8225 0,8725 0,4088 0,6465 0,2875
## 4 -0,2432 -1,5861 -1,0624 -0,7559 -1,034
## 5 -1,5584 -1,5861 -1,0624 -0,7559 -1,034
## 6 -2,5977 -1,5861 -1,0624 -0,7559 -1,034
## 7 -0,9336 -0,0449 0,3686 -0,7559 -1,034
## 8 -0,2561 0,4294 0,6069 -0,7559 0,4282
## 9 -1,1271 -1,5861 -1,0624 -0,7559 -1,034
## 10 0,2176 1,5327 1,9639 1,9004 0,7852
## 11 0,8505 0,5524 0,9344 -0,7559 2,1072
## 12 0,3222 0,8725 1,2442 -0,7559 1,2038
## 13 0,8076 0,0282 -1,0624 0,9831 -1,034
## 14 -0,8553 -0,4082 -1,0624 -0,7559 -1,034
## 15 -0,1907 -0,2986 -1,0624 -0,7559 -1,034
## 16 -0,2814 0,5306 -1,0624 -0,7559 0,498
## 17 -0,3769 -0,4776 -1,0624 -0,7559 -1,034
## 18 0,6098 0,8165 -1,0624 0,4217 0,0682
## 19 0,9992 1,2062 1,1989 2,4632 0,2875
## 20 -0,8152 -0,1654 0,2839 -0,7559 0,9324
## 21 1,0168 0,3479 0,4541 1,3957 0,2341
## 22 0,6157 0,8681 1,0535 1,1371 0,5504
## 23 -0,0665 -1,5861 -1,0624 -0,7559 -1,034
## 24 0,4494 -1,5861 -1,0624 -0,7559 -1,034
## 25 1,0223 0,8165 1,2312 -0,7559 0,2875
## 26 1,0932 0,8362 0,0909 0,9443 -1,034
## 27 0,3376 0,7697 0,5204 1,7156 1,9679
## 28 1,1384 0,8491 1,2539 0,5758 1,1315
## 29 -2,5977 -1,5861 -1,0624 -0,7559 -1,034
## 30 1,0558 0,9539 0,9302 0,8767 0,6964
## enterobacteriaceae L a b origin
## 1 0,8314 0,9917 -0,6467 -0,4567 France
## 2 0,5998 0,8542 0,5297 0,9551 France
## 3 0,2524 -0,8548 0,3927 0,2813 France
## 4 -1,5793 0,302 1,7439 3,3236 Scotland
## 5 -0,9582 -1,3485 0,7341 0,5485 Germany
## 6 -1,5793 -0,4322 0,4016 0,4278 Ireland
## 7 -0,6424 -0,4737 1,2366 1,6822 Ireland
## 8 -0,6634 -1,0916 0,6655 0,9331 Germany
## 9 -0,5266 0,055 -0,3624 -0,6856 Ireland
## 10 0,8372 -1,8353 -1,0433 -0,513 Italy
## 11 1,4683 0,2448 -0,5423 -0,0307 France
## 12 0,0419 0,3527 -0,4328 -1,5026 DK
## 13 0,9735 0,5279 0,4921 0,2601 Germany
## 14 -0,9582 1,3714 -0,0805 -0,6433 Germany
## 15 1,0419 0,9614 -0,2456 -0,7466 France
## 16 0,0419 0,3384 0,2588 -0,5323 Germany
## 17 -0,6266 0,1846 0,3111 0,2349 France
## 18 0,0216 -0,7728 0,7864 0,2931 UK
## 19 1,547 -0,2587 0,2626 0,8976 UK
## 20 -1,5793 1,5224 -1,3598 -1,3411 DK
## 21 0,0109 2,5982 -3,9939 -1,8277 UK
## 22 0,5577 0,1901 -0,0805 0,3227 France
## 23 -1,5793 1,0328 -0,3553 -0,4847 Germany
## 24 0,0508 0,5514 -0,5153 -1,492 DK
## 25 -0,1055 -1,6298 0,7578 0,4104 Belgium
## 26 1,4803 -0,8136 0,5383 -0,0762 UK
## 27 1,6472 -0,3829 0,3803 -0,0363 France
## 28 0,6682 -1,0399 0,4114 0,2132 Belgium
## 29 -1,5793 -1,2488 0,6412 0,178 Scotland
## 30 0,3051 0,1036 -0,8857 -0,5929 Belgium
data[, 2:17] <- lapply(data[, 2:17], function(x) as.numeric(gsub(",", ".", x)))
data
## Product water lipid TVBN TMA salt phenol pH
## 1 prod1_Fr -0.8644 1.1375 -0.7629 -0.8717 -0.1471 -0.3776 1.5412
## 2 prod2_Fr -1.1476 0.7036 0.2357 0.3204 0.1626 0.0112 1.2098
## 3 prod3_Fr -0.4172 0.3378 0.4354 1.2144 0.3174 0.4001 0.3812
## 4 prod4_Scot -0.8147 -0.0961 -0.5632 -0.8717 0.3174 -0.4554 0.2154
## 5 prod5_Ger -1.6991 0.0366 -0.7629 -0.8717 2.1752 -0.3776 -0.2817
## 6 prod6_Ire -0.9886 0.9653 -0.7629 -0.8717 0.0077 0.6594 1.0441
## 7 prod7_Ire -1.5848 1.2809 -0.3635 -0.8717 0.0077 -0.1702 0.8783
## 8 prod8_Ger 0.3380 0.0940 -0.9626 -0.5737 -2.0049 1.1260 -1.1104
## 9 prod9_Ire 1.9081 -0.2969 -1.1623 -0.8717 1.4011 1.4631 0.5469
## 10 prod10_It 0.1095 -2.1795 0.8348 0.0224 0.9366 0.9964 0.3812
## 11 prod11_Fr 1.4659 -1.2830 -0.7629 -0.2757 -0.4567 -0.9350 -1.7733
## 12 prod12_Dk 1.3615 -0.3005 -0.7629 -0.5737 -0.3793 0.3223 0.8783
## 13 prod13_Ger 0.1939 -0.3722 0.2357 0.6184 -0.7663 -1.1036 0.5469
## 14 prod14_Ger -0.1787 1.6072 -1.1623 -0.8717 0.3174 -0.4554 -0.9446
## 15 prod15_Fr 0.3976 0.5135 -0.9626 -0.7346 0.3948 -0.5591 -0.2817
## 16 prod16_Ger 1.5752 -0.9711 -0.7629 -0.2757 0.1626 -0.5980 -0.2817
## 17 prod17_Fr -0.3228 -0.5623 -0.3635 -0.8717 1.5559 -0.6628 -1.4418
## 18 prod18_UK -0.5563 0.3665 2.0330 2.1085 -1.0760 1.0483 -0.1160
## 19 prod19_UK 1.1131 -2.4628 1.2342 0.3204 0.0077 1.4890 0.7126
## 20 prod20_Dk -0.3675 1.6251 -0.7629 -0.8717 -0.1471 0.0631 -1.2761
## 21 prod21_UK -1.2072 0.5709 0.8348 0.3204 -0.6115 -1.2073 -1.4418
## 22 prod22_Fr -0.9985 0.5529 1.4339 1.2144 -0.6889 0.0631 -0.4475
## 23 prod23_Ger 2.0273 -1.5341 -0.3635 -0.8717 0.9366 -0.2221 -0.4475
## 24 prod24_Dk 0.4821 0.4310 -0.3635 -0.2757 -0.9212 -0.6369 1.3755
## 25 prod25_Bel 0.4622 -0.0853 2.6322 2.4065 -1.3856 -0.8443 -1.2761
## 26 prod26_UK 0.7554 -1.2472 0.4354 0.6184 -0.6115 -1.1813 2.0384
## 27 prod27_Fr -0.9240 0.3665 -0.0439 -0.1892 0.0077 -0.9739 1.0441
## 28 prod28_Bel -0.0048 0.5781 1.8333 2.1085 -1.3856 -0.7406 0.0497
## 29 prod29_Scot -0.1439 -0.4439 -0.7629 -0.8717 2.4848 0.4001 -1.1104
## 30 prod30_Bel 0.0300 0.6677 0.2357 1.2144 -0.6115 3.4593 -0.6132
## total.viable.count lactic.flora lactobacilli brochothrix yeast
## 1 0.1112 0.6665 1.1382 0.5461 0.7729
## 2 0.4302 -0.4514 0.1290 -0.7559 1.2034
## 3 0.8225 0.8725 0.4088 0.6465 0.2875
## 4 -0.2432 -1.5861 -1.0624 -0.7559 -1.0340
## 5 -1.5584 -1.5861 -1.0624 -0.7559 -1.0340
## 6 -2.5977 -1.5861 -1.0624 -0.7559 -1.0340
## 7 -0.9336 -0.0449 0.3686 -0.7559 -1.0340
## 8 -0.2561 0.4294 0.6069 -0.7559 0.4282
## 9 -1.1271 -1.5861 -1.0624 -0.7559 -1.0340
## 10 0.2176 1.5327 1.9639 1.9004 0.7852
## 11 0.8505 0.5524 0.9344 -0.7559 2.1072
## 12 0.3222 0.8725 1.2442 -0.7559 1.2038
## 13 0.8076 0.0282 -1.0624 0.9831 -1.0340
## 14 -0.8553 -0.4082 -1.0624 -0.7559 -1.0340
## 15 -0.1907 -0.2986 -1.0624 -0.7559 -1.0340
## 16 -0.2814 0.5306 -1.0624 -0.7559 0.4980
## 17 -0.3769 -0.4776 -1.0624 -0.7559 -1.0340
## 18 0.6098 0.8165 -1.0624 0.4217 0.0682
## 19 0.9992 1.2062 1.1989 2.4632 0.2875
## 20 -0.8152 -0.1654 0.2839 -0.7559 0.9324
## 21 1.0168 0.3479 0.4541 1.3957 0.2341
## 22 0.6157 0.8681 1.0535 1.1371 0.5504
## 23 -0.0665 -1.5861 -1.0624 -0.7559 -1.0340
## 24 0.4494 -1.5861 -1.0624 -0.7559 -1.0340
## 25 1.0223 0.8165 1.2312 -0.7559 0.2875
## 26 1.0932 0.8362 0.0909 0.9443 -1.0340
## 27 0.3376 0.7697 0.5204 1.7156 1.9679
## 28 1.1384 0.8491 1.2539 0.5758 1.1315
## 29 -2.5977 -1.5861 -1.0624 -0.7559 -1.0340
## 30 1.0558 0.9539 0.9302 0.8767 0.6964
## enterobacteriaceae L a b origin
## 1 0.8314 0.9917 -0.6467 -0.4567 France
## 2 0.5998 0.8542 0.5297 0.9551 France
## 3 0.2524 -0.8548 0.3927 0.2813 France
## 4 -1.5793 0.3020 1.7439 3.3236 Scotland
## 5 -0.9582 -1.3485 0.7341 0.5485 Germany
## 6 -1.5793 -0.4322 0.4016 0.4278 Ireland
## 7 -0.6424 -0.4737 1.2366 1.6822 Ireland
## 8 -0.6634 -1.0916 0.6655 0.9331 Germany
## 9 -0.5266 0.0550 -0.3624 -0.6856 Ireland
## 10 0.8372 -1.8353 -1.0433 -0.5130 Italy
## 11 1.4683 0.2448 -0.5423 -0.0307 France
## 12 0.0419 0.3527 -0.4328 -1.5026 DK
## 13 0.9735 0.5279 0.4921 0.2601 Germany
## 14 -0.9582 1.3714 -0.0805 -0.6433 Germany
## 15 1.0419 0.9614 -0.2456 -0.7466 France
## 16 0.0419 0.3384 0.2588 -0.5323 Germany
## 17 -0.6266 0.1846 0.3111 0.2349 France
## 18 0.0216 -0.7728 0.7864 0.2931 UK
## 19 1.5470 -0.2587 0.2626 0.8976 UK
## 20 -1.5793 1.5224 -1.3598 -1.3411 DK
## 21 0.0109 2.5982 -3.9939 -1.8277 UK
## 22 0.5577 0.1901 -0.0805 0.3227 France
## 23 -1.5793 1.0328 -0.3553 -0.4847 Germany
## 24 0.0508 0.5514 -0.5153 -1.4920 DK
## 25 -0.1055 -1.6298 0.7578 0.4104 Belgium
## 26 1.4803 -0.8136 0.5383 -0.0762 UK
## 27 1.6472 -0.3829 0.3803 -0.0363 France
## 28 0.6682 -1.0399 0.4114 0.2132 Belgium
## 29 -1.5793 -1.2488 0.6412 0.1780 Scotland
## 30 0.3051 0.1036 -0.8857 -0.5929 Belgium
Sử dụng mô hình ANOVA để kiểm tra nguồn gốc xuất xứ có ảnh hưởng đến
biến TVBN hay không:
anova_result <- aov(TVBN ~ origin, data = data)
summary(anova_result)
## Df Sum Sq Mean Sq F value Pr(>F)
## origin 7 19.48 2.783 5.823 0.000651 ***
## Residuals 22 10.52 0.478
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Kết luận sau khi chạy ANOVA, kết quả cho thấy sự ảnh hưởng của nguồn
gốc xuất xứ lên biến TVBN có ý nghĩa về mặt thống kê. Đối với biến TVBN
là chỉ số đo độ phân hủy protein, nếu chỉ số này càng cao thì chất lượng
bảo quản sẽ càng kém.
anova_result <- aov(TMA ~ origin, data = data)
summary(anova_result)
## Df Sum Sq Mean Sq F value Pr(>F)
## origin 7 19.92 2.8456 6.21 0.000429 ***
## Residuals 22 10.08 0.4582
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Kết luận kiểm định ANOVA cho thấy biến origin có ảnh hưởng đáng kể
tới biến phụ thuộc TVBN, TMA.
library(FactoMineR)
## Warning: package 'FactoMineR' was built under R version 4.4.3
pca_all <- PCA(data[,2:17], scale.unit = TRUE, graph = TRUE)


dimdesc(pca_all)
## $Dim.1
##
## Link between the variable and the continuous variables (R-square)
## =================================================================================
## correlation p.value
## lactic.flora 0.9027708 9.041485e-12
## total.viable.count 0.8608419 1.046362e-09
## lactobacilli 0.7850662 2.795050e-07
## enterobacteriaceae 0.7762724 4.619296e-07
## TMA 0.7642286 8.873792e-07
## TVBN 0.7421954 2.668420e-06
## brochothrix 0.7317464 4.332436e-06
## yeast 0.6773779 3.930677e-05
## salt -0.6282864 2.011201e-04
##
## $Dim.2
##
## Link between the variable and the continuous variables (R-square)
## =================================================================================
## correlation p.value
## a 0.8778081 1.890503e-10
## b 0.8241694 2.178219e-08
## L -0.7871241 2.476715e-07
##
## $Dim.3
##
## Link between the variable and the continuous variables (R-square)
## =================================================================================
## correlation p.value
## water 0.7890492 2.209187e-07
## salt 0.3728883 4.241058e-02
## lipid -0.8780974 1.832196e-10
plot.PCA(pca_all, choix = "ind", habillage = "TVBN")

Thực hiện một thử nghiệm thú vị, nếu hiển thị các điểm dữ liệu bằng
màu sắc dựa trên mức độ giá trị TVBN. Nhận thấy các điểm nằm bên tay
phải sẽ có màu đỏ đậm , nếu dich chuyển dần sang phía trái thì màu sắc
chuyển sang tím và xanh. Sự thay đổi màu sắc theo hướng dịch chuyển quan
sát này cho thấy giá trị TVBN của các điểm sẽ giảm dần từ lớn tới bé.
Điều này cũng khá hợp lý nếu xét theo các nhân tố đang ảnh hưởng lớn tới
trục chính thứ nhất là biến TVBN.
Nếu tiếp tục trực quan hóa màu các điểm dữ liệu theo biến TMA, kết
quả thu được có thể giải thích tương tự như trên.
plot.PCA(pca_all, choix = "ind", habillage = "TMA")

Trực quan hóa màu sắc theo biến salt, kết quả thu được cũng được
giải thích tương tự như trên.
plot.PCA(pca_all, choix = "ind", habillage = "salt")

Ngoài ra, để có thêm đầy đủ các mức độ tương quan của tất cả các
nhân tố lên từng thành phần chính, chạy thêm một phân tích như bên
dưới.
pca_all$var$coord
## Dim.1 Dim.2 Dim.3 Dim.4
## water 0.08237914 -0.22989312 0.789049164 -0.03478057
## lipid -0.22599431 -0.17946577 -0.878097414 -0.03588850
## TVBN 0.74219542 0.32379546 -0.180952074 -0.10087553
## TMA 0.76422862 0.27972628 -0.217976187 -0.13152445
## salt -0.62828638 0.05331917 0.372888285 -0.05796052
## phenol 0.07473407 0.13732244 0.215449115 -0.62095613
## pH 0.10425104 0.28738607 0.078544865 0.67142633
## total.viable.count 0.86084194 -0.11193940 0.007708845 0.21759430
## lactic.flora 0.90277082 -0.02699383 0.010218539 -0.09738304
## lactobacilli 0.78506625 -0.05095004 -0.017608032 -0.24703681
## brochothrix 0.73174642 0.03363621 0.108717081 0.15196301
## yeast 0.67737793 -0.22781362 -0.068691390 -0.22834642
## enterobacteriaceae 0.77627239 -0.03916104 0.197873357 0.42315426
## L -0.17371158 -0.78712412 -0.233258838 0.27842777
## a -0.22068103 0.87780815 0.009235180 0.12500932
## b -0.12694175 0.82416936 -0.159788273 0.03448896
## Dim.5
## water -0.398836428
## lipid 0.128639506
## TVBN -0.289211564
## TMA -0.358431037
## salt 0.311602726
## phenol 0.398980423
## pH 0.447826206
## total.viable.count -0.272545342
## lactic.flora 0.117938914
## lactobacilli 0.315439527
## brochothrix 0.359257139
## yeast 0.215071116
## enterobacteriaceae 0.134282221
## L -0.071070461
## a -0.114067780
## b 0.000373733
Thực hiện thêm phân tích phần trăm giải thích phương sai của các
thành phần chính.
pca_all$eig[, 2:3]
## percentage of variance cumulative percentage of variance
## comp 1 34.17632493 34.17632
## comp 2 15.70141202 49.87774
## comp 3 11.26085714 61.13859
## comp 4 8.35139136 69.48999
## comp 5 7.77295594 77.26294
## comp 6 6.15465300 83.41759
## comp 7 5.49254757 88.91014
## comp 8 3.48880625 92.39895
## comp 9 2.22733324 94.62628
## comp 10 1.86169893 96.48798
## comp 11 1.15110061 97.63908
## comp 12 0.96711318 98.60619
## comp 13 0.57729636 99.18349
## comp 14 0.48724787 99.67074
## comp 15 0.23965332 99.91039
## comp 16 0.08960828 100.00000