Excelによる欠損値の扱い
2017/08/15
カテゴリ:コラム「統計備忘録」
※コラム「統計備忘録」の記事一覧はこちら※
Excelを統計ソフトとして使う上で問題点の1つとなるのが、欠損値の扱いが一定していないことです。関数によっても異なりますし、同じ統計処理でも関数を使った場合と分析ツールを使った場合でも異なります。
次の例を見てください。シート上には2行目から9行目まで空白や文字の混ざったデータを入力してあります。このデータを使って相関係数(CORREL関数)、t検定(TTEST関数)、回帰分析(LINEST関数)の結果がどうなるか比べてみましょう。
まず、CORRELとTTESTでは空白や文字列が混ざったデータでも計算してくれるようです。CORRELの場合は V1、V2 と数値データが対で揃っているところだけを使って計算しています。従って、2行目から 9行目までを指定してもデータの揃っていない 7行目以降は除かれ、 2行目から 6行目だけが計算対象のデータとなっています。12行目と 13行目の CORREL関数の結果が一致するのはそのためです。
16行目は TTEST関数による対応のない 2群の t検定の結果です。対応のない t検定ではデータが対になっている必要はないので、V1 は 2行目から 8行目まで、V2では 2行目から 6行目までのデータを使って t検定が行われます。
19行目は TTEST関数による対応のある 2群の t検定の結果です。対応のある t検定ではデータが対になっていなければいけないので、CORREL関数と同じくデータが対になっている 2行目から 6行目までが計算対象となります。
22行目は回帰分析の結果ですが、LINEST関数では指定した範囲に空白や文字列など数値以外が含まれていると、このように"#VALUE"を返します。CORRELでは対になっているデータだけで計算してくれるのですから、LINESTも同じように振舞ってくれればと思います。
また、Excelでは分析ツールからも相関係数の計算や、t検定や回帰分析を行うこと出ができますが、不思議なことに、関数と分析ツールでは欠損値の扱いが異なります。
分析ツールから[相関]を選択し、先ほどと同じデータを[入力範囲]に設定して[OK]ボタンをクリックすると、次のメッセージが表示されます。
t検定でも、
回帰分析でも、
「数値以外のデータがあります」と、すべて撥ねられてしまいました。分析ツールの方がさらに融通が利かなくなっています。
通常の統計ソフトであれば、欠損値を含む場合、有効なデータだけを使って処理してくれるものです。エクセル統計が使われる理由の1つも欠損値対応があるからでしょう。
観測やアンケートによって得られたデータなら欠損値があるのは、ごく普通のことです。次回は、Excelだけで統計処理をしたいという方のために、欠損値を効率よく消すテクニックをお話したいと思います。