# データの作成
data <- data.frame(
遺伝子A = c(5.5, 4.8, 6.2, 5.9, 5.1, 5.6, 6, 5.2, 6.4, 4.9),
遺伝子B = c(3.3, 3.5, 3, 3.9, 2.8, 3.2, 2.9, 3.8, 3.4, 3.1),
遺伝子C = c(7.1, 6.5, 7.9, 7.4, 6.8, 7.2, 7.6, 6.6, 8, 6.4),
遺伝子D = c(2.6, 2, 2.8, 1.9, 2.3, 2.1, 2.7, 2.5, 2.2, 2.4),
遺伝子E = c(6.8, 6.3, 7.1, 6.9, 6.5, 6.7, 7, 6.4, 7.2, 6.2)
)
# データの標準化
data_scaled <- scale(data)
# PCAの実行
pca_result <- prcomp(data_scaled)
# 主成分得点の表示
print(pca_result$x)
## PC1 PC2 PC3 PC4 PC5
## [1,] 0.21082642 -0.5130912 -0.61475424 -0.282019149 0.059693040
## [2,] -2.37545087 0.6594102 0.30494470 -0.129194187 -0.127828028
## [3,] 2.41900757 -1.0557416 -0.37106435 0.050117392 -0.131680285
## [4,] 0.36777128 2.3881205 0.00663318 -0.016567575 0.046257255
## [5,] -1.01413334 -1.1375764 0.95034952 -0.092402675 0.026856541
## [6,] -0.07559111 0.3802666 0.77193003 0.095419598 0.020142829
## [7,] 1.72607540 -1.1919003 -0.01203864 -0.003209708 0.063863396
## [8,] -1.45942081 0.3463025 -1.43327016 0.094204505 0.010167102
## [9,] 2.31761033 1.1390397 0.34756794 0.066381118 -0.002817716
## [10,] -2.11669488 -1.0148301 0.04970202 0.217270682 0.035345865
# 主成分負荷量(固有ベクトル)の表示
print(pca_result$rotation)
## PC1 PC2 PC3 PC4 PC5
## 遺伝子A 0.5561154 0.1657287 -0.02792124 0.65877843 0.47801782
## 遺伝子B -0.1213413 0.7190055 -0.67684152 -0.03981424 -0.09277813
## 遺伝子C 0.5621540 0.1116780 0.12314399 0.08703037 -0.80546397
## 遺伝子D 0.2158833 -0.6526819 -0.72428998 -0.01118112 -0.05176595
## 遺伝子E 0.5598118 0.1307648 0.03668161 -0.74614107 0.33382520
# 固有値の表示
eigenvalues <- pca_result$sdev^2
print(eigenvalues)
## [1] 3.074356512 1.424702265 0.476152111 0.019683680 0.005105431
# 累積寄与率の計算
cumulative_proportion <- cumsum(eigenvalues) / sum(eigenvalues)
print(cumulative_proportion)
## [1] 0.6148713 0.8998118 0.9950422 0.9989789 1.0000000
#日本語化
par(family = "HiraKakuProN-W3")
# バイプロットの生成
biplot(pca_result)

#相関行列から固有値と固有ベクトルを求める
cor_matrix <- cor(data_scaled)
# 相関行列の表示
print(cor_matrix)
## 遺伝子A 遺伝子B 遺伝子C 遺伝子D 遺伝子E
## 遺伝子A 1.00000000 -0.02943378 0.9850074 0.2243455 0.9786357
## 遺伝子B -0.02943378 1.00000000 -0.1346836 -0.5156643 -0.0862796
## 遺伝子C 0.98500735 -0.13468359 1.0000000 0.2269808 0.9878069
## 遺伝子D 0.22434548 -0.51566435 0.2269808 1.0000000 0.2373786
## 遺伝子E 0.97863566 -0.08627960 0.9878069 0.2373786 1.0000000
# 固有値と固有ベクトルの計算
eigen_result <- eigen(cor_matrix)
print(eigen_result$values)
## [1] 3.074356512 1.424702265 0.476152111 0.019683680 0.005105431
# 固有ベクトルの表示
print(eigen_result$vectors)
## [,1] [,2] [,3] [,4] [,5]
## [1,] 0.5561154 -0.1657287 -0.02792124 0.65877843 0.47801782
## [2,] -0.1213413 -0.7190055 -0.67684152 -0.03981424 -0.09277813
## [3,] 0.5621540 -0.1116780 0.12314399 0.08703037 -0.80546397
## [4,] 0.2158833 0.6526819 -0.72428998 -0.01118112 -0.05176595
## [5,] 0.5598118 -0.1307648 0.03668161 -0.74614107 0.33382520