質問

希望する平均と標準偏差を持つような一連の正の数をランダムに生成する方法はありますか?

ガウス分布で数値を生成するアルゴリズムがありますが、平均偏差と標準偏差を保存する方法で負の数を処理する方法はわかりません。
ポアソン分布は適切な近似であるように見えますが、平均しかかかりません。

編集:回答に混乱があったので、明確にしようとします。

平均と標準偏差を与える数字のセットがあります。同等の平均と標準偏差を持つ同等のサイズの数値セットを生成したいと思います。通常、私はこれを行うためにガウス分布を使用しますが、この場合、すべての値がゼロより大きくなければならないという追加の制約があります。

私が探しているアルゴリズムは、ガウスベースである必要はありません(これまでのところコメントから判断すると、おそらくそうすべきではありません)。完璧である必要はありません。結果の数字セットがわずかに異なる平均/標準偏差を持っているかどうかは関係ありません - 私は通常、球場にあるものが欲しいだけです。

役に立ちましたか?

解決

David Normanが提案したように、あなたは対数通常の分布を探しているかもしれません、あるいは多分 指数, 二項, 、または他の分布。 1つの分布を生成するアルゴリズムがある場合、おそらく別の分布に準拠している数値を生成するのに適していないでしょう。しかし、あなただけがあなたの数字が本当に分配されていることを知っています。

正規分布では、ランダム変数の範囲は負の無限から正の無限までのものであるため、正の数だけを探している場合はガウスではありません。

異なる分布には、たとえばポアソン分布の場合、異なる分布も独自の特性を持っていますが、標準偏差は常に平均に等しくなります。 (だからこそ、ライブラリ機能は標準偏差パラメーターから求められないのは、平均だけです)。

最悪の場合、0〜1の間のランダム実数を生成し、確率密度関数を独自に計算できます。 (分布に応じて、これは言うよりもはるかに簡単かもしれません)。

他のヒント

まず、ガウス分布から正の値のみを生成することはできません。

第二に、私はあなたが与えられた平均と標準偏差を持ってランダムな分布を生成しようとしていることを正しく理解していますか?分布はできますか?もしそうなら、平均=としましょう m および標準偏差= s. 。私はそれを仮定しています m - s > 0.

let n = random integer modulo 2;
if n equals 0 return m - s
else return m + s

このプロセスによって返される値には平均があります m および標準偏差 s.

aを使用できます ログノーマル 分布。

再サンプリング方法を使用してみませんか?あなたが持っている場合 n サンプルの数字、取るだけです n サンプルからのランダム描画、 交換付き. 。結果のセットには、元のサンプルとほぼ同じ平均と分散が予想されますが、通常はわずかに異なります。

これは、なぜあなたがより多くの乱数を必要とするのか分からずに、正しい答えが何であるかを言うことは不可能です。間違った問題を解決しようとしているのではないかと考えています...

私は抵抗することができませんでした - 私はジェイソンの角度が本当に好きですが、彼の答えがm> sの場合だけをカバーしていることに満足していなかったので、私は彼のアイデアに従って一般的な解決策を解決しました。
与えられたM、S、および正確な用語を使用した最も単純な分布は

確率pで、0を返します
確率(1-p)で、m /(1-p)を返します
ここで(1-p)= m^2 /(m^2 + s^2)

証明:2つの結果を備えた分布xの場合、確率pを備えたLowx、確率(1-p)のHighx、
m = e [x] = px lowx +(1-p)x highx
s^2 =分散(x)= e [x^2] -e [x]^2 = px lowx^2 +(1 -p)x highx^2 -m^2

lowxを0に設定し、highxとpで解決します。

肯定的なサポートを持ち、平均と分散によって指定できる分布を使用できます。例えば、

  • 1パラメーター分布は一般的には機能しません。たとえば、分散が常にその平均を2倍にしない限り、カイ二乗は機能しません。同様に、あなたの分散が平均二乗に等しくない限り、指数関数は機能しません。
  • いくつかの2パラメーター分布は、場合によっては機能しません。分散が平均よりも少ない場合を除き、二項分布は機能しません。同様に、あなたの分散が平均の2倍を超え、平均4倍未満でない限り、非中央カイ二乗は機能しません!
  • ただし、対数ノーマルとガンマはすべての場合に機能します。

私があなたを正しく理解しているなら、あなたは肯定的なサポートを備えた分布から乱数を生成したいと思います。多くの選択肢があります。最も簡単なのはです

カイ二乗: http://en.wikipedia.org/wiki/chi-square_distribution(これは2つの2つの四角いガウスの合計です)

すべてのアシュメトリック分布(指数、ワイブル、パレート、逆ガウス、対数正規、ガンマ)

スキューファミリーからのすべての分布(スキューノーマル、スキューステーデント、...)

上記のすべての機能は、それらのいずれかから描かれた乱数が常に正であるようにしています。

ピエロは何について話しているのですか?標準の正常には平均ゼロがありますが、それはガウス分布の特別なケースであり、パラメーターの平均と標準偏差があります。 SDが一定になると平均が増加すると、ゼロ以下の数値を生成する確率がゼロに減少します。負の数のないガウス分布を絶対に持つことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top