タグ付けされた質問 「random-generation」

一連の数字または記号をランダムに、または(ほとんどの場合)疑似ランダムに生成する行為。つまり、予測可能性やパターンがない。

5
相関する非正規データを生成する方法
相関する非正規データを生成する方法を見つけることに興味があります。理想的には、共分散(または相関)行列をパラメーターとして受け取り、それに近似するデータを生成するある種の分布です。しかし、ここに問題があります。私が見つけようとしている方法には、その多変量歪度や尖度も制御できる柔軟性が必要です。 Fleishmanの方法と通常の変量のべき乗法の使用はおなじみですが、これらの拡張機能のほとんどは、ユーザーが限界歪度と尖度の特定の組み合わせのみを許可し、多変量歪度/尖度をそのまま残していると思います。私が疑問に思ったのは、相関/共分散構造とともに、多変量歪度および/または尖度を指定するのに役立つ方法があるかどうかです。 約1年前、コピュラの分布に関するセミナーを受講しましたが、教授がぶどうのコピュラを使用することで、たとえば1次元の周辺それぞれで対称的であるが、共同で歪曲されたデータを生成できることをさりげなく言及したことを覚えています-その逆。または、さらに低い次元の余白には、最大の次元を対称(または非対称)に保ちながら、ゆがみや尖度を持たせることができます。私はそのような柔軟性が存在する可能性があるというアイデアに驚いていました。私は、前述の方法を説明する何らかの記事または会議論文を見つけようとしましたが、失敗しました:(。コピュラを使用する必要はありません。うまくいくものなら何でもオープンです。 編集:私が意味することを示すために、いくつかのRコードを追加しました。これまでのところ、Mardiaの多変量歪度と尖度の定義に精通しています。私が最初に問題に近づいたとき、対称コピュラ(この場合はガウス)を歪んだ周辺(この例ではベータ)で使用すると、周辺の単変量テストが重要になりますが、マルディアの多変量スキューネス/尖度のテストは重要だと思いました重要ではありません。私はそれを試してみましたが、期待通りに出ませんでした。 library(copula) library(psych) set.seed(101) cop1 <- {mvdc(normalCopula(c(0.5), dim=2, dispstr="un"), c("beta", "beta"),list(list(shape1=0.5, shape2=5), list(shape1=0.5, shape2=5)))} Q1 <- rmvdc(cop1, 1000) x1 <- Q1[,1] y1 <- Q1[,2] cop2 <- {mvdc(normalCopula(c(0.5), dim=2, dispstr="un"), c("norm", "norm"),list(list(mean=0, sd=1), list(mean = 0, sd=1)))} Q2 <- rmvdc(cop2, 1000) x2 <- Q2[,1] y2 <- Q2[,2] mardia(Q1) …

1
多変量ガウス分布から値を生成する
現在、平均ベクトルと共分散行列多変量正規分布を持つ次元のランダム変数値をシミュレートしようとしています。X μ = (μ 1、。。。、μ N )T SNNNXXXμ=(μ1,...,μN)Tμ=(μ1,...,μN)T\mu = (\mu_1,...,\mu_N)^TSSS 逆CDF法に似た手順を使用したいと考えています。つまり、最初にNNN次元の一様なランダム変数UUUを生成し、次にこの分布の逆CDFにプラグインして、値Xを生成しますXXX。 手順が十分に文書化されておらず、MATLABのmvnrnd関数とウィキペディアで見つけた説明にわずかな違いがあるため、問題が発生しています。 私の場合、分布のパラメーターもランダムに選択しています。特に、平均分布μiμi\mu_i一様分布U(20,40)U(20,40)U(20,40)ます。次に、次の手順を使用して共分散行列SSSを作成します。 下三角行列作成L L(I、I)= 1のための私は1..N =及びLを(I、J)= U(-1,1)のために 、I &lt;JLLLL(i,i)=1L(i,i)=1L(i,i) = 1i=1..Ni=1..Ni=1..NL(i,j)=U(−1,1)L(i,j)=U(−1,1)L(i,j) = U(-1,1)i&lt;ji&lt;ji < j してみましょうS = LL ^ T L ^ Tはの転置表すLを。S=LLTS=LLTS = LL^TLTLTL^TLLL この手順により、SSSが対称かつ正定であることを確認できます。また、S = LL ^ Tになるように下三角行列Lを提供します。これは、分布から値を生成するために必要だと思います。LLLS=LLTS=LLTS = LL^T ウィキペディアのガイドラインを使用すると、次のようにN次元のユニフォームを使用してXの値を生成できるはずです。XXXNNN X=μ+L∗Φ−1(U)X=μ+L∗Φ−1(U)X = \mu + L * …

3
合計が1になる均一に分布した重みを生成しますか?
混合モデリングなどのアプリケーションで重みを使用し、基底関数を線形結合することは一般的です。重みはしばしばおよび従う必要があります。そのようなベクトルの一様分布から、重みベクトルをランダムに選択したいと思います。wiwiw_iwi≥wi≥w_i ≥∑iwi=1∑iwi=1\sum_{i} w_i=1w=(w1,w2,…)w=(w1,w2,…)\mathbf{w} = (w_1, w_2, …) これは、使用したくてもよいここで U(0、1)、しかしの分布、以下のコメントで説明したようには均一ではありません。wi=ωi∑jωjwi=ωi∑jωjw_i = \frac{\omega_i}{\sum_{j} \omega_j}ωi∼ωi∼\omega_i \simww\mathbf{w} しかし、与えられた制約、問題の根本的な次元であると思われ、及びそれを選択することが可能でなければならないこと選択することによりに係るパラメータをいくつかの分布とそれらのパラメータから対応する\ mathbf {w}を計算します(n-1個の重みが指定されると、残りの重みが完全に決定されるため)。∑iwi=1∑iwi=1\sum_{i} w_i=1n−1n−1n-1ww\mathbf{w}n−1n−1n-1ww\mathbf{w}n−1n−1n-1 この問題は、球面点の選択問題に似ているように見えます(ただし、ℓ2ℓ2ℓ_2ノルムが1の3ベクトルを選択するのではなく、ℓ_1ノルムが1のnnnベクトルをℓ1ℓ1ℓ_1ます)。 ありがとう!

1
低不一致シーケンスでのスクランブルと相関(ハルトン/ソボル)
現在、HaltonやSobolのポイントセットなど、低不一致/準ランダムポイントセットを使用してランダムな値を生成するプロジェクトに取り組んでいます。これらは、基本的には次元のベクトルその模倣A次元の制服(0,1)の変数が、より良い広がりを持っています。理論的には、プロジェクトの別の部分での私の見積もりの​​分散を減らすのに役立つはずです。ddddddd 残念ながら、私は彼らと仕事をする問題に遭遇しており、それらに関する多くの文献は密集しています。したがって、私は彼らと経験を積んだ人から何らかの洞察を得ること、または少なくとも何が起こっているかを経験的に評価する方法を見つけたいと思っていました。 それらを使用した場合: スクランブルとは何ですか?また、生成されるポイントのストリームにどのような影響がありますか?特に、生成されるポイントの寸法が増加すると効果がありますか? MatousekAffineOwenスクランブリングでSobolポイントの2つのストリームを生成すると、2つの異なるポイントストリームが得られるのはなぜですか。Haltonポイントで逆基数スクランブルを使用する場合、なぜこれが当てはまらないのですか?これらのポイントセットに存在する他のスクランブリングメソッドはありますか?存在する場合、それらのMATLAB実装はありますか? それらを使用していない場合: 私が持っていると言う列おそらく乱数の、私は彼らがお互いに相関していないことを示すために使用すべき統計のどのタイプ?そして、何の数、私は私の結果は統計的に有意であることを証明する必要があるでしょうか?また、どのように私は私が持っていたならば、同じこと何ができる列の次元ランダムベクトルは?S 1、S 2、... 、S N N N S 1、S 2、... 、S N D [ 0 、1 ]nnnS1,S2,…,SnS1,S2,…,SnS_1, S_2, \ldots,S_nnnnnnnS1,S2,…,SnS1,S2,…,SnS_1, S_2, \ldots,S_nddd[0,1][0,1][0,1] Cardinalの回答に関する追加の質問 理論的に言えば、スクランブル方法と低不一致シーケンスを組み合わせることができますか?MATLABでは、Haltonシーケンスに逆基数スクランブルを適用することしかできず、それが単に実装の問題なのか互換性の問題なのか疑問に思っています。 相互に関連のない2つの(t、m、s)ネットを生成できる方法を探しています。MatouseAffineOwenはこれを許可しますか?決定論的なスクランブリングアルゴリズムを使用し、kが素数であるすべての「kth」値を選択するだけの場合はどうでしょうか。


1
超楕円体の表面から均一にサンプリングする方法(一定のマハラノビス距離)
実数値の多変量の場合、平均からのマハラノビス距離が定数である表面からポイントを均一にサンプリングする方法はありますか? 編集:これは、方程式を満たすハイパー楕円体の表面から均一にサンプリングポイントに要約されます。 (X - μ )TΣ− 1(X - μ )= D2。(バツ−μ)TΣ−1(バツ−μ)=d2。(x-\mu)^T \Sigma^{-1}(x-\mu) = d^2. より正確には、「均一に」とは、超曲面の各面積要素dAdAdAが同じ確率質量を含むようなサンプルを意味します。

6
サンプリングできない単変量分布はありますか?
単変量分布(逆変換、アクセプトリジェクト、メトロポリスヘイスティングスなど)からランダムに生成するためのさまざまな方法があり、文字通り任意の有効な分布からサンプリングできるようです-それは本当ですか? ランダムに生成することが不可能な単変量分布の例を提供できますか?私は「不可能」によって、我々はまた、ある場合を意味することだと言うてみましょう(?)それは不可能であるという例が存在していないと思い、非常にちょうどAを受け入れるために、サンプルの膨大な量を描くような必要性のブルートフォースシミュレーションこと例えば、計算コストをそれらのいくつか。 そのような例が存在しない場合は、我々は実際に描画し、我々はランダム生成できることを証明することができます任意の有効な分布?これに反例が存在するかどうか、私は単に興味があります。

2
コインを投げることは、グループを2つのグループにランダム化する公平な方法ですか?
私と叔父は、コインフリップが本当にランダムかどうかについて議論しています。コイントッサーは常にコインを操作するため、結果は50/50ではないため、臨床試験でグループを割り当てるためのランダム化手法としては適切な選択ではないためだと思います。しかし彼は、コイン投げのわずかな欠陥がランダム性を生み出すと主張しています。それで彼は、永遠に公正なコインを投げてそれを頭に乗せることができるマシンを仮定しました、そして正直に言うと、私のためにこの議論を解決する誰かが必要です。コインを投げることは、グループを2つのグループにランダム化する公平な方法ですか?

2
ログスペースの離散(カテゴリ)分布からサンプリングする方法を教えてください。
Iはベクトルによって定義された離散的な分布があるとθ0,θ1,...,θNθ0,θ1,...,θN\theta_0, \theta_1, ..., \theta_Nカテゴリなるように000確率で描画されますθ0θ0\theta_0とそうで。次に、分布の値の一部が非常に小さいため、コンピューターの浮動小数点数表現がアンダーフローすることを発見しました。そのため、すべての計算を対数空間で行います。今は対数空間ベクトル有するlog(θ0),log(θ1),...,log(θN)log(θ0),log(θ1),...,log(θN)log(\theta_0), log(\theta_1), ..., log(\theta_N)。 それは、元の確率は(カテゴリを保持するように、分布からサンプリングすることも可能であるiii確率で描かれているθiθi\theta_i)が、これまでのログ・スペースを残しませんか?言い換えれば、アンダーフローなしでこの分布からどのようにサンプリングするのですか?

3
間隔で並べ替えられた均一に分布した値を効率的に生成する方法は?
間隔から乱数のセットを生成したいとしましょう(a, b)。生成されたシーケンスには、ソートされるというプロパティも必要です。これを実現する方法は2つ考えられます。 ましょn生成するシーケンスの長さ。 最初のアルゴリズム: Let `offset = floor((b - a) / n)` for i = 1 up to n: generate a random number r_i from (a, a+offset) a = a + offset add r_i to the sequence r 2番目のアルゴリズム: for i = 1 up to n: generate a random number …

1
各コードブロックの前にシードを設定するか、プロジェクトごとに1回設定しますか?
結果を再現できるようにランダムなシードを設定することは標準的なアドバイスです。擬似乱数が描かれているようにシードが高度であるためただし、結果が変化する可能性が任意のコードの一部は、追加数を描きます。 一見すると、バージョン管理はこれに対する解決策であるように見えます。少なくともメモや紙に結果を書き留めたときに、戻って現在のバージョンを再現できるからです。ただし、失敗するのは1回の描画だけなので、Rを更新すると結果も変わる可能性があります。 これはおそらくまれなケースでのみ問題があると思いますが、ここにベストプラクティスがあるかどうか知りたいです。これは自分の仕事で苦労してきたことです。


2
これは、乱数であるべきものにバイアスを導入しますか?
ランダムに生成された、1千万以上の1と0を含むデータファイルがあるとします。 このファイルから、ランダムな10進整数のリストを作成します。 これは、この変換を行う計画です。 8000万桁を4つの2進数のグループに分けます。 各4桁のバイナリを10進数に変換します。 9より大きいすべての10進数値を破棄します。 これにより、0〜9のランダムな整数の文字列が生成されます。 ここに懸念があります。10から15の値に対応する4つの2進数の6つのグループを構成する24の2進数には、1が17、0が7のみ含まれます。この不均衡は、偶数と奇数の整数の分布に影響を及ぼしますか、または何らかの方法で10進数の最後の文字列のランダム性を損ないますか? 更新:投稿された回答から、上記で列挙した方法は適切であるようです。私はその結論に同意します。ただし、バイナリ文字列からゼロの2倍を超える数を削除しても、結果が奇数の少ない方に偏らない理由はまだわかりません。説明を求めます。

3
逆変換ではなく、アーレンスとディーター(1972)の方法を使用する指数ランダムジェネレーターの利点は何ですか?
私の質問は、Rの組み込みの指数乱数ジェネレーターである関数に触発されましたrexp()。指数分布の乱数を生成しようとする場合、多くの教科書では、このWikipediaページで概説されている逆変換方法を推奨しています。このタスクを実行する他の方法があることを知っています。特に、Rのソースコードは、Ahrens&Dieter(1972)の論文で概説されているアルゴリズムを使用しています。 アーレンスディーター(AD)法が正しいことを確信しました。それでも、逆変換(IT)メソッドと比較して、これらのメソッドを使用する利点はわかりません。ADは、ITよりも実装が複雑なだけではありません。スピードメリットもないようです。以下に、両方の方法のベンチマークを行うためのRコードと、それに続く結果を示します。 invTrans &lt;- function(n) -log(runif(n)) print("For the inverse transform:") print(system.time(invTrans(1e8))) print("For the Ahrens-Dieter algorithm:") print(system.time(rexp(1e8))) 結果: [1] "For the inverse transform:" user system elapsed 4.227 0.266 4.597 [1] "For the Ahrens-Dieter algorithm:" user system elapsed 4.919 0.265 5.213 2つの方法のコードを比較すると、ADは少なくとも2つの均一な乱数(C関数を使用unif_rand())を描画して、1つの指数乱数を取得します。ITは1つの均一な乱数のみを必要とします。対数を取るのがより均一な乱数を生成するよりも遅いかもしれないと想定していたため、おそらくRコアチームはITの実装に反対しました。対数を取る速度はマシンに依存する可能性があることを理解していますが、少なくとも私にとってはその逆です。おそらく、ITの数値精度に関連して、0の対数の特異性に関係する問題があるのでしょうか。しかし、その後、R ソースコードsexp.cは、Cコードの次の部分が一様乱数uから先頭ビットを削除するため、ADの実装も数値精度を失うことを示しています。 double u = unif_rand(); while(u &lt;= 0. || u …

4
与えられた標準偏差で、ほぼ正規分布の非対角要素を持つランダム相関行列を生成する方法
非対角要素の分布がほぼ通常のように見えるように、ランダム相関行列を生成したいと思います。どうすればできますか? 動機はこれです。時系列データのセットの、相関分布は通常、非常によく似ています。多くの「通常の」相関行列を生成して、一般的な状況を表し、それらを使用してリスク数を計算したいと思います。nnn 私は1つの方法を知っていますが、結果として得られる(非対角要素の分布の)標準偏差が小さすぎます。行列均一または通常のランダムな行を生成し、行を標準化します(平均を減算します。標準偏差で除算)、サンプル相関行列は通常、対角線上にないエントリを配布します[ コメントの後に更新:標準偏差は ]。X 1nnnXX\mathbf X〜N-1/21n−1XX⊤1n−1XX⊤\frac{1}{n-1}\mathbf X \mathbf X^\top∼n−1/2∼n−1/2\sim n^{-1/2} 標準偏差を制御できるより良い方法を誰かが提案できますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.