[統計] これは、作為的なデータですか?それとも、違いますか?


--A(A列)--
0.5008
0.5005
0.4989
0.5008
0.4997
0.5012
0.5013
0.5012
0.4991
0.5028

--B(B列)--
0.5051
0.5005
0.5013
0.4984
0.4905
0.5004
0.4908
0.5034
0.4963
0.4988

A、Bと二つの数値データ(実際は1000行以上あります)があります。
Aについては一切、手を加えていない生データです。
Bについては、もしかするとAのデータの続きかもしれませんし、例えば、1行、3行、4行・・・811行・・・にそれぞれ0.001、0.0005、0.002、0.08・・・0.001・・・を加算してあるかもしれません。

何らかの、操作が行われた可能性の高いデータ(どのくらいの確率?)なのかExcelを使って調べるたいと思っています。どうすれば分かるものか具体的な方法を教えて下さい。なお、数学の知識は大昔に勉強した為ほとんど忘れていますので、なるべく、そのまま貼り付けて調べられるよう関数を書いて教えて頂けると助かります。

宜しくお願い致します。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/05/11 12:21:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:snow0214 No.1

回答回数470ベストアンサー獲得回数116

ポイント150pt

t検定を行います。

たとえば、A1:A1000とB1:B1000が並んでいたとして、この2つのデータの集まりに差があるかどうかを調べるのがt検定です。

Excel関数TTESTを使い、
=TTEST(A1:A1000,B1:B1000,2,1)
としてください。
第4引数の1ですが、AとBに対応関係があるときは1、対応関係はないがデータの分散の仕方が同じだと仮定できるときは2、それ以外は3を代入してください。

一般的には棄却域の確率として0.05を使います。
つまり、TTESTの計算結果が0.05未満だったらAとBには有意差がある、すなわち95%の確率でAはBと違うものと判定できます。

他4件のコメントを見る
id:j4mika

snow0214さま
コメントありがとうございます。
>乱数からなるデータの集団はは対応関係や分布の性質を持たないので、
>差があるかどうかを調べることは本質的にできません。
なるほど・・・
ただ、Excelの乱数=rand()については、恐らくある数式を元にして生成していると思いますので本質的には同一ではないでしょうか?

2014/05/08 23:18:31
id:snow0214

たとえ何らかの数式を元に生成しているとしても、同じという検定結果が出たとしたら、乱数として意味をなさなくなります。

なぜなら、t検定で同じだという結果が出るということは、ある5千個の乱数と次の5千個の乱数が同じ分布をしているということで、これでは乱数と呼べないからです。

2014/05/10 08:58:55
id:watercooler No.2

回答回数289ベストアンサー獲得回数51

ポイント50pt

数字の羅列だけを見て判断する公式は存在しないわ。
条件を整えて何度も測定して実証するしかないわよ。

《60》 研究者も人間 ―隠れた作為を見抜く - これって効きますか? - アピタル(医療・健康)

集められたデータは、どのような条件のもとで測定されたものなのか、注意深く見ていく必要があります。

id:j4mika

回答いただきありがとうございます。

