不均一確率密度分布からのN回サンプリングの最小値について(改変版)
上記の記事を利用して、累積確率密度分布がなる統計量(最小値が0、最大値が1)の期待値、および、それをN回ランダムに繰り返したときに得られる最小の統計量の期待値を求めてみる。
N回ランダムに繰り返したときに、以下の値が1回もない確率はである。少なくとも1回は以下の値が出る確率はである。N個の独立な統計量サンプルの中の最も小さい値の期待値はであるから、上記の記事の通り、である。ここでであり、であるから
今、であるから、まで簡単にできる。この積分の式は、kとNとの関数であるから、改めてと定める。式変形により、を、以下のようにNについての漸化式とすることで、解く。
- ここで、であることに注意すれば
- 第2項に部分積分の公式をあてはめることによって
- ここに
- なる式が成り立つことが示され、
- なる漸化式が得られた。
- であるから
- が得られた。
- のときであり、これは、均一分布(から1回サンプリングしたときに1番小さい値(サンプルの値そのもの)の期待値を確かに表している。均一分布からのN回サンプリングにおける最小値の期待値はとなり、これは、12月11日の記事と符号している。
エクセルはこちら。ただし、非常に重いです。
Javaソースはこちら。
package StatUtils;public class ProbabilityDenstiy {
public static void main(String[] args) {
BufferedWriter[] bw = new BufferedWriter[1];
String file = "out2.txt";
bw[0]=null;
int minN = 1000;
int maxN = 1000;//単一のデータがほしいときはminNに一致させる
int N=maxN-minN+1;
double startK = 0.8;
int numK=1;//単一のデータがほしいときは1
double kizamiK=0.1;
double[] K=new double[numK];
K[0] = startK;
//out += "\n";
try{
bw[0] = new BufferedWriter(new FileWriter(file));
//kinjishikiPartial(psTr0,maxn,part);
for(int i=1;i<K.length;i++){
K[i]=K[i-1]+kizamiK;
}
String out="\tk=\t";
for(int i=0;i<numK;i++){
out += K[i] + "\t";
}
System.out.println(out);
out +="\n";
BioBankPerm.InOut4.out3File(bw[0],out);
for(int i=minN;i<maxN+1;i++){
out ="N=\t" + i + "\t";
for(int j=0;j<numK;j++){
double tmp = expMinV1(K[j],i);
out += tmp + "\t";
}
System.out.println("N=" + i + "\t" + out);
out += "\n";
BioBankPerm.InOut4.out3File(bw[0],out);
}
bw[0].close();
}catch(Exception e){
System.out.println(e);
}
}
/*
* y=x^kなるCumulativ probability density functionの
* N回サンプルの最小値の期待値
*/
public static double expMinV1(double k, int N){
double ret = 0;
for(int i=1;i<=N;i++){
ret += Math.log(k*i)-Math.log(k*i+1);
}
ret = Math.pow(Math.E,ret);
return ret;
}
}