読者です 読者をやめる 読者になる 読者になる

The Nameless City

何故か製薬やSAS関連のブログ、の予定。

p値はnに影響を受けるものなので。

b.hatena.ne.jp
で、ブコメでもちょっとコメントしてますが。

このサンプルサイズでは、検定をしても仕方がない。

まあ、A/Bでそれぞれn=10000みたいな状況の場合には、統計手法の選択もクソもなく、ほぼほぼ元々の母集団での比率に差があればpは0に近くなります。
計算するだけ時間の無駄です。比率出して比較すればいいだけです。


ちなみに、SASのコードで書くとこんな感じですが。

data test ;
	attrib pattern length=$1. ;
	attrib cv length=8 ;
	attrib imp length=8 ;
	input pattern cv imp ;
	cards ;
a 30097 100399
b 28901 99896
; run ;

data test2 ;
	set test ;
	attrib event length=$4. ;
	attrib uu length=8 ;
	event = 'cv' ;
	uu = cv ;
	output ;
	event = 'miss' ;
	uu = imp-cv ;
	output ;
run ;

proc freq data=test2 ;
	table pattern * event /cmh ;
	weight uu ;
quit ;
                                    FREQ プロシジャ

                                 表 : pattern * event

                       pattern        event

                       度数          |
                       パーセント    |
                       行のパーセント|
                       列のパーセント|cv      |miss    |   合計
                       --------------+--------+--------+
                       a             |  30097 |  70302 | 100399
                                     |  15.03 |  35.10 |  50.13
                                     |  29.98 |  70.02 |
                                     |  51.01 |  49.75 |
                       --------------+--------+--------+
                       b             |  28901 |  70995 |  99896
                                     |  14.43 |  35.45 |  49.87
                                     |  28.93 |  71.07 |
                                     |  48.99 |  50.25 |
                       --------------+--------+--------+
                       合計             58998   141297   200295
                                        29.46    70.54   100.00


                             pattern * event の要約統計量

               Cochran-Mantel-Haenszel 統計量 (テーブルスコアに基づく)

           統計量    対立仮説                  自由度          値      p 値
           ----------------------------------------------------------------
             1       相関統計量                     1     26.3809    <.0001
             2       ANOVA 統計量                   1     26.3809    <.0001
             3       一般関連統計量                 1     26.3809    <.0001


                               共通オッズ比と相対リスク

    統計量               手法                       値                95% 信頼限界
    ------------------------------------------------------------------------------
    オッズ比             Mantel-Haenszel        1.0516        1.0316        1.0721
                         ロジット               1.0516        1.0316        1.0721

    相対リスク (列 1)    Mantel-Haenszel        1.0362        1.0222        1.0503
                         ロジット               1.0362        1.0222        1.0503

    相対リスク (列 2)    Mantel-Haenszel        0.9853        0.9797        0.9909
                         ロジット               0.9853        0.9797        0.9909


                               標本サイズの合計 = 200295

このモデルをそのまんま使って、ただし、

a 30097 100399
b 28901 99896

a 30 100
b 29 100

a 300 1004
b 289 999

で同じように検定してみましょう。
(見ればわかると思いますが、サンプルサイズを元の千分の一、百分の一という感じにしてます)

                                  FREQ プロシジャ

                               表 : pattern * event

                     pattern        event

                     度数          |
                     パーセント    |
                     行のパーセント|
                     列のパーセント|cv      |miss    |   合計
                     --------------+--------+--------+
                     a             |     30 |     70 |    100
                                   |  15.00 |  35.00 |  50.00
                                   |  30.00 |  70.00 |
                                   |  50.85 |  49.65 |
                     --------------+--------+--------+
                     b             |     29 |     71 |    100
                                   |  14.50 |  35.50 |  50.00
                                   |  29.00 |  71.00 |
                                   |  49.15 |  50.35 |
                     --------------+--------+--------+
                     合計                59      141      200
                                      29.50    70.50   100.00


                           pattern * event の要約統計量

             Cochran-Mantel-Haenszel 統計量 (テーブルスコアに基づく)

         統計量    対立仮説                  自由度          値      p 値
         ----------------------------------------------------------------
           1       相関統計量                     1      0.0239    0.8771
           2       ANOVA 統計量                   1      0.0239    0.8771
           3       一般関連統計量                 1      0.0239    0.8771


                             共通オッズ比と相対リスク

  統計量               手法                       値                95% 信頼限界
  ------------------------------------------------------------------------------
  オッズ比             Mantel-Haenszel        1.0493        0.5713        1.9270
                       ロジット               1.0493        0.5713        1.9270

  相対リスク (列 1)    Mantel-Haenszel        1.0345        0.6739        1.5880
                       ロジット               1.0345        0.6739        1.5880

  相対リスク (列 2)    Mantel-Haenszel        0.9859        0.8241        1.1795
                       ロジット               0.9859        0.8241        1.1795


                              標本サイズの合計 = 200
                                    FREQ プロシジャ

                                 表 : pattern * event

                       pattern        event

                       度数          |
                       パーセント    |
                       行のパーセント|
                       列のパーセント|cv      |miss    |   合計
                       --------------+--------+--------+
                       a             |    300 |    704 |   1004
                                     |  14.98 |  35.15 |  50.12
                                     |  29.88 |  70.12 |
                                     |  50.93 |  49.79 |
                       --------------+--------+--------+
                       b             |    289 |    710 |    999
                                     |  14.43 |  35.45 |  49.88
                                     |  28.93 |  71.07 |
                                     |  49.07 |  50.21 |
                       --------------+--------+--------+
                       合計               589     1414     2003
                                        29.41    70.59   100.00


                             pattern * event の要約統計量

               Cochran-Mantel-Haenszel 統計量 (テーブルスコアに基づく)

           統計量    対立仮説                  自由度          値      p 値
           ----------------------------------------------------------------
             1       相関統計量                     1      0.2183    0.6403
             2       ANOVA 統計量                   1      0.2183    0.6403
             3       一般関連統計量                 1      0.2183    0.6403


                               共通オッズ比と相対リスク

    統計量               手法                       値                95% 信頼限界
    ------------------------------------------------------------------------------
    オッズ比             Mantel-Haenszel        1.0469        0.8638        1.2688
                         ロジット               1.0469        0.8638        1.2688

    相対リスク (列 1)    Mantel-Haenszel        1.0329        0.9018        1.1831
                         ロジット               1.0329        0.9018        1.1831

    相対リスク (列 2)    Mantel-Haenszel        0.9866        0.9324        1.0440
                         ロジット               0.9866        0.9324        1.0440


                                標本サイズの合計 = 2003

という感じで、「同傾向のデータでも増やすとより有意を見つけやすくなります」。


元の話に戻って考えてみればいいのですが、

  • 「Aだと10万人来てコンバージョンしてくれた(?)のが3万人」
  • 「Bだと10万人来てコンバージョンしてくれた(?)のが2万9千人」

というぐらいな話なのです。
この3万/10万と2万9千/10万で表されるような「サンプルでの比率」は「母集団の比率の推定値」になるわけなんですが、そうした時に「母集団でも確かにこの比率の差が発生する」という事を仮説として考え、その対立仮説「母集団ではこの比率の差がない」の確率を求めているというのがこのp値です。
まあ、例えば「想定される母集団が例えば10万人程度だったら」、ほぼ全例調査なわけで、そりゃその1千人の差は確かでしょうし、

  • 「Aだと100人来てコンバージョンしてくれた(?)のが30人」
  • 「Bだと100人来てコンバージョンしてくれた(?)のが29人」

だと、先ほどの話よりもサンプルが偶然そうなってただけの可能性があるわけです。


そもそもこんな例数で検定かけるとかwというものです。

連続性の補正。

"2-sample test for equality of proportions with continuity correction" は 2 郡の比率が等しいかどうかを検定したことを意味しています。その際、連続性の補正 (continuity correction) を行った旨が表示されていますが、連続性の補正の有無で経営判断が変わるほど結果に影響を及ぼすことはまずないと思われるので気にしなくて大丈夫です。

A/B テストで施策の効果を検証!エンジニアのための R 入門 - クックパッド開発者ブログ

連続性の補正というのは、カイ二乗検定は、この分布が連続した関数であるカイ二乗分布に従うという仮定で行うのですが、実際には人が0.1人とかそんな分離の仕方しないので、その補正の為に行うものです。
で。
これだけ例数が多いと、一人程度での不連続はあんま意識しなくていいので補正は入れなくてもいいでしょう。


そこら辺の丁寧な説明は
Fisherの正確検定かカイ2乗検定か
とかにあります。
ちなみに、他によく使うのは青木先生の所とか。


経営判断が変わるほど結果に影響を及ぼすことはまずないと思われる」は、サンプルサイズが小さい時には可能性としてありますが、サンプルサイズが小さい時には、二項検定使うでしょうね。
というか、A/Bテストの結果が経営判断に直結するというのは、そもそも会社の経営として頭がおかしだけという話もありますが。

CVRが30%とか言っている時に、1%の差は意味があるんだろうか。

という事を考えた方がいいです。逆に、「どれぐらいの差があった時に検出できるようにするか」という事を検討していった方がいいでしょう。
A/Bテストを「した方がいいのか」というのも、一つの判断になります。

余談。

このあたりの人に、たまにあるのですが、CVRの足し算引き算して前後比較するのに躊躇いがない人がたくさんいます。
一見正しそうですが、サンプルサイズおんなじだった?とかそういう情報ガスガス落としたスライド見る事も多いです。


また、1回のテストでは、どうしてもそれに紛れ込んでくる影響が気になります。タイミングの影響がそこはかとなく存在したりする場合もあるわけですよ。そういうすべての要因を考慮するのは難しいのですが、

  • 理想の条件でテストすれば、実態に合わないテストになる
  • 実態に合わせてテストすると、どうしても沢山の要因を考えないといけない

という二律背反な所があります。
1%ぐらいのCVRなら、幾らテストで高い評価を得てたとしても、おそらくどんなユーザに届いたかとかの方が影響が大きく、そこに金をかけるのは効果的ではない、というような感じですね。


まああと、A/Bテストとかで画面考えてくのって、どちらかと言うとメンテナンスモードの改修で使えるか、ぐらいですねえ本当は。
サイトの成長期なら、テストで出てくる確率ほどの信頼性は当然ないです。検定とかではあくまでテストの対立・帰無仮説を包む大きな仮説が成り立つ時、使えるというものだったりするので。