合計が1になる均一に分布した重みを生成しますか?


14

混合モデリングなどのアプリケーションで重みを使用し、基底関数を線形結合することは一般的です。重みはしばしばおよび従う必要があります。そのようなベクトルの一様分布から、重みベクトルをランダムに選択したいと思います。wiwiiwi=1w=(w1,w2,)

これは、使用したくてもよいここで U(0、1)、しかしの分布、以下のコメントで説明したようには均一ではありません。wi=ωijωjωiw

しかし、与えられた制約、問題の根本的な次元であると思われ、及びそれを選択することが可能でなければならないこと選択することによりに係るパラメータをいくつかの分布とそれらのパラメータから対応する\ mathbf {w}を計算します(n-1個の重みが指定されると、残りの重みが完全に決定されるため)。iwi=1n1wn1wn1

この問題は、球面点の選択問題に似ているように見えます(ただし、2ノルムが1の3ベクトルを選択するのではなく、ℓ_1ノルムが1のnベクトルを1ます)。

ありがとう!


3
メソッドは、シンプレックス上に均一に分散されたベクトルを生成しません。必要なことを正しく行うための最も簡単な方法は、 iidランダム変数を生成し、それらの合計で正規化することです。あなただけ描画するためにいくつかの他の方法を見つけることによってそれを行うために試みることができる直接変量が、以来、私は、効率のトレードオフについての私の疑問を持っているすることができます変量非常に効率的に生成された変量。nExp(1)n1Exp(1)U(0,1)
枢機

回答:


22

選択(の手段によって一様にN - 1つの間隔で均一実数[ 0 1 ])。 ソート係数ように0 X 1X N - 1。セットするx[0,1]n1n1[0,1]0x1xn1

w=(x1,x2x1,x3x2,,xn1xn2,1xn1).

w iの部分和によってソートされた復元できるため、マッピングxwn 1 です!1に。特に、そのイメージはR nの n 1シンプレックスです。()ソートの各スワップが線形変換であり、(b)は、前述の式は、線形、及び(c)は線形変換の分布の均一性を保つための均一xは均一性を意味Wのn - 1つのシンプレックスを。xiwixw(n1)!n1Rnxw n1 特に、の周辺は必ずしも独立していないことに注意してください。w

3Dポイントプロット

この3Dポイントプロットは、に対するこのアルゴリズムの2000回の反復の結果を示しています。ポイントはシンプレックスに限定され、シンプレックス上にほぼ均一に分布します。n=3


このアルゴリズムの実行時間はであるため、nが大きい場合は非効率的です。しかし、これは質問に答えます!より良い方法(一般的に)上に均一に分布値を生成するN - 1 -simplex描画するN均一実数X 1...はxはn個の間隔に[ 0 1 ]、計算をO(nlog(n))O(n)nn1n(x1,,xn)[0,1]

yi=log(xi)

(各を確率1で正にし、それらの合計はほぼ確実に非ゼロになります)yi1

w=(y1,y2,,yn)/(y1+y2++yn).

各ので、この作品有するΓ 1 を意味分布、wはディリクレを有している1 1 1 分布を-で均一です。yiΓ(1)w(1,1,1)

[3Dポイントプロット2]


1
"DIR(1)"による@クリスもしあなたがパラメータを持つディリクレ分布の平均 = 1 1 ... 1 、そして、答えはイエスです。(α1,,αn)(1,1,,1)
whuber

1
(+1)1つの小さなコメント:直感は素晴らしいです。その部分の「線形変換」はランダムなものであると思われるため、解釈に注意する必要があります(a)。ただし、これは、生成プロセスと特定の不変性プロパティの交換可能性を使用することにより、追加の形式を犠牲にして簡単に回避できます。
枢機

