• 締切済み

積率母関数を使って密度関数を求める

「積率母関数による方法をもちいて、f(x)=exp(-x),x>0からの大きさnの無作為標本に対してnX~(X~:Xの上に横棒を書きたいのですが、ここではXの平均をこのように表現しようと思います)の密度関数を求めよ。」 という問題が解けずに困っています。積率母関数の基本的なことは知っているつもりなのですが、どのように解いたら良いかわかりません。宜しくお願い致します。

みんなの回答

回答No.4

X1…Xnが独立に密度exp(-x)の指数分布に従う時  E[exp(λ(X1+…+Xn)/n]=E[exp(λX1/n)]…E[exp(λXn/n)] するとλ<nのとき  E[exp(λXi/n)]=∫(0~∞)dx exp[(-1+λ/n)x]  =1/(1-λ/n) よって下の回答で、λ<1という条件はλ<nに修正する必要があります。

cal48030
質問者

お礼

丁寧に別の回答まで書いていただき、ありがとうございます。参考にさせていただきます。 (最近、迷惑メールが多く、回答到着メールが届いたことに気づかず、お礼が遅くなってしまいました。申し訳ございません。)

回答No.3

下の回答でおかしな文字が入ってしまったようで申し訳ありません。x’1,…x’n-1の積分は次のようになります。積分範囲は、  x’1≧0,…x’n-1≧0, x’1+…+x’n-1 ≦ nx だから(ダッシュを省略して書くと)  ∫(0~nx)dxn-1∫(0~nx - xn-1)dxn-2 …∫(0~nx -(xn-1+…+x2))dx1  =∫(0~nx)dxn-1∫(0~nx - xn-1)dxn-2 …∫(0~nx -(xn-1+…+x3))dx2(nx -(xn-1+…+x2))  =…  =(nx)^(n-1)/(n-1)!

cal48030
質問者

お礼

お礼が遅くなり、申し訳ございませんでした。 No.1の回答へのお礼で書くべきかと思いますが、ラプラス変換を使わない場合、どのような回答方法になるのでしょうか。 お時間のあるときで結構です。教えて頂けないでしょうか。

回答No.2

X~=(X1+…+Xn)/nの密度関数は積率母関数を使わずに次のようにして求めることもできます。X1…Xnが独立に密度exp(-x)の指数分布に従う時、これらが同時にdx1,…dxnのなかの値をとる確率は  exp(-x1)dx1・exp(-x2)dx2…exp(-xn)dxn = exp(-nx~) dx1…dxn ここで  x’1 = x1  x’2 = x2 …  x’n-1 = xn-1  x = (x1+…+xn)/n と変数変換するとヤコビアンは1/nだからx’1,…x’n-1, x についての同時確率密度は  n exp(-nx) dx’1…dx’n-1dx xについての密度は、これをx’1,…x’n-1で積分することによって得られます。積分範囲は、  x’1≧0,…x’n-1≧0, x’1+…+x’n-1 ≦ nx だから  ∫(0~nx)dxn-1∫(0~nx - xn-1)dxn-2 …∫(0~nx – (xn-1+…+x2))dx1  =∫(0~nx)dxn-1∫(0~nx - xn-1)dxn-2 …∫(0~nx – (xn-1+…+x3))dx2(nx – (xn-1+…+x2))  =…  =(nx)^(n-1)/(n-1)! したがってX~=(X1+…+Xn)/nの密度関数は  f(x)= n ((nx)^(n-1)/(n-1)!)exp(-nx) また直接の検証としてexp(-x)の分布に従う乱数を発生させ、n=2の場合にX=(x1+x2)を計算して、分布を求めたものと4xexp(-2x)を積分したF(x)=1-(1+2x)exp(-2x)をx=0.5, 1.0, 1.5, 2.0 で比較してみたところ、一致していました。下にそのプログラムを示します。 #include "untitled.h" #include <stdio.h> #include <math.h> #define rnd() ((double) rand())/RAND_MAX #define N 10000000 int main() { long long int i; long long int S1,S2,S3,S4; double x,y1,y2,yn,F1,F2,F3,F4; S1=S2=S3=S4=0; for(i=1;i<(N+1);++i){ x=rnd(); y1=-log(1-x); x=rnd(); y2=-log(1-x); yn=(y1+y2)/2; if (yn <= .5 ) S1=S1+1 ; else { if (yn <= 1.0 ) S2=S2+1 ; else { if (yn <= 1.5 ) S3=S3+1 ; else { if (yn <= 2.0 ) S4=S4+1 ; } } } } F1= ((double) S1)/N; printf( "%lf %lf \n" , F1, 1-2*exp(-1)); F2= F1+ ((double) S2)/N; printf( "%lf %lf \n" , F2, 1-3*exp(-2)); F3= F2+ ((double) S3)/N; printf( "%lf %lf \n" , F3, 1-4*exp(-3)); F4= F3+ ((double) S4)/N; printf( "%lf %lf \n" , F4, 1-5*exp(-4)); return 0; }

回答No.1

X~の密度関数をf(x~)、積率母関数をF(λ)とすると  F(λ)=∫(0~∞)exp(λx)f(x)dx よってs=-λとおくとf(x)はF(-s)を逆ラプラス変換することで求められます。X,Yが独立の時  E[XY]=E[X]E[Y] となることを用いるとX~の積率母関数はλ<1のとき  E[exp(λX~)]=1/(1-λ/n)^n よって  F(-s)=n^n /(s+n)^n ここで 1/(s-a)^n の逆ラプラス変換が (x^(n-1) /(n-1)!)exp(ax)であることを用いると  f(x)= (n^n x^(n-1) /(n-1)!)exp(-nx)

cal48030
質問者

お礼

ご回答いただき、ありがとうございます。 質問は今回がはじめてで、「こんなこともわからないのか」というような反応があったらどうしよう、と心配でした。 おそらく今後もわからないことをこの場で質問していこうと思いますので、宜しくお願い致します。

関連するQ&A