2013-02-17 2 views
7

rbinomのヘルプファイルでは、size引数は試行回数(ゼロを含む)ですが、これもベクトルでもよいかどうかは分かりません。予期しない結果を伴う二項(K、p)からのサンプリング

この機能を使用する正しい方法は

table(rbinom(n = 1000, size = 1, prob = 0.2)) 

    0 1 
809 191 

である。しかし、ここで何が起こっていますか?

table(rbinom(n = 1000, size = 0:1, prob = 0.2)) 

    0 1 
894 106 

答えて

9

引数の引数のリサイクルが最も大きな原因です。

nが1000であるので、あなたが500 0年代と500 1年代(交互)を取得するまで、0:1がリサイクルされています。

すべて0サイズのものが0を与える:

> rbinom(10,size=0,prob=0.2) 
    [1] 0 0 0 0 0 0 0 0 0 0 

1000個の要素のうち、S 'の約100 1その結果、PとS + 500回のベルヌーイ試行= 0.2' の500 0生じます。

[あなたの結果は私には驚きではありませんでしたが、あなたが探していない場合は引数のリサイクルに噛み付く可能性があります。また、0ベルヌーイ試行で成功した回数を0〜どちらか最初は明らかに思えないかもしれません]

4

ドキュメントのバグ:。

「サイズ」はされていない場合整数、「NaNを」が返されます。

文書には、NaNを取得することを意味するため、複数の整数を指定しています。

他の引数がベクトルのどこにあるかを明示的に述べているが、sizeではないという理由で混乱します。私はメンテナにドキュメントのバグを報告します。この場合、おそらくメインのRバグトラッカーを意味します。

+0

良い点。 'size = 0'を許可することはバグでしたが、' size = 0'がゼロを返すので、ループはクラッシュしないという非常に便利な機能です。 「0^0 = 1」のような並べ替え –

+0

私はバグレポートを提出しており、D. Murdoch氏は次のように答えました。「R-develとR-develでの公表文書はこのページと他の ディストリビューションに追加されました。パッチを当てた。二項関係の場合、 –

+0

のsize = 0はかなり意味があります.0コインを投げれば、頭が0になるでしょう。唯一の概念上の問題は、可能な結果が1つしかないので、サイズ= 0の二項式はもはやランダムではないということです。 – Pere