Excelにおける、超幾何分布に従う乱数を生成する方法についてお伺いします。

今、L1からU10の100個セルに、任意の0以上の整数が設定されています。空白セルもあります。
ここに設定されている数を「最大値」と定義します。
(今から紹介するAH1からAQ10までの100個のセルの、1個1個の最大値です)

今、AH1からAQ10までの100個のセルに、「超幾何分布に従う乱数」を発生させます。
・RAND関数はたぶん使えないと思います。(超幾何分布に従ってないと思われるため)
・算出される乱数は、0から最大値までの範囲内にある整数です。
・最大値が投入されていないセルに対しては、乱数を求めないで構いません。
・関数で実現できればそれでもOK!VBAマクロを用いてもOK!

たくさんの質問でごめんなさい☆
どうぞよろしくお願い致します!!

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/06/14 10:30:41
  • 終了:--

回答(2件)

id:marlene7196 No.1

marlene7196回答回数144ベストアンサー獲得回数02004/06/14 12:45:01

ポイント30pt

超幾何分布というと構えてしまいますが

二項分布で近似も出来るようです。

系の吟味をして適用できるか検討するのもよいでしょう。

http://aoki2.si.gunma-u.ac.jp/lecture/stats-by-excel/vba/html/hy...

超幾何分布の確率関数と分布関数

同上のリンクを辿ったもの。

EXCELでの計算ではオーバーフローの恐れがあるので

対数を使って対策する。

EXCELでの計算例

プログラミングの例。

以上、見当ハヅレでしたらすいません(;´д`)

id:miku1973

ありがとー!

実はGoogleで私が見つけたページに、ご紹介いただいたものと同じものが・・・。

ひきつづきご回答お待ちします。

2004/06/14 13:06:41
id:khate No.2

khate回答回数6ベストアンサー獲得回数02004/06/15 00:43:00

ポイント80pt

超幾何分布の乱数

URLはダミーです

WWWではみあたりませんが、

超幾何分布というのは、

大きさ N の母集団で,特性 A を持つものがM個 とする。この母集団から n 個の標本を取り出したとき,特性 A を持つ標本が x 個であるときの、xの分布

ですから、N,M,nの3つの数字が与えられたときに、乱数xを発生させるのでしょうか?問題にある「最大値」はnにあたるのでしょうか。

蓑谷千鳳彦「すぐに役立つ統計分布」(東京図書)によれば、乱数をとるための式だけ書いてありますが、要約するとシミュレーションをしてしまうようです。

1個のセルについて次の方法(擬似コード)で、乱数xを作成する.

N, Mは与えられていて、セルごとにn(>0)が変わると仮定。

0から1までの間で乱数をとることをn回やって

U[i], i=1,2,...,n に代入。それから

p[1] <- M/N

for i <- 1 to n

  if U[i]<p[i]

then d[i] <- 1

else d[i] <- 0

p[i+1] <- ((N-i+1)p[i] - d[i] ) / (N-i)

dsum <- 0

for i <- 1 to n

dsum <- dsum + d[i]

return dsum

dsum が乱数xに相当。d[i]は標本iが特性Aをもつとき1、でなければ0の意味.

もし、n< 0.1 N が満たされていれば2項分布で十分近似できます(上記本)から、それが簡単でしょう。critbinom(n, p, F)を使いますね。p=M/N, Fにはrand0を代入。

ちなみに統計学に関連する質問であれば、

http://aoki2.si.gunma-u.ac.jp/lecture/mb.html

統計学関連のメッセージボード

に聞いてもいいでしょう。

id:miku1973

ありがとー☆なんとかできました!

2004/06/17 15:32:01

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません