始める無料で始める

分散説明率

この演習では、主成分の数が増えるにつれて分散説明率がどう変化するかを示すスクリープロットを作成します。R には PCA モデルから直接こうしたプロットを作成する組み込み関数がないため、PCA のデータを事前に準備する必要があります。

これらのプロットを見るときは、分散説明率に「肘(エルボー)」のような折れ曲がりがあるかどうかに注目しましょう。それが見つかれば、採用すべき主成分の自然な数を判断する手がかりになります。実際のデータセットではよくあることですが、明確な肘が見られない場合は、スクリープロットをもとに主成分数をどう決定すればよいか、他の方法も考えてみましょう。

この演習はコースの一部です

R による教師なし学習

コースを見る

演習の手順

これまでに作成した変数 wisc.data、diagnosis、wisc.pr は引き続き使用できます。

  • wisc.pr の sdev 成分を2乗して、各主成分の分散を計算しましょう。結果は pr.var というオブジェクトに保存します。
  • 各主成分の分散を、すべての主成分の分散の合計で割ることで、分散説明率を計算しましょう。これを pve という変数に代入します。
  • 各主成分の分散説明率をプロットしましょう。
  • cumsum() 関数を使って、累積分散説明率のプロットを作成しましょう。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Set up 1 x 2 plotting grid
par(mfrow = c(1, 2))

# Calculate variability of each component


# Variance explained by each principal component: pve


# Plot variance explained for each principal component
plot(___, xlab = "Principal Component", 
     ylab = "Proportion of Variance Explained", 
     ylim = c(0, 1), type = "b")

# Plot cumulative proportion of variance explained
plot(___, xlab = "Principal Component", 
     ylab = "Cumulative Proportion of Variance Explained", 
     ylim = c(0, 1), type = "b")
コードを編集して実行