2014/05/08 23:36:06
  • id:Silvanus
    本来どんな分布をとるべきものなのかが判らないので、最適な方法が何なのかも言えませんが、一般的には「ヒストグラムを作ってから2標本コルモゴロフ=スミルノフ検定」でしょうか…。
    http://www.weblio.jp/content/%E4%BA%8C%E6%A8%99%E6%9C%AC%E3%82%B3%E3%83%AB%E3%83%A2%E3%82%B4%E3%83%AD%E3%83%95%E3%83%BB%E3%82%B9%E3%83%9F%E3%83%AB%E3%83%8E%E3%83%95%E6%A4%9C%E5%AE%9A
  • id:miharaseihyou
    データ量が少なすぎて、全体の配置やタイムテーブル、それに差分も見えないし、両方とも生データだって感じがする。
  • id:takejin
    サンプル数が少ないな。
    系列が二つみえても、どちらが作為かは判定しにくいし。
  • id:Silvanus
    各1000個以上あるなら、一概に「少ない」とは言えないと思いますが…。
  • id:j4mika
    Silvanusさま

    コメント頂きありがとうございます。
    統計については全くの素人で調べれば調べるほど難しく感じています。
    リンク先についても見てみましたが、ぱっと見て直ぐ分かるほど簡単ではないと言うことがよく分かりました。うーん、難しい><

    データはノイズを数字で出力して、その数値の偶数を0,奇数を1で表示して、それを1万ほど集めて、平均を取ったものが一つのデータになります。ただ、データの取り方や時間帯などによって異なる可能性まりますし、もっと単純に他の要因かもしれません。実際の数値を気軽に比較してみたいと思っていました。

    また、回答コメントの例では、恐らく本質的には同じと思い、もっと手軽に、

    A1:A5000、B1:B5000に
    =MOD(INT(RAND()*10),2)
    を入力し、
    =TTEST(A1:A5000,B1:B5000,2,3)
    としていますが、出力された値を見ても何を示しているのか意味が分かりませんでした。
  • id:j4mika
    miharaseihyou さま
    たけじん さま
    Silvanus さま
    コメントありがとうございます。

    例えば、
    A列、B列に、
    =MOD(INT(RAND()*10),2)
    を任意の個数入力します。この場合、両者はどちらもランダムなデータだと思いますが、この関数を見ることなく、出力されたデータだけを見て、この両者が本質的に同一のものか、異なるものか調べるという感じでも良いです。

    もし、簡単に分かる方法がありましたら、回答欄にでもアドバイス頂ければ幸いです。



  • id:Silvanus
    ここで厳密な統計の話ではなく、ざっくりとした説明になることをご了承下さい。
    回答者が挙げている「t検定[TTEST()関数]」というのは「2群の標本の平均値の間に差があると言えるかどうか」を評価する方法で、TTEST()の出力値は0より大きく1以下になります。小さい程「差がある」(という結論が間違っている可能性は低い)と言えます。最も一般的には0.05以下(或いは未満)を統計学的に意味のある(統計学的に有意)とみなします。
    2群の標本の数がそれぞれ十分に大きい場合、TTEST()の結果が小さければ「手を加えられた」と言っても良いかも知れませんが、しかし、平均値がほとんど変化しない様な形で手が加えられた場合は、平均値を比較するt検定では検出しようがありません。
    2標本コルモゴロフ=スミルノフ検定は「2群の標本のヒストグラム(正しくは累積確率ヒストグラム)の形状を比べる」様なものだと思って貰えれば良いかと思います。ヒストグラムの形状が変化すれば、人為的な操作が行われた可能性があると言えると思いますが、この場合もt検定の時と変わらず本質的な問題があります。つまり、標本の分布(ヒストグラム)を大きく変えない様な改変は当然検知することができません。
  • id:Silvanus
    あ、追加のコメントが投稿されたのをチェックできていませんでした…orz。
    お示しいただいた例を用いて、EXCEL上でコルモゴロフ=スミルノフ検定の計算を行ったものをお見せしたいと思いますのでしばしお待ち下さい。
  • id:Silvanus
    この例ですと、0と1の二つの値しかとらないですよね。この様なケースでは、K-S検定は使えません…。比率の差の検定を用いるしか無さそうです。
    http://www.aoni.waseda.jp/abek/document/chi-test.html
  • id:j4mika
    Silvanusさま
    とても丁寧なコメントありがとうございます。
    補足いたします。
    0と1にしているのは、私の作ったデータがそれでしたのでそれに近い形にしたいという思惑がありました。また、単純化することでデータの整理がやりやすくなるかと思ったのもあります。その為、
    =MOD(INT(RAND()*10),2)
    ではなく、単純に、
    =RAND()
    でも良いです。
  • id:Silvanus
    http://rct3jp.info/hatena/hatena-j4mika-20140507.xlsx
    上記URLにサンプルのXLSXファイルを置きました。
    ・ワークシート1枚目:一様分布[RAND()そのまま]
    ・ワークシート2枚目:正規分布[RAND()とNORM.INV()で生成]
    上の方のコメントで記したK-S検定に関するウェブページの記載を参照しながら
    ワークシートをご覧下さい。取り敢えずサンプル数はA列・B列共に1000にしてあります。
    肝は「2群の標本の累積確率ヒストグラムをそれぞれ作成し
    「累積確率の差の絶対値」の最大値(D)を利用して検定している、ということです。
    一番右下のP値(0<P≦1)が大きい程「両群の分布に差があるとは言えない」ということになります。
    この方法は、ヒストグラムを作成するので、各階級の幅を幾らにするか
    (今回は0.05にしてあります)によっても統計結果は変わって来ます。
  • id:j4mika
    Silvanus さま

    Excelファイルありがとうございます。とても丁寧に作られており申し訳なく思います。
    特に、私の知識が足りず、折角作って頂いたデータを十分に生かし切れていないのを心苦しく思っています。

    なお、RANDを変化させるとPが0.3-1.0の間を変動しました。そこで、試しに、100万行までデータを入れてみたのですが、やはり同様に変動しました。
    擬似乱数の為、大量のデータがあれば、どちらも根っこは同じものだと判明(大量にあれば、Pが極めて1に近くなりその辺りをうろつく)と期待したのですが、想像以上に変動が大きく簡単に求まるものではない気がしてまいりました。もっとサンプル数が多ければ良いのかもしれませんが・・・

    本題であったdataAやBのようなデータを調べる場合も、他の検定方法や、サンプル1000個などではなく遙かに多くのサンプルが必要なのかもしれません。
  • id:Silvanus
    こちらでも100万件で試してみましたが、一様分布の場合も、正規分布の場合も、頻度は高くありませんがP値が0.05を下回る時がありますね。j4mikaさんのお考えと同様に、私も100万件程度であれば、あらわれるP値の下限は精々0.7程度までだと思っていたのでかなり意外でした。そういう意味ではK-S検定は、j4mikaさんのご質問の回答としては相応しくないものと言えるかも知れません。私は統計を専門としている訳ではないので、更なるネタは持ち合わせておりませんが、標本に対して人為的な操作が加えられたか否かを判断するのは容易ではない、ということだけは改めて感じました。お役に立てませず申し訳ございません。
    具体的な統計方法はさて置くとして、先ずその標本の「本来あるべき姿の特徴」(ワークシートの例では一様分布・正規分布)を統計学的に把握し、そこから「差分」を「確率的な変動のみ」或いは「人為的操作も加わったもの」の何れとするかの「境界」をどこにおくのか…きっと(K-S検定の様な)一般的な検定方法を採るよりも、(個別の計算は一般的な統計学的なものになるでしょうが全体的には)その標本に最適化された方法を採らなければならないのではないかと思います。
  • id:j4mika
    Silvanusさま
    丁寧に教えて下さりありがとうございました!とても参考になりました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません