本文へスキップ
からだにいいもの

Rのトピックスを中心に『まだ、まだ、知らない、役に立つ情報?』を発信します。

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

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

本パッケージでは欠損値に関する情報を多くの表現で示すことができます。その中から、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

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

スポンサーリンク
Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.