Main Content

対数一様分布

概要

対数一様分布 (逆数分布とも呼ばれます) は、2 パラメーターの分布です。この分布は、2 つの境界パラメーター (サポートの下限および上限) の間で、変数値の逆数に比例する確率密度関数をもちます。

パラメーター値 (makedist) を指定して確率分布オブジェクト LoguniformDistribution を作成します。そして、オブジェクト関数を使用して、分布の評価や乱数の生成などを行います。

パラメーター

対数一様分布は、次のパラメーターを使用します。

パラメーター説明サポート
a下限0 < a < b
b上限 a < b < ∞

確率密度関数

対数一様分布の確率密度関数 (pdf) は次のようになります。

f(x|a,b)={(1x*log(ba));0<axb0;otherwise.

例については、対数一様分布の確率密度関数の計算とプロットを参照してください。

累積分布関数

対数一様分布の累積分布関数 (cdf) は次のようになります。

F(x|a,b)={0;x<alog(xa)log(ba);ax<b1;xb.

結果 p は、パラメーター a および b をもつ対数一様分布に従う単一の観測値が区間 [a x] に含まれる確率です。

例については、対数一様分布の累積分布関数の計算を参照してください。

記述統計

対数一様分布の平均は μ=balog(ba) です。

対数一様分布の分散は σ2=log(ba)(b2a2)2(ba)22[log(ba)]2 です。

対数一様分布の確率密度関数の計算とプロット

パラメーターが異なる 3 つの対数一様分布オブジェクトを作成します。

pd1 = makedist('Loguniform')   % Loguniform distribution with default parameters a = 1 and b = 4
pd1 = 
  LoguniformDistribution

  Loguniform distribution
    Lower = 1
    Upper = 4

pd2 = makedist('Loguniform','lower',1,'upper',5); % Loguniform distribution with a = 1 and b = 5
pd3 = makedist('Loguniform','lower',2,'upper',6); % Loguniform distribution with a = 2 and b = 6

3 つの対数一様分布の pdf を計算します。

x = 0:.01:6;
pdf1 = pdf(pd1,x);
pdf2 = pdf(pd2,x);
pdf3 = pdf(pd3,x);

同じ軸に pdf をプロットします。

figure;
plot(x,pdf1,'r','LineWidth',2); 
hold on;
plot(x,pdf2,'k:','LineWidth',2);
plot(x,pdf3,'b-.','LineWidth',2);
legend({'a = 1, b = 4','a = 1, b = 5','a = 2, b = 6'},'Location','northwest');
xlabel('Observation')
ylabel('Probability Density')
hold off;

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent a = 1, b = 4, a = 1, b = 5, a = 2, b = 6.

分布密度は、"a""b" の間にある変数値の逆数に比例するため、変数の値が大きくなるにつれて pdf の値は小さくなります。

対数一様分布の累積分布関数の計算

パラメーターが異なる 3 つの対数一様分布オブジェクトを作成します。

pd1 = makedist('Loguniform');  % Loguniform distribution with default parameters a = 1 and b = 4
pd2 = makedist('Loguniform','lower',1,'upper',5); % Loguniform distribution with a = 1 and b = 5
pd3 = makedist('Loguniform','lower',2,'upper',6); % Loguniform distribution with a = 2 and b = 6

3 つの対数一様分布の cdf を計算します。

x = 1:.01:6;
cdf1 = cdf(pd1,x);
cdf2 = cdf(pd2,x);
cdf3 = cdf(pd3,x);

同じ軸に cdf をプロットします。

figure;
plot(x,cdf1,'r','LineWidth',2); 
hold on;
plot(x,cdf2,'k:','LineWidth',2);
plot(x,cdf3,'b-.','LineWidth',2);
legend({'a = 1, b = 4','a = 1, b = 5','a = 2, b = 6'},'Location','NW');
xlabel('Observation')
ylabel('Cumulative Probability')
hold off;

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent a = 1, b = 4, a = 1, b = 5, a = 2, b = 6.

対数一様標本への標準一様標本の変換

サイズ 30 の一様分布の標準標本を作成します。

 p = random('Uniform',0,1,30,1);

p の標準一様の値に対応するサポート (2,7) で対数一様標本を作成します。

logunifval = icdf('Loguniform',p,2,7);

あるいは、まず対数一様分布オブジェクトをサポート (2,7) で作成して、icdf の呼び出しに使用します。

logunifpd = makedist('Loguniform', "Lower",2,"Upper",7)
logunifpd = 
  LoguniformDistribution

  Loguniform distribution
    Lower = 2
    Upper = 7

logunifval2 = icdf(logunifpd,p);

対数一様分布からの乱数の生成

対数一様分布から乱数を生成するには、最初に対数一様分布オブジェクトを作成する必要があります。対数一様分布オブジェクトをサポート (3,10) で作成します。

pd = makedist("Loguniform",3,10)
pd = 
  LoguniformDistribution

  Loguniform distribution
    Lower =  3
    Upper = 10

対数一様分布から 3 行 4 列の乱数の行列を生成します。

R = random(pd,3,4)
R = 3×4

    8.0006    9.0096    4.1951    9.5861
    8.9277    6.4235    5.7953    3.6269
    3.4956    3.3738    9.5013    9.6521

関連する分布

  • 一様分布 — 連続一様分布は、パラメーター a (下限) および b (上限) をもつ 2 パラメーター分布です。X が、サポート a と b 内で対数一様分布をもつ場合、log(X) は log(a) と log(b) の間に一様分布を含みます。

参考

関連するトピック