データの準備
![]() |
図1 |
(がく片の長さ)、sepal.width(がく片の幅)、petal.length
(花弁の長さ)、petal.width
(花弁の幅)の4つの量的変数と、Species
(種、setosa, versicolor, virginica
の3種類)という質的変数が含まれています。まとめ終わったら、「ファイル」>「名前を付けて保存」を選択し、csv形式で保存してください。 ちなみに、ファイル名は半角英数字と「_」だけで構成することを強くおすすめします。![]() |
図2 |
csvとは、Comma-Separated Valuesの略で、Excelのそれぞれの列を「,」で区切った形となります。保存したファイルをメモ帳などのテキストエディタで開くと、図2のように表示されます。この形式はRにデータを読み込ませる上で重要なので覚えておいてください。
データの読み込み
データが準備できたら、Rを起動します。起動できたら以下のコマンドでデータを読み込ませます。
x <- read.table("C:/Users/shinka/Documents/iris.csv", header=T, sep=",", na.strings="NA",
dec=".", strip.white=T)
それぞれのコマンドの意味は、以下の通りです。- x <- read.table(): ()内の表を、x(任意の文字)に代入します。
- "C:/Users/shinka/Documents/iris.csv": 読み込むファイルの場所と名前を指定します。ダブルコーテーション(")で囲ってください。
- header=T: ファイルの先頭行をラベルとして扱います。今回の例では先頭に変数名(sepal.lengthなど)を書いているので、T(=True)です。
- sep=",": 列の区切りに「,」を使っていることを示します。ダブルコーテーションで囲ってください。
- na.strings="NA": 空欄がある場合に「NA」という文字で埋めます。これがないと空欄に対して、システムが勝手な解釈で値を振ってしまうそうです。
ダブルコーテーションで囲ってください。 - dec=".": 小数点記号を指定します。ダブルコーテーションで囲ってください。
- strip.white=T: データに含まれる空白文字を自動で削除します。
summary(x)
![]() |
図3 |
主成分分析の実行
メインの主成分分析に移ります。まず、今回主成分分析に使うprcompというコマンドは質的変数(今回のデータではSpeciesが該当する)に対しては使用できません。そこで、「Species」の列を削ります。具体的には、「Species」以外の列を新しい変数に代入します。
y <- x[,-5]
上のコマンドはxに入っている表の5列目以外をyという新しい変数に代入することを意味しています。[]内のコンマを忘れないでください。もし3列目を削りたければ、「-3」とします。
実際にprcompを使います。ここでは、主成分分析の結果をpcaという変数に代入します。summary(pca)で結果の要約が見れます(図4)。
pca <- prcomp(y, scale=T)
summary(pca)
![]() |
図4 |
図の「Proportion of Variance」は寄与率と呼ばれるものです。簡単にいえば、「一つの主成分軸で、データ全体の何割を説明できるか」を示しています。図の例では、PC1という主成分軸で全体の70%以上が説明可能です。また、下の「Cumulative Proportion」は累積寄与率で、寄与率を第一主成分から順に足していったものです。PC2の寄与率は22.85%なので、第二主成分までで、データの95.81%が説明できます。
最後に主成分分析の結果を図示します。図示にはggbiplotを用います。これはラボのパソコンによってはインストールする必要があります。インストールは以下のコマンドで可能ですが、わからなければ先生か誰かに聞いてください。
install.packages("devtools")
devtools::install_github("vqv/ggbiplot")
ggbiplotを以下のコマンドで呼び出してから実行します。ここで変数xに入れているSpeciesを利用することで、種ごとに色分けすることができて便利です(groups=x$Speciesで指定する。x$Speciesは変数xのSpeciesというラベルを意味する)。
library(ggbiplot)
ggbiplot(pca, obs.scale=1, var.scale=1, groups=x$Species)
![]() |
図5 |
以上が主成分分析の一連の方法となります。主成分分析について勉強したい方は以下のブログがわかりやすいと思います。
https://logics-of-blue.com/principal-components-analysis/