の続きです。
- 作者: Paul Teetor,大橋真也,木下哲也
- 出版社/メーカー: オライリージャパン
- 発売日: 2011/12/22
- メディア: 大型本
- 購入: 9人 クリック: 61回
- この商品を含むブログ (13件) を見る
今回はこの本を参考にして、主成分分析を行ってみようと思います。
主成分分析はデータセットの変数を減らすことのようです。
データセットにN個の変数がある場合に主成分分析によって変数の数をN個よりも少なくできるかもしれないです。
早速やってみます。
まずは、データがどんなのか、確認します。
str関数でデータ構造を確認しました。22の観測で変数の数が6つですから多い気がします。
prcomp関数を使うようです。
まず、attach関数で、df_Analysisをアタッチします。
prcomp関数の結果をsummary関数で呼び出しました。PC1で分散が72%、PC2で分散が24%でこの二つで分散の98%を占めていますので、6つも変数はいらず、2つの変数でdf_Analaysisのデータは説明できるということかな?
plot関数でグラフを描いてみます。
predict関数でデータを主成分へ回転するらしいです。
よくわからないです。。。PC1とPC2だけのデータフレームを作ります。
PC1とPC2の散布図を描きます。
この散布図に港の名前を表示したいですね。どうするのかな?
text関数で港の名前を追加すればいいですね。
できました。〇が表示されていると、文字と重なって見えにくくなるので、〇は表示しないで、文字だけにしましょう。
できました。
高松、堺泉北、石狩湾新などは似ている港、ということですね。
今回は以上です。
最後のdf_PC12をデタッチしておきましょう。
今回のR言語のコードです。
# df_Analysisの確認
str(df_Analysis)
# attach関数でdf_Analysisをアタッチ
attach(df_Analysis)
# prcomp関数で主成分分析
r <- prcomp( ~ ExAmt + ExPx + ExPxT + InAmt + InPx + InPxT)
summary(r)
# plot関数で視覚化
plot(r)
# predict関数
predict(r)
# PC1とPC2だけのデータフレーム
df_PC12 <- predict(r)
df_PC12 <- as.data.frame(df_PC12)
df_PC12 <- df_PC12[ , c(1,2)]
rownames(df_PC12) <- rownames(df_Analysis)
df_PC12
# detach関数でdf_Analysisをデタッチ
detach(df_Analysis)
# attach関数でdf_PC12をアタッチ
attach(df_PC12)
# plot関数でPC1とPC2の散布図
plot(PC1, PC2)
# text関数で港の名前を追加
text(PC1, PC2,labels=rownames(df_PC12))
# plot関数で港の名前だけを表示
plot(PC1, PC2, type = "n")
text(PC1, PC2, labels = rownames(df_PC12))
# df_PC12をデタッチ
detach(df_PC12)