1
より明確に:密度分布の場合、サイズnの iidサンプルの次数統計の密度はn です!f x 1f x n1 x 1 < x 2 < < x n。以下の場合にはF = 1 [ 0 1 ]X fnn!f(x1)f(xn)1(x1<x2<<xn)f=1[0,1](x)、順序統計の分布はポリトープ上で均一です。この時点から、残りの変換は確定的であり、結果は次のようになります。
枢機

1
@cardinalそれは興味深い点ですが、それは重要ではないと思いますが、追加の詳細が役立つことは正しいと思います。スワップ(実際の反射、線形変換)はランダムではありません:それらは事前に決定されています。実際には、に刻まれているN - 1 In1=[0,1]n1(n1)!その領域は他の領域と区別され、各領域と区別された領域の間には所定のアフィン全単射があります。そこから、必要な唯一の追加の事実は、領域の均一な分布が、その測定可能なサブセット上で均一であることです。これは完全に自明です。
whuber

2
@whuber:興味深い発言。共有してくれてありがとう!そのようなことについての洞察に富んだ考えをいつも感謝しています。「ランダム線形変換」に関する以前のコメントに関して、私のポイントは、少なくともを介して、使用される変換はサンプルポイントωに依存するということでした。それを考える別の方法は、w = T xであるような固定された所定の関数T R n 1R n 1がありますが、サブセットでは線形ですが、その関数を線形とは呼びませんそのパーティションn 1 xωT:Rn1Rn1w=T(x)(n1)-キューブ。:)
枢機

1
    zz <- c(0, log(-log(runif(n-1))))
    ezz <- exp(zz)
    w <- ezz/sum(ezz)

最初のエントリは識別のためにゼロになります。多項ロジスティックモデルで行われていることがわかります。もちろん、多項モデルでは、ランダムzzs ではなく、指数の下に共変量もあります。zzs の分布は極値分布です。必要なのは、結果のウェイトがiidであることを確認するためです。最初にrnormそこにalsを配置しましたが、それではうまくいかないという気がしました。


それは機能しません。ヒストグラムを見てみましたか?
枢機

4
あなたの答えはほぼ正しいです。 iid E x p1 を生成し、それぞれを合計で除算すると、正しい分布が得られます。詳細についてはディリクレ分布を参照してください。ただし、これについては明示的に説明していません。nExp(1)
枢機

1
使用している用語を考えると、少し混乱しているように聞こえます。
枢機

2
実際、Wikiリンクこれを(公正に)明示的に説明しています。サポートの見出しの下の2番目の段落を参照してください。
枢機卿

1
この特性評価は、制限が厳しく、一般的すぎます。の結果の分布は、R nの n 1シンプレックス上で「均一」でなければならないという点で一般的です。質問が一般的には、wn 1の変量分布の関数になるように十分に表現されているという点であまりにも制限的であり、これはおそらく、必ずしもではありませんが、n 1の独立した(そしておそらく iid)変数で構成されます。wn1Rnwn1n1
whuber

0

解決策は明白です。次のMathLabコードは、3つの重みの答えを提供します。

function [  ] = TESTGEN( )
SZ  = 1000;
V  = zeros (1, 3);
VS = zeros (SZ, 3);
for NIT=1:SZ   
   V(1) = rand (1,1);     % uniform generation on the range 0..1
   V(2) = rand (1,1) * (1 - V(1));
   V(3) = 1 - V(1) - V(2);  
   PERM = randperm (3);    % random permutation of values 1,2,3
   for NID=1:3
         VS (NIT, NID) = V (PERM(NID));
    end
end 
figure;
scatter3 (VS(:, 1), VS(:,2), VS (:,3));
end

ここに画像の説明を入力してください


1
あなたの周辺には正しい分布がありません。Dirichlet分布(コード化したアルゴリズムを含む乱数生成セクション)に関するWikipediaの記事から判断すると、均一ではなくV(1)にbeta(1,2)分布を使用する必要があります[0,1]分布。
soakley

この傾斜した三角形の角で密度が増加しているように見えます。それでも、問題の幾何学的な表示を提供します。
DWin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.