2011-07-15 18 views
0

確率 ディストリビューションの小数精度を高める方法はありますか?pchisq小数精度を向上

> 1-pchisq(90, 5) 
[1] 0 

しかし:

> pchisq(90, 5, lower.tail=F) 
[1] 6.71932e-18 
+2

以下のコメントに基づいて:代わりにlower.tail引数を使用します。より高い精度で計算を行う方法があります(例えば 'gmp'パッケージ)が、あなたの問題をちょっと考え直すのが一番です。 'lower.tail'引数が最初に存在します... –

答えて

3

あなたがしてはいけない、分布の上側のテールを取得するために1 - fooを行っている場合。 (RのFAQで、例えばよくある質問7.31を参照してください)あなたはおそらく、浮動小数点精度をよく読んでする必要があり、

> pchisq(90, 5, lower.tail = FALSE) 
[1] 6.719319e-18 
+0

ありがとうございますが、これを実行しています1-6e-18 = 1 – Jasmine

+0

'?pchisq'の 'log.p'引数もチェックしてください –

+0

上記の値は、浮動小数点演算では0になります。 'all.equal(pchisq(90、5、lower.tail = FALSE)、0)'を試してください。 –