2016年4月10日日曜日

Excel 2013で標準正規分布のパーセント点(NORM.S.INV関数)を計算したときの精度

背景

Excelの統計関数は,何かとタタかれることが多い。

標準正規分布のパーセント点を求めるには,分布関数の逆関数が必要である。この関数はExcelではNORM.S.INV関数として実装されている。

一方,CASIOの高精度計算サイト(50桁での計算が可能)には,normalicdlower関数という関数があり,標準正規分布のパーセント点を直接計算できる。

そこで,両者の結果を比較し,一致桁数を評価した。


検証環境

  • OS: Windows 10 Pro(64bit)
  • アプリケーション: Excel 2013(64bit)
  • CPU: Core i7 2.4GHz
  • RAM: 16GB
  • 仮想メモリ: OFF


検証方法

以下の手順で検証した。
  1. ExcelのNORM.S.INV関数を利用して標準正規分布のパーセント点を計算する。
  2. CASIOの高精度計算サイトで,「桁数50桁」,「精度保証あり」で標準正規分布のパーセント点(normalicdlower関数)を計算する。
  3. ただし,この結果を適切にExcelに貼り付けるには有効桁数を15桁にしておく必要があるので,高精度計算サイト側でプログラムを自作し,最終結果の有効桁数を15桁にする。
  4. 1.の結果と3.の結果をExcel上で比較し,一致桁数を評価する。
  5. ついでに, NORM.S.INV関数と,その互換性関数であるNORMSINV関数との結果も比較する。


結果

結果は下図のとおり。
  • 下側確率で0%以上99.99%以下の領域では,一致桁数はほぼ14桁以上であった。
  • それを超えると一致桁数は減少した。
  • なお,NORM.S.INV関数と,その互換性関数であるNORMSINV関数は,すべての領域で一致桁数は15桁であった。Microsoftによれば,新しい関数のほうがより精度が高いとのことであるが,NORM.S.INV関数に関しては精度の向上はないようである。


0 件のコメント:

コメントを投稿