Rで解析:欠損値を制するモノは解析も制す?「VIM」パッケージの紹介

Rの解析に役に立つ記事

データ内に潜む欠損値を把握することは重要な作業です。データが揃うとすぐに解析したくなりますが、まずは冷静に欠損値を把握してデータの傾向を改めて見つめてはいかがでしょうか。

本パッケージでは欠損値に関する情報を多くの表現で示すことができます。その中から、8つの表現方法とコマンドを紹介します。その他のコマンドはパッケージヘルプを参考ください。

パッケージバージョンは6.2.2。windows11のR version 4.2.2で確認しています。

スポンサーリンク
スポンサーリンク

パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("VIM")

実行コマンドの紹介

パッケージから役に立ちそうな”aggr”と8つの出力コマンドを紹介します。詳細はコメントならびにパッケージヘルプを確認してください。

#パッケージの読み込み
library("VIM")

###データ例の作成#####
set.seed(1234)
n <- 50
TestData <- data.frame(Group = sample(paste0("Group", formatC(1:n, width = 2, flag = "0")),
                                      n, replace = TRUE),
                       Data1 = sample(c(NA, 1:10), n, replace = TRUE),
                       Data2 = sample(NA, n, replace = TRUE),
                       Data3 = sample(c(NA, 5:10), n, replace = TRUE),
                       Data4 = sample(c(NA, 7:10), n, replace = TRUE))

#色の設定
#色の透明度を調整:alphablend
DrowCol <- c("#4b61ba", alphablend("#a87963", 0.6))
########

#各データの欠損値数と欠損値を含む行とデータの関係を表示:aggrコマンド
a <- aggr(TestData, col = DrowCol)
#結果の表示
a
Missings in variables:
Variable Count
Data1     6
Data2    50
Data3     3
Data4    15

#summaryコマンドで情報を表示
summary(a)
Missings per variable: 
Variable Count
Group     0
Data1     6
Data2    50
Data3     3
Data4    15

Missings in combinations of variables: 
Combinations Count Percent
0:0:1:0:0    32      64
0:0:1:0:1     9      18
0:0:1:1:1     3       6
0:1:1:0:0     3       6
0:1:1:0:1     3       6

#項目の出現数に対する欠損値を含む項目数を棒グラフで表示:barMissコマンド
#例えば下記のデータでは
#項目  Data1 Data2
#項目1   1     2
#項目1   1     NA
#出現数(青のバー)2で欠損値(グレーのバー)1になります
barMiss(TestData[, c(1, 4, 5)], only.miss = FALSE, xlab ="", col = DrowCol)

#欠損値を含めて散布図で表示:marginmatrixコマンド
#欠損値の色はcolオプションの2番目に指定した色
marginmatrix(TestData[, c(2, 4)], col = c("#4b61ba", alphablend("#a87963", 0.6)), pch = c(17, 16))

#2要素を欠損値の情報を含めて散布図で表示:marginplotコマンド
#欠損値の色はcolオプションの2番目に指定した色
marginplot(TestData[, c(2, 4)], col = c("#4b61ba", alphablend("#a87963", 0.6)), pch = c(17, 16))

#ヒートマップで欠損値を表示:matrixplotコマンド
matrixplot(TestData, sortby = colnames(TestData[1]),
           col = "#4b61ba", fixup = FALSE)

#モザイクプロットで欠損値を表示:mosaicMissコマンド
#欠損値の色はcolオプションの2番目に指定した色
mosaicMiss(TestData[, 1:2], col = c("#4b61ba", alphablend("#a87963", 0.6)))

#平行線で欠損値を表示:parcoordMissコマンド
#欠損値の色はcolオプションの2番目に指定した色
parcoordMiss(TestData[, 1:2], col = c("#4b61ba", alphablend("#a87963", 0.6)))

#箱ひげ図で欠損値を表示:pboxコマンド
pbox(TestData, col = DrowCol)

#密度分布を含めた散布図で欠損値を表示:scattmatrixMissコマンド
#比較対象はhighlightオプションで指定
scattmatrixMiss(TestData, col = DrowCol,
                highlight = colnames(TestData[4]))

出力例

・項目の出現数に対する欠損値を含む項目数を棒グラフで表示

VIM_fig1

・欠損値を含めて散布図で表示

VIM_fig2

・2要素を欠損値の情報を含めて散布図で表示

VIM_fig3

・ヒートマップで欠損値を表示

VIM_fig4

・モザイクプロットで欠損値を表示

VIM_fig5

・平行線で欠損値を表示

VIM_fig6

・箱ひげ図で欠損値を表示

VIM_fig7

・密度分布を含めた散布図で欠損値を表示

VIM_fig8

少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました