optimizing aic in questionnaire analysis
DESCRIPTION
TRANSCRIPT
4/19/2014 1
アンケート分析で、AICを自力でstepより改善してみた
@tanimocchi
38th Tokyo.R
4/19/2014 2
自己紹介 Twitter ID: @tanimocchi
(もっちぃ)
数学科出身、博士(情報科学)
所属:タヒにかけ半導体
仕事:マーケティングなのか?
新規事業開拓なのか? 統計解析は必要! だと信じてる
統数研公開講座には時折参加してますので、ご一緒の際は宜しくお願いします。
アンケート設計・分析にも従事 ← 今回はココからネタ作成
ちなみに、Rは第30回のTokyo.Rでインストールしました。
⇒ 今回の資料には、やっとRのコード片(極僅か)が登場します!
38th Tokyo.R
4/19/2014 38th Tokyo.R 3
分析対象アンケートの設問構成概要
4/19/2014 4
アンケートの設問構成 基本的に4象限モデル(のハズ)
38th Tokyo.R
お前誰よ?
展示どうよ?
何使ってんの?
どこで買ってんの?
業種 職種 役職
カテゴリー 展示品
採用中製品 次期採用予定品 採用ポイント
購入ルート 情報収集ルート
4/19/2014 38th Tokyo.R 5
分析のゴール
4/19/2014 6
分析のゴール テレマーケティングや顧客訪問で、
紹介製品の製品購入意思がありそうか否かを、
製品紹介を行う前に、
簡単に確認できるような質問票の作成
38th Tokyo.R
買う 買わない or
⇒ 二項選択モデル
4/19/2014 7
ロジスティック回帰
38th Tokyo.R
http://www.slideshare.net/horihorio/tokyo-r33-logi
4/19/2014 38th Tokyo.R 8
ドメイン知識で頑張る 採用中製品
次期採用予定品 採用ポイント
目的変数はこの中の具体記的製品
4/19/2014 9
目的変数に関係なさげな説明変数 仮定1:紹介対象製品は、誰でも割と容易に購入可能
実際には、そうでない場合もあるので、常に成り立つわけではないんだけど、細かい事は気にしないって事で
仮定2:紹介対象製品は、広い意味で割と知られている 「何ぞこの仮定?」 って思うかもだけど、業界だったら、x86互換
チップといった場合の“x86”が何かは広く知られている、そんな感じ
38th Tokyo.R
採用中製品 次期採用予定品 採用ポイント
∋紹介対象製品
購入ルート 情報収集ルート
× あんま関係ないでしょ……多分w
4/19/2014 10
説明変数間の多重共線性の排除 「展示どうよ?」を構成する設問の、「カテゴリー」と「展示品」
それぞれの選択肢は、組合せによって互いに強い相関を持つ
展示品は、いずれかのカテゴリーに属するため
⇒ 「カテゴリー」と「展示品」の選択肢を、かぶらない
ように回帰モデルをそれぞれ作成し、比較
38th Tokyo.R
採用中製品 次期採用予定品 採用ポイント
∋紹介対象製品
カテゴリー 展示品
カテゴリー 展示品
それぞれのモデルを作成
4/19/2014 11
隠れ因子:疑似相関変数の排除 「お前誰よ?」と「紹介対象製品」の隠れ因子は「展示会どう
よ?」。つまり「カテゴリー」とか「展示品」とか。
業種や職種で、興味対象だいたい決まるでしょ。
多くの場合、展示会には調査目的で来てるんだし。
⇒ 「お前誰よ?」の選択肢を説明変数から排除
38th Tokyo.R
採用中製品 次期採用予定品 採用ポイント
∋紹介対象製品
業種 職種 役職
カテゴリー 展示品
隠れ因子
4/19/2014 12
目的変数に関係ありそうな説明変数 「採用ポイント」はもちろん関係
「採用中製品」も、選択の結果で、選択傾向を表す変数だと考えれば、もちろん関係
これまでのスライドで、互いに排他として扱う必要はあるが、「カテゴリー」と「展示品」も関係
38th Tokyo.R
採用中製品 次期採用予定品 採用ポイント
∋紹介対象製品
カテゴリー 展示品
カテゴリー 展示品
それぞれのモデルを作成
採用中製品 次期採用予定品 採用ポイント
4/19/2014 38th Tokyo.R 13
Stepで突撃!
4/19/2014 14
有意確率に着目してStep繰返し実行 有意確率が10%以下の変数だけからなるモデルが得られる
まで、変数指定を実施しながら、Stepを実施。 前処理で、csvファイルを関係する変数だけのものに修正
R内部で処理するとしんどいので、変数選択とかはスクリプト(awkとかsedとかgrepとかそんなんで)で適当に実施し、Rコマンドを生成
38th Tokyo.R
ほげほげ <- read.csv("ファイル名.csv", header=TRUE) ほげほげ.glm <- glm(formula = 紹介対象製品名~,data=ほげほげ, family=binomial) sink(“ほげほげ.txt") print(summary(ほげほげ.glm)) print(extractAIC(ほげほげ.glm)) # # ここで一旦途絶えて、“ほげほげ.txt”をスクリプトで処理していたり…… # ほげほげ.glm <- glm(formula = 紹介対象製品名~ 生き残った変数1+生き残った変数2 +……,data=ほげほげ, family=binomial) sink(“ほげほげ2.txt") ほげほげ.glm2 <- step(ほげほげ.glm) print(summary(ほげほげ.glm2))
4/19/2014 15
まぁこれ、アカンやつですよね
説明変数に、「採用中製品」しかない! とはいえ、他の紹介対象製品での結果含めて眺めてみると、並んだ
製品名は、「確かに移りたいかもなぁ」とか「それ使ってたら移りたくないよねぇ」とか思えるようなものではあった。
「カテゴリー」または「展示品(製品の使い様)」が無いのは寂しい! ⇒ AICを改善するバッチリな変数追加がしたい! 「採用のポイント」、実は有意な相関が見られないって、設問間の全2
×2クロス表の分析や市場特性から、事前に分かっていたり…… 38th Tokyo.R
Estimate Std. Error z value Pr(>|z|) (Intercept) -3.2524 0.1125 -28.919 < 2e-16 *** 採用中製品1 2.7092 0.1694 15.998 < 2e-16 *** 採用中製品2 1.3652 0.2004 6.813 9.56e-12 *** 採用中製品3 0.5151 0.2274 2.265 0.0235 * AIC: 1135.3
4/19/2014 38th Tokyo.R 16
モデルに気合でドメイン知識を反映させる
4/19/2014 17
初期変数選択ヒューリスティックス 目的変数と説明変数の全組合せを構成し、夫々の組合せに
対して、有意確率が10%以下の変数を選択。 (紹介対象製品、展示品)
(紹介対象製品、採用中製品)
(紹介対象製品、採用ポイント)
(紹介対象製品、展示品、採用中製品)
(紹介対象製品、展示品、採用ポイント)
(紹介対象製品、展示品、採用中製品、採用ポイント)
上記で選択した変数全体を、改めて説明変数と定義。
(先と同様)有意確率が10%以下の変数だけからなるモデルが得られるまで、変数指定を実施しながら、Stepを実施。
38th Tokyo.R
4/19/2014 18
結果:他の変数はそのまま同じで改善
38th Tokyo.R
Estimate Std. Error z value Pr(>|z|) (Intercept) -3.2524 0.1125 -28.919 < 2e-16 *** 採用中製品1 2.7092 0.1694 15.998 < 2e-16 *** 採用中製品2 1.3652 0.2004 6.813 9.56e-12 *** 採用中製品3 0.5151 0.2274 2.265 0.0235 * AIC: 1135.3
Estimate Std. Error z value Pr(>|z|) (Intercept) -3.3674 0.1307 -25.757 < 2e-16 *** 採用中製品1 2.6983 0.1698 15.895 < 2e-16 *** 採用中製品2 1.3925 0.2020 6.894 5.42e-12 *** 採用中製品3 0.5172 0.2277 2.271 0.0231 * カテゴリーX 0.3182 0.1680 1.894 0.0582 . AIC: 1133.8 紹介対象製品が属するカテゴリー
4/19/2014 19
まとめ 設問間の多重共線性や隠れ因子を、最初から考慮してアン
ケートを設計し、そのドメイン知識を最初の変数選択で利用。
初期設定で与える変数群に、更にドメイン知識を反映させるべく、可能な(目的変数、説明変数)の組合せを全て列挙し、有意確率が10%以下となる変数を選択。
これら改善で、「カテゴリー」または「展示品(製品の使い様)」のどちらかのモデルでは、紹介対象製品に対応する適切な選択肢が説明変数として自動選択された。 とはいえ、設問間の全2×2クロス表の構成と、その可視化(Barch
artなど)での事前分析は、実は大事
但し、今回の手法はヒューリスティックスなので、「当たるも八卦、当たらぬも八卦」である事に注意。
38th Tokyo.R
4/19/2014 38th Tokyo.R 20
Thanks a lot!