Rによるデータ分析

Rによる分解分析

分解分析の違い を、Rで進める時のレシピです。

実施例

主成分分析、独立成分分析、因子分析をいっぺんにするコードです。

寄与率の分析

# データの読み込み
library(fastDummies)
# ライブラリを読み込み
setwd("C:/Rtest")
# 作業用ディレクトリを変更
Data <- read.csv("Data.csv", header=T)
# データを読み込み
Data2 <- Data
# 加工用のデータを作る
# Data2 <- dummy_cols(Data2,remove_first_dummy = FALSE,remove_selected_columns = TRUE)
# 質的変数があればダミー変換

# 主成分分析
pc <- prcomp(Data2, scale=TRUE,tol=0.01)
# 主成分分析
Data3a<-pc$x
# 要約変数(主成分)を抽出
Data4a<-cbind(Data2,Data3a)
# 元データと合体
cor2all <- cor(Data4a)^2
# 変数の組合せについて、寄与率(相関係数の2乗)を計算
ncol2 <- ncol(Data2)
ncol3 <- ncol(Data3a)
n3 <- ncol2 + 1
n4 <- ncol2 + ncol3
PCA <- round(cor2all[n3:n4,1:ncol2],4)

# 独立成分分析
library(fastICA)
# ライブラリを読み込み
setwd("C:/Rtest")
# 作業用ディレクトリを変更
ICA <- fastICA(Data2, ncol3)
# 独立成分分析。抽出成分の数はncol3
Data3b <- ICA$S
# 要約変数(独立成分)の抽出
Data4b<-cbind(Data2,Data3b)
# 元データと合体
cor2all <- cor(Data4b)^2
# 変数の組合せについて、寄与率(相関係数の2乗)を計算
ICA <- round(cor2all[n3:n4,1:ncol2],4)

# 因子分析
ncol3c <- ncol3
# 下記でエラーが出たら、「ncol3-1」や、「ncol3-2」に書き換え
library(psych)
# ライブラリの読み込み
#library(GPArotation)
# ライブラリの読み込み
fa_result <- fa(Data2, nfactors = ncol3c, fm = "ml", rotate = "varimax") 
# 因子分析。潜在変数の数をncol3cと仮定
Data3c <- fa_result$scores
# ライブラリの読み込み
Data4c<-cbind(Data2,Data3c)
# 要約変数の抽出
cor2all <- cor(Data4c)^2
# 変数の組合せについて、寄与率(相関係数の2乗)を計算
n4 <- ncol2 + ncol3c
FA <- round(cor2all[n3:n4,1:ncol2],4)

結果の表示

PCA# 寄与率(相関係数の2乗)の表示
ICA
# 寄与率(相関係数の2乗)の表示
FA
# 寄与率(相関係数の2乗)の表示
ICA

データの可視化

plot(Data2)# 元データ
ICA
plot(as.data.frame(Data3a))
# 主成分分析の結果
ICA
plot(as.data.frame(Data3b))
# 独立成分分析の結果
ICA
plot(as.data.frame(Data3c))
# 因子分析の結果
ICA



Rによる主成分分析

Rによる因子分析

Rによる隠れ変数の分析


Rによるデータ分析

Tweet データサイエンス教室