# データの作成
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