検定を行う前に 〜 データの整備

前回「urcaパッケージを使用した定常性検定 〜 続編」では、shapiro検定を使用して、TOPIX日次リターンの正規性を確認した。

ところで、仮に検定対象のデータに異常値が含まれていたら検定結果はどのようになるのか。これが今回のテーマ。

> set.seed(100)
> normal_dist_nums<-rnorm(5000, 0, 1)
> testResult<-shapiro.test(normal_dist_nums)
> testResult$p.value
[1] 0.5177323

P値が十分大きいので正規分布に従うという帰無仮説は棄却できなさそう。

さて、このデータに1つだけ異常値を挿入したらどうなるだろうか。

> normal_dist_nums[50]<-1000
> hist(normal_dist_nums)


これが正規分布の訳がない。
検定してみる。

> testResult<-shapiro.test(normal_dist_nums)
> testResult$p.value
[1] 1.768388e-95

正規分布に従わない。
たった1つの異常値で、検定結果が真逆になってしまう。
異常値の扱いは重要というのが今回の話。

以下、参考。
ロバスト統計学のチュートリアル