dポイントプレゼントキャンペーン実施中!

1000個の乱数のデータを0〜10の範囲で直線的に増加するように発生させヒストグラムを作成しなさいという課題が出ましたが、どう考えても直線的に増加する乱数を発生させることができません。詳しい方教えてください!!

A 回答 (1件)

こんにちは



「直線的に増加する」の意味をどう捉えるのかによっていろいろ考えられると思います。

以下に簡単な例をひとつ、ふたつ。
1)直線を y = 10 * x / 1000 と考えて、誤差分を乱数とするなら
  y = 10 * x / 1000 + (1 - RAND()) * R (Rは適当な誤差制御係数)
 とでもすれば、適当にバラついた直線的なデータを得られます。
 ただし、漸増にはならないので「増加する」を「必ず前のデータより大きい」
 という意味とすると、それには合致していません。

2)必ず「前のデータより大きい」ことを条件にするなら、
  (目標値(=10)- 前のデータ) / (残りのデータ数)
  が、増加の平均的期待値と考えて、これに乱数を乗じたものを前のデータに加えて、
   y = 前のデータ + (10 - 前のデータ) / (残りのデータ数)* RAND() * R
  のような漸化式的に次のデータを求めるようにすれば、漸増データになります。
  こちらの場合は、途中で10になってしまうと、以降は10にしかなりませんけれど。
  また、1)のデータを昇順に並べ替えても、2)のようなデータを得られますね。

※ どちらの場合も「0~10まで」という制限があるので、データとしては
  MIN(MAX(値, 0), 10)
 としておくことで、必ず0~10の値にすることができます。

他にも、それまでのデータから回帰式を求めながらブレさせるとか、いろいろな方法が考えられると思います。


添付図は、上記の例を簡略化して、データ数30として、散布図(=ヒストグラムではなく)
にしてみた一例です。
(グラフ1が1)、グラフ2が2)に対応)
「エクセルの課題について」の回答画像1
    • good
    • 0
この回答へのお礼

助かりました

図付きでご丁寧にありがとうございます!
よくわかりました!!

お礼日時:2022/07/25 18:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!