例題4.txt
# 【Excel.csvファイルを読み込んで「データ」と命名する】# ---------------------------------------------------------# 最初の重要な儀式:ファイルがあるディレクトリを指定すること!# # head=T:ファイルの1行目は「変数(特徴量)の名前」# row.names=1:ファイルの1列目は「行(ケース)の名前」# --------------------------------------------------------- データ=read.csv('例題4.csv',head=T,row.names=1) データ# 【主成分分析(PCA)を実行し,結果を「PCA結果」と命名する】# ---------------------------------------------------------# 「princomp」は「prcomp」よりも制約が多い:以下「prcomp」をつかう# # scale=T:データを標準化する(平均を0,標準偏差を1にそろえる)# 理由:特徴量の単位をそろえるため(相関行列を分析に投入)## 軸の回転ができない(軸の解釈が困難になるリスクあり):SPSSは可能# 主成分負荷量や主成分得点の出力がSPSSと一致しない:後でも述べる# --------------------------------------------------------- PCA結果=prcomp(データ,scale=T)# 【説明率を表示し,主成分の数を決定する際に参照する:論文に明記】# ---------------------------------------------------------# 固有値は表示されない:SPSSは出力# --------------------------------------------------------- summary(PCA結果)#【固有値も必要なので計算して表示:論文に明記】# ---------------------------------------------------------# SPSSと一致する# --------------------------------------------------------- 固有値=PCA結果$sdev^2 固有値# 【各主成分の固有値の平方根と主成分負荷量を表示する】# ---------------------------------------------------------# 固有値の平方根は標準偏差(SD)# 主成分負荷量はSPSSと一致しない# 主成分得点は表示されない# --------------------------------------------------------- PCA結果# 【主成分得点を表示する】# ---------------------------------------------------------# SPSSと一致しない# --------------------------------------------------------- 主成分得点=PCA結果$x 主成分得点# 【分析結果を2次元平面に布置する】# ---------------------------------------------------------# 2次元空間での布置を示す# 主成分負荷量と主成分得点を重ねて図示する# SPSSの結果とはやや異なるが,相対的な位置関係は同じ# --------------------------------------------------------- biplot(PCA結果)# 【SPSSと一致する主成分負荷量を表示する:論文に明記】# --------------------------------------------------------- # 各主成分の標準偏差SD(固有値の平方根)を主成分負荷量に掛け算する# --------------------------------------------------------- 負荷量=t(t(PCA結果$rotation)*PCA結果$sdev) 負荷量# 【SPSSと一致する主成分得点を表示する:論文に明記】# ---------------------------------------------------------# 主成分得点を標準化する(単位をそろえる)# scale:平均0,標準偏差1になるよう変換する# --------------------------------------------------------- 主成分得点_標準化=scale(主成分得点) 主成分得点_標準化# 【SPSSと一致する主成分負荷量を「負荷量」というファイルに出力】# ---------------------------------------------------------# row.names=T:ファイルの1列目は「行の名前」# --------------------------------------------------------- write.csv(負荷量,"負荷量.csv",row.names=T) # 【SPSSと一致する主成分得点を「主成分得点_標準化」というファイルに出力】# ---------------------------------------------------------# row.names=T:ファイルの1列目は「行の名前」# --------------------------------------------------------- write.csv(主成分得点_標準化,"主成分得点_標準化.csv",row.names=T)# これで完了,おつかれさまです