主成分分析

| コメント(0) | トラックバック(0)

 

アメリカ各州の犯罪件数のデータ

crime.csv

を利用して主成分分析を行います。まず、データを読み込みます。read.csv中の「row.names=1」はデータの1列目をデータとしてではなく、列の名前として指定するというオプションです。

> crime <- read.csv("crime.csv",row.names=1)

> crime

殺人 強姦 車の窃盗

ALABAMA 14.2 25.2 280.7

ALASKA 10.8 51.6 753.3

ARIZONA 9.5 34.2 439.5

ARKANSAS 8.8 27.6 183.4

CALIFORNIA 11.5 49.4 663.5

COLORADO 6.3 42.0 477.1

CONNECTICUT 4.2 16.8 593.2

DELAWARE 6.0 24.9 467.0

FLORIDA 10.2 39.6 351.4

GEORGIA 11.7 31.1 297.9

HAWAII 7.2 25.5 489.4

主成分分析を行うための関数はprcompです。以下のように利用します。「scale=T」は標準化後のデータについて分析を行うというオプションです。いつでも必ず利用するオプションと考えて下さい。

> result <- prcomp(crime,scale=T)

summaryを使うと、累積寄与率が表示されます。

> summary(result)

Importance of components:

PC1 PC2 PC3

Standard deviation 1.314 0.970 0.577

Proportion of Variance 0.575 0.313 0.111

Cumulative Proportion 0.575 0.889 1.000

第2主成分までの累積寄与率が88.9%であるので、第2主成分までについて分析を進めていきましょう。

結果を代入した変数名$rotationとすると、主成分負荷量が表示されます。

> result$rotation

PC1 PC2 PC3

殺人 -0.6088455 0.49760728 -0.6178140

強姦 -0.6910353 0.04978736 0.7211043

車の窃盗 -0.3895861 -0.86597241 -0.3135514

また、結果を代入した変数名$x とすると、主成分得点が表示されます。

> result$x

PC1 PC2 PC3

ALABAMA -0.83442342 1.300508984 -0.95824549

ALASKA -2.94664437 -1.131057633 0.58807447

ARIZONA -0.99230103 0.026252731 0.13840981

ARKANSAS 0.05770611 1.052383789 0.22314053

CALIFORNIA -2.73467002 -0.649053651 0.47438226

COLORADO -1.06513967 -0.517820358 1.11148111

累積寄与率から第2主成分までに全体の89%の情報が含まれていることが分かりました。ここでは、第1主成分と第2主成分をそれぞれX軸、Y軸にして、各州の主成分得点を散布図にしてみましょう。

> plot(result$x[,1],result$x[,2],pch=" ",xlab="第1主成分",ylab="第2主成分")

> text(result$x[,1],result$x[,2],rownames(result$x))

clip_image002

練習問題

pharma.csv

には製薬会社の経営指標が、

industry.csv

には各都道府県の産業別労働従事者比率が記録され得ています。このデータを使って主成分分析を行いなさい。


トラックバック(0)

トラックバックURL: http://www.moriyasu.org/cgi/mt/mt-tb.cgi/168

コメントする

このブログ記事について

このページは、moriyasuが2008年7月22日 14:47に書いたブログ記事です。

ひとつ前のブログ記事は「単回帰分析」です。

次のブログ記事は「引っ越しました」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.2rc3-ja