欠損値
欠損値とは何らかの理由で集計に含めることが出来ない値である。未入力データなどが該当する。数値型データに対して欠損値に「NA」など文字列を使うと多くのソフトウェアでは問題が出るので、あり得ない数値(今回の例では99999)を入力してあることが多い。
今回は元データでは欠損値が99999と入力されているものとする。
物件一覧の平均価格・平均築年数および全項目の相関係数行列を求めよ。
物件一覧
価格(万円) | 敷地面積(m^2) | 駅からの距離(km) | 築年数(年) |
3440 | 61 | 1.4 | 23 |
4320 | 60 | 0.1 | 6 |
4820 | 99 | 1.2 | 20 |
3900 | 82 | 1.4 | 25 |
3680 | 63 | 0.8 | 25 |
99999 | 71 | 1.8 | 1 |
5890 | 101 | 1.4 | 3 |
… |
5200 | 99999 | 0.7 | 15 |
… |
4800 | 65 | 99999 | 0 |
… |
99999という値がそのまま数値として計算されるので、例えば平均値は大きく上昇してしまう。もちろん相関係数も結果が変わってしまう。
値の置き換え
- na.strings オプション(関数の引数として指定する)
- function.name(x, …, na.strings = c(欠損値として扱いたい値1,欠損値として扱いたい値2,…) )
summaryの結果を見れば、価格・敷地面積・駅からの距離に一件ずつNA'sとして計上されているのが分かる。
物件一覧
価格(万円) | 敷地面積(m^2) | 駅からの距離(km) | 築年数(年) |
3440 | 61 | 1.4 | 23 |
4320 | 60 | 0.1 | 6 |
4820 | 99 | 1.2 | 20 |
3900 | 82 | 1.4 | 25 |
3680 | 63 | 0.8 | 25 |
NA | 71 | 1.8 | 1 |
5890 | 101 | 1.4 | 3 |
… |
5200 | NA | 0.7 | 15 |
… |
4800 | 65 | NA | 0 |
… |
NAは数値ではないので、NAを含むデータは平均などの数値計算は出来ない(計算結果もNAとなる)。
欠損値の扱い
- NAが除去されたデータ <- na.omit(NAを含むデータ)
- その他関数のオプションとして欠損値の扱いを指定できる場合がある。
- rm.na…NAをその関数の処理内でのみ除去する
- use=c("pairwise","complete")…欠損値除去を直接計算対象としているペア単位で行うか、関数に渡されたデータ全体で行うか
各列個別に分析する
欠損値指定後
| A | B | C | D |
1 | 1 | NA | 3 | 4 |
2 | NA | 2 | 3 | 4 |
3 | 1 | 2 | NA | 4 |
4 | 1 | 2 | 3 | 4 |
5 | 1 | NA | 3 | 4 |
6 | 1 | 2 | 3 | NA |
na.omit(dat.na$~)
| A | B | C | D |
1 | 1 | NA | 3 | 4 |
2 | NA | 2 | 3 | 4 |
3 | 1 | 2 | NA | 4 |
4 | 1 | 2 | 3 | 4 |
5 | 1 | NA | 3 | 4 |
6 | 1 | 2 | 3 | NA |
data.omit
| A | B | C | D |
1 | - | NA | - | - |
2 | NA | - | - | - |
3 | - | - | NA | - |
4 | 1 | 2 | 3 | 4 |
5 | - | NA | - | - |
6 | - | - | - | NA |
A,B,Cで一つの分析にかける。
pairewise A-B
| A | B | C | D |
1 | - | NA | 3 | 4 |
2 | NA | - | 3 | 4 |
3 | 1 | 2 | NA | 4 |
4 | 1 | 2 | 3 | 4 |
5 | - | NA | 3 | 4 |
6 | 1 | 2 | 3 | NA |
pairewise B-C
| A | B | C | D |
1 | 1 | NA | - | 4 |
2 | NA | 2 | 3 | 4 |
3 | 1 | - | NA | 4 |
4 | 1 | 2 | 3 | 4 |
5 | 1 | NA | - | 4 |
6 | 1 | 2 | 3 | NA |
pairewise C-A
| A | B | C | D |
1 | 1 | NA | 3 | 4 |
2 | NA | 2 | - | 4 |
3 | - | 2 | NA | 4 |
4 | 1 | 2 | 3 | 4 |
5 | 1 | NA | 3 | 4 |
6 | 1 | 2 | 3 | NA |
complete
| A | B | C | D |
1 | - | NA | - | 4 |
2 | NA | - | - | 4 |
3 | - | - | NA | 4 |
4 | 1 | 2 | 3 | 4 |
5 | - | NA | - | 4 |
6 | 1 | 2 | 3 | NA |
data.omit
| A | B | C | D |
1 | - | NA | - | - |
2 | NA | - | - | - |
3 | - | - | NA | - |
4 | 1 | 2 | 3 | 4 |
5 | - | NA | - | - |
6 | - | - | - | NA |