SIGNIFICANCE TEST

A、B、C、Dという4つの化粧品を設計して、現行品Eも含めて効果を測定して有意差検定を行なった。A, E間に有意差はみられなかった。B, E間、C, E間にも有意差はみられなかったが、D, E間にぎりぎりではあるが5%有意差が見られた。おおっ、やったぜカアチャン、明日はホームランだ。研究討論会で「開発品Dは現行品Eに対して有意に効果があることを確認しました。」と自慢げに発表したところ、ケチがついた。「それ、ホントに有意に差があったって言えるの?」

はあ?何言っちゃってんの。5%有意差って言ったじゃんよ。聞いてなかったの?ゴ・パーセントゆ・う・い・さ。ユー・アンダスターン?

ホントは差がないにも関わらず偶然そんな差が出てしまう確率を求める。偶然発生する確率が5%以下なら「ホントは差がないのに偶然そんな差が出た」という仮説は棄却され、すなわち「その差は意味が有る差だ」ということになる。

つまりDとEの差は偶然起きる確率が5%以下なのよ、わかる?だからもうこれは偶然じゃないの。意味があるのよ。開発品Dは現行品Eよりも有意に効果的なの。ユー・アンダスターン?

でも5%って20分の1だろ。20回に1回は偶然起きてもおかしくないってことだよな。君は「AとEの間に20回に1回しか起きない偶然の差は出てないかなあ」「BとEの間に20回に1回しか起きない偶然の差は出てないかなあ」「CとEの間に20回に1回しか起きない偶然の差は出てないかなあ」と偶然の出会いを求めてとうとう4回目の「DとEの間に20回に1回しか起きない偶然の差は出てないかなあ」という挑戦でみごとその偶然を引き当てただけなんじゃないの? 4回目も挑戦して偶然発生確率5%の結果を引き当てたとか言われても、それってホントは5%有意差って言えないんじゃない?

ドンガラガッシャン!!

たとえばサイコロを2個投げて両方3が出る投げ方をいろいろ考えたとする。右手の甲で投げてみる。左手の人差し指と中指で投げてみる。右足でつまんで投げてみる。口から吹き出してみる・・・・いろんな投げ方を試すうち10回目に背中に乗せて投げてみたらとうとう両方3が出た。偶然そうなる確率が36分の1しかない現象が背中に乗せてから投げる方法の時に起きた。これはもはや偶然ではないといえる。だから「背中に乗せて投げると他の投げ方とくらべてサイコロが両方3になりやすい」とか結論付けされても困るだろ? 偶然起きる可能性があるってことは何度も試せばいつかは偶然起こるってことだよ。5%有意差なんてその程度のものなんだからあんまり軽々しく使わない方がいいんじゃない?

ひー、すみません、すみません。お許しくださいお代官様。私が悪うございましたぁ。

EXCELで最小二乗法(2)

 昨日の続き。EXCELを使って最小二乗法による近似を行なうには「ソルバー」機能を使う。Windows版Excelには内蔵されているけど、Mac版ExcelにはないのでMacユーザな私はSolver for Mac Excel 2008というソフトを使う。Windows版Excel内蔵ソルバーもSolver for Mac Excel 2008も画面や動作はほぼ同じなのでWinな人も構わず読んでください。

 さて、Excel上に下記のデータを用意する。

  • A列、B列に実験値
  • 適当なセルにモデル式に使う定数
  • C列にモデル値
  • D列に実験値とモデル値の差の二乗
  • 適当なセルに差の二乗和

 そしたらソルバーを起動する。target cell(目的セル)に差の二乗和を計算しているセルを指定、equal to(目標値)は[min](最小)を指定、Changing cells(変化させるセル)には定数を入力しているセルを指定する。

 これでSolve(実行)をクリックすると、ソルバーは[変化させるセル]の値をちょっとずつ動かしながら[目的セル]の値が[最小]になる組み合わせを見つけていく。本当に画面上でセルの値がガラガラと変化するので、なんか人間味を感じてしまう。

 ソルバーがアレやコレや考えた末に目標を達成すると(今回の場合は[目的セル]が[最小]になったら)ソルバーは終了する。思考結果を残すか、元に戻すか聞かれるので決めてあげる。たいていの場合は[OK]押して思考結果を残せばいい。

 ソルバーによる思考の結果、y=A+B*exp(C*x)のモデル式でA=9.45, B=20.9, C=-0.114とすると実験値を近似できるという結果が得られます。実験値に近似した式のグラフを重ねると次のようになります。

 この結果から、減衰の度合いは-0.114で表され、初期値30.35から最終的に9.45に収束する減衰挙動であると評価することができます。ソルバーを使う時のポイントはあらかじめ与える定数をできるだけそれっぽい値にしておくということ。ソルバーは与えられた値をちょっとずつ動かしながら試行錯誤を繰り返しながら目的セルが最小になる組み合わせを探しますが、正確にはこれは極小値です。初めに与えた値があまりにも不正確だと的外れな組み合わせを導いてしまいます。

極小と最小の概念

 ところで、近似する際にある値だけは固定したい場合があります。そういうときはソルバーでSubject to the Constraints(制約条件)を設定しておけばできる。例えば初期値は実験結果である30に固定したい場合、実験値の初期値B2セルとモデル値の初期値C2セルの値が等しくなるという条件を追加する。

 これでソルバーを実行するとA=9.42, B=20.6, C=-0.112が得られる。グラフにするとy切片がきっちり30になる。

 てな具合で、ソルバーを使うと理論式や経験式への近似計算(計算というより探索)が簡単にできる。理系なら覚えておいて損はない。

EXCELで最小二乗法(1)

 大学で実験講師をやってるんだけど、理論式や経験式が存在する実験データを最小二乗法を使って近似するということを知らない学生が多いのでちょっと驚いた。といってもサラリーマン研究者でも知らない人が多い。理系でも分野によっては必要性を感じないままで済むこともあるしね。でも知っておいて損はない。特に理系ならなおさら。

 最小二乗法の考え方は至って簡単。まずモデル式を立てて実験値とモデル値の差を求める。この差の合計値が最小になるような定数の組み合わせを見つければそれが近似式になる。しかし、単に差を合計すると正負で相殺されてしまうので、すべて正の数になるように差を二乗してから合計する。これ(差の二乗和)が最小になる定数を求めてあげる。これが最小二乗法による近似。

 例えば次のような実験結果があったとする。

値が減衰してある値に収束する実験結果

 これが指数関数的に減衰すると推定される場合

こんな式で近似することになる。ここでAは減衰の下限値、Bは減衰量(A+Bが初期値になる)、Cが減衰速度を表す定数。A、B、Cに適当な数値をあてはめてグラフを書くと次のようになる。

実験値に適当な指数グラフを重ねたところ。赤い線が実験値とモデル値との差

 このとき実験値とモデル式の値との差(図の赤線部分)の合計が最も小さくなるようなA、B、Cの組み合わせを見つければそれが近似式になるわけだ。ただし近似値が実験値の上に出るか下に出るかで差の値は正数になったり負数になったりするので単に合計しただけだと変なことになる。だから全部正数になるように差を二乗してから合計して、この合計値が最小になるA、B、Cの組み合わせを見つけよう。ということになる。

 差の二乗和を求める式を立てて最小値を求めればいいんだが、そのためには式を微分して・・・と考えると考えるだけでイヤになる。ていうかできない、オレ。そんなときはパソコンにやってもらうのが一番。何を隠そうパソコンは電子計算機なのだからな。しかも普及率が高いEXCELを使う方法を覚えておけばどこに就職してもOKだ。

 まずA列に独立変数(X)、B列に従属変数(Y)を入力する。次に近似式で使う定数をどこか適当なセルに用意する。この例では指数関数で近似しようとしているので、A、B、Cの3つを用意する。

実験データと、モデル式で使う定数を用意する

 次にC列に、A列の値と定数を使って指数関数を計算する列を作る。

近似式を計算する列を作る

 D列にB列とC列の差の2乗を計算する。最後にD列の合計値を求めるセルを用意する。これで準備完了。

差の二乗を求める列を作る。その合計値を求めるセルも作る。

 試しにA, B, Cの定数を適当にいじってみる。当たり前だけど、セルの値を変えればモデル式の計算結果が変わるので差の二乗和も変化する。

定数を入れているセルの数字を変えると差の二乗和が変化する(クリックすると拡大)

 ということなのであとはA, B, Cの値を手当り次第に変化させて差の二乗和が最小になる組み合わせを見つけ出せばいいんだが、その気が遠くなるような作業をEXCELに自動的にやってもらおうというわけだ。

 使うのはEXCELの「ソルバー」という機能。ソルバーは、あらかじめ指定したセルの値を変化させて、特定のセルの値が設定した目標になるような値を見つけてくれる機能です。経営の最適化シミュレーションなどで使われるものですが、最小二乗法にも使えます。Windows版のEXCELに標準で搭載されている機能ですが初期状態では隠されているので、まずはソルバー機能を有効化する必要があります。方法はマイクロソフト社のオフィス製品ヘルプのページに書いてあります。EXCEL2007の場合はココ

 ちなみにMac版EXCELにはソルバー機能がついてない。なんでだっ!! 私はMacユーザだ。そんなカワウソなMacユーザには「Solver for Microsoft Excel 2008」。独立したソフトだがEXCELと連動してソルバー機能を提供してくれる。ありがたいことに無料。ダウンロードはhttp://www.solver.com/mac/からどうぞ。ということでMacユーザな私はここからSolver for Microsoft Excel 2008を使って説明するけど、Windows版EXCEL内蔵のソルバーも見た目も機能もほぼ同じなのでたぶんわかると思う。

話が長くなったので続きは明日。