• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelのRandbetween関数の精度)

ExcelのRandbetween関数の精度

NNAQの回答

  • NNAQ
  • ベストアンサー率56% (104/184)
回答No.7

擬似乱数の統計的な検定なら、エクセルのサイトではありませんが、 http://www.geocities.jp/m_hiroi/light/pystat04.html エクセルにカイ2乗検定の関数があるので、エクセルで統計的な検定について説明したサイトも探せばあるでしょう。 よく例に挙げられるのがサイコロの出目ですね。 サイコロは6面ですが、1~30万の乱数なら30万面のサイコロ(!)だと考えれば、分かりやすいかもしれません。 30万個のデータだとかなり重そうなので、1~1000の乱数を1万個作ってやってみました。 A1:A10000=RANDBETWEEN(1,1000) B1:B1000=COUNTIF(A:A,ROW()) C1:C1000=10(を入力 理論的には1~1000の数字が10個ずつ出るので) 有意水準 5% で検定を行うとすれば、 =CHITEST(B1:B1000,C1:C1000) の値が、0.05以上ならOKとなります。 (余裕でOKでした) 今度は1~6万の乱数をA1:A60000に作ってみました。 集計結果↓ 出現回数,,個数,,期待値 0,,,,,,,22038,,,22072.58 1,,,,,,,22149,,,22072.95 2,,,,,,,10973,,,11036.48 3,,,,,,,,3684,,,3678.76 4,,,,,,,,966,,,,,919.66 5,,,,,,,,155,,,,,183.92 6,,,,,,,,,31,,,,,,30.65 7,,,,,,,,,,4,,,,,,,4.38 8以上,,,,,,0,,,,,,,0.61 期待値の算出は、よく分からないけど、 =BINOMDIST(出現回数,60000,1/60000,FALSE)*60000 で良いと思う。 出現0回が2万個もあって、最初はおかしいのかなと思ったが、ほぼ期待値通り。 実測個数と期待値でカイ2乗検定したら、これもOKでした。 > 2回出現する数値が数個程度かと思いきや、6回出現する数値が10個近く現れた ↑というようなことは、無いと思うのですが。

関連するQ&A

  • エクセル 関数について

    エクセルの型番と、個数が入力されているデータから、 入力されている型番の一覧リストと、各型番の個数を求めるような 関数が知りたいです。 お願いいたします。

  • ExcelのRAND関数

    ExcelのRAND関数で、0から1の間の乱数を発生させることができます。 たとえば、10万行のデータの各行に一度にRAND関数で乱数を発生させた場合(1件目に=RAND()を入力してから下方向コピーする。)、同じ値が発生することはありうるのでしょうか。 データ量が多くなるほど小数点以下の桁数が増えていくので、そのようなことは起きないようになっているのではないかと思いますが、実際はどうなのでしょうか? 

  • エクセルで1次関数

    わかるかた、教えて下さい。 エクセルで1次関数(例えば、y=2x+3)のような関数のグラフを作りたいのですが、どうゆうふうに入力すればいいのですか?

  • エクセルに関する質問

    エクセルに関する質問なんですが 統計数字データをグラフに変換して、統計データによるグラフを作成する際に 統計データの始点と終点を同じにして、重ねて比べられるようなグラフにしたいのですが 統計データの量が、比較したいAとBでは異なるため、 始点終点を同じにして、重ねて比べることができません。 何か関数とかその他の方法で、 違うデータ量のものを重ねて比較する方法はないでしょうか?

  • エクセル2003のグラフ作成について

    一度質問しましたが、私の質問が曖昧だったのでもう一度記入します。 エクセルで毎日記入しているデーターがあります。 日付を記入し個数を書いています。 日付  A  B 4/1  6  7 4/1  9  4 5月、6月・・・と続き どんどん追加されるデーターです。 このデーターをベースに、グラフを作りたいのです。 目的は、日付毎の合計を出し、月々でグラフ化したいらしいです。 縦の棒グラフがいいと思っています。 左に月で、下が個数。 このデーターを蓄積して、どの曜日が多いか、どの月が多いかを グラフをみて、統計を出したいそうです。 ピボットテーブルは却下されてしまいました。 これからも毎日入力するデーターですが、 入力すると、自動的にグラフが出来るようにしたいらしいのです。 そんなことってできるのでしょうか? ピボットは切り貼りするのが面倒らしく、 手間をかけずにデーターを入力すれば、 別シートにグラフができている……という感じです。 初心者ですが、アドバイスお願いします。

  • エクセルでグラフから出た関数Xにたいして計算したい

     エクセルでデータを入力してグラフをつくり、そこからでた関数から グラフにxのパラメーターを入力することでyの値を自動計算したいのですがどうやればよろしいのでしょうか。 よろしくおねがいします。 関数式例)  y=13.524(-0.0038X)  ()は指数

  • メルセンヌツイスターによる乱数の使い方

    メルセンヌツイスターによる乱数を生成したいのですが、下記コードにすると、mt_rand関数を呼ぶたびにシードが初期化され他乱数が生成されます。 やりたいことは、main関数で一度シード101で初期化した後は、mt_rand関数内では、初期化することなく継続した乱数を生成したいのです。 そのためa_mt_rand関数のようにすると、mtが定義されていないとなるエラーとなります。 namespaceの問題と思うのですが、色々試してみましたが、できませんでした。 どのようにすればできるでしょうか。 vc++11、windows11 使用 参考サイト C++ 乱数ライブラリ std::random の使い方 リンクはうまく貼れませんでした。 #pragma hdrstop #include <iostream> #include <stdio.h> #include <random> using namespace std; void mt_rand(void); int main(int argc, char *argv[]) { int ptr; std::mt19937 mt(101); // メルセンヌツイスターの32ビット版、引数は初期シード std::uniform_int_distribution <> rand100(0, 100); // [0, 99] 範囲の一様乱数 ptr = rand100(mt); printf("ptr=%d\n",ptr); mt_rand(); } void mt_rand(void) { int ptr=0; std::mt19937 mt(101); // メルセンヌツイスターの32ビット版、引数は初期シード std::uniform_int_distribution <> rand100(0, 100); // [0, 99] 範囲の一様乱数 ptr = rand100(mt); printf("%d\n",ptr); } void a_mt_rand(void) { int ptr=0; ptr = rand100(mt); printf("%d\n",ptr); }

  • Excelの関数について

    仕事でExcelを使った資料を作成しています。 例 1.りんご 20個 2.ばなな 50個 3.すいか 5個 このように、品目に個数を入力していく資料を作成しているのですが、たとえば入力した個数が20個以上なら入力した数値の2倍を返し、20個以下なら入力した数値の半分を返す、といった関数は作成できるものでしょうか? どうぞ知恵をお貸し下さい。

  • エクセルで関数を使い注文品別の一覧表を作るには?

    まず、元になるデータとして、縦軸1~80に発注者氏名、横軸A~Jに注文品を記した表があり、発注した個数を入力してあります。縦軸最後にはSUM関数で注文品別の合計発注数が出ています。 この表を基に、注文品別の発注者がわかる一覧表を作成したいのですが、ご教授お願いします。 VLOOKUP関数等考えてみましたが、うまくいきません。(個数を入力したセルから氏名をひっぱってくる方法が不明です)エクセル上級者の皆様、宜しくお願い致します。(アクセスがないのでエクセルでお願いします)

  • エクセルで関数を使い注文品別の一覧表を作るには?

    まず、元になるデータとして、縦軸1~80に発注者氏名、横軸A~Jに注文品を記した表があり、発注した個数を入力してあります。縦軸最後にはSUM関数で注文品別の合計発注数が出ています。 この表を基に、注文品別の発注者がわかる一覧表を作成したいのですが、ご教授お願いします。 VLOOKUP関数等考えてみましたが、うまくいきません。(個数を入力したセルから氏名をひっぱってくる方法が不明です)エクセル上級者の皆様、宜しくお願い致します。(アクセスがないのでエクセルでお願いします)