※弊社代表の独断と偏見です。
コンジョイント分析を試してみた(まずはR編)
今回のテーマ
今回は、「コンジョイント分析」を試してみたいと思います。
コンジョイント分析とは、商品やサービスを開発する際に、その商品やサービスを構成するスペックの最適な組み合わせをシュミレーションする手法です。
今回、例として、ECサイトプラットフォームのバックヤードで特に好まれる「○○分析」の最適な組み合わせを探るため、このコンジョイント分析を使ってシュミレーションできるかを検証してみたいと思います。
なお、本件で扱うアンケート結果は完全ダミーですのでご注意ください。
手順
1. 組み合わせパターンは直交表を使う
2. 分析スペックを検討する
3. 直交表をCSV化する
4. 水準表をCSV化する
5. アンケート結果を加工してCSV化する
6. コンジョイント分析する
7. セグメント別のコンジョイント分析する
1.組み合わせパターンは直交表を使う
まず最初にやることは、分析スペックの組み合わせ数を検討します。
この組み合わせ数を検討するために、直交表を用います。
直交表とは
与えらえた複数因子の全水準を組み合わせなくても、各因子の効果が独立して評価できる組み合わせの表
要するに、全パターン網羅してアンケートする必要はない、ということです。
直交表には、以下のような種類があります。
L4直交表 3属性 4行
L8直交表 7属性 8行
L9直交表 4属性 9行
L16直交表 15属性 16行
L18直交表 8属性 18行
今回は、4属性各3水準のL9直交表を利用したいと思います。
*各水準=各属性の選択要素数
2.分析スペックを検討する
今回は、アンケートに使う分析スペックを下記の通り、検討してみました。
これらの分析スペックがECパッケージに標準装備された場合、どのモデルを使いたいか?
この答えを導くための前提となります。
3.直交表をCSV化する
tyokohyo.csv
この分析スペック表を、L9直交表へ割り当てます。
割り当てについては、今回、Rを使って実施いたします。
Rへのコマンドは下記の通りです
① install.packages(“conjoint”) #パッケージのインストール
② library(conjoint) #パッケージの呼び出し
③ experiment<-expand.grid(顧客分析=c(“RFM”,”コホート”,”LTV”),商品分析=c(“ABC分析”,”バスケット分析”,”キャンペーン分析”),ニーズ分析=c(“因子分析”,”主成分分析”,”クラスター分析”),商品開発=c(“コンジョイント分析”,”ポジショニング分析”,”ポートフォリオ分析”))
④ design.ort <- caFactorialDesign(data=experiment,type=”orthogonal”);
⑤ design.ort;
◆R出力結果をコピーしてexcelで加工した直交表が下記です
◆割り当てが終わりましたら、下記コマンドで相関性がないことを必ず確認してください。
> cor(caEncodedDesign(design.ort))
相関がない = 自己参照以外の数値が0であること
相関がある場合、”直交表が崩れた”といい、データに偏りが出ます。
注意してください。
特に、直交表を崩して割り当てる場合に起こりやすいです。
直交表自体は、崩して使っても問題はありませんので、その場合、必ずこのチェックをしてください。
◆水準のラベルをもとに、対応するコード値へ変換する
◆CSV化する(tyokohyo.csv)
4.水準表をCSV化する
levels_name.csv
先ほどの水準表もCSV化しておきます。
levels_name.csv
列が1つだけですので、特にカンマで区切る必要はありません。
5.アンケート結果を加工してCSV化する
kaitoukekka.csv
アンケート結果フォーマットは下記の通りです。
全体回答は、80名です。
◆下記の通り、変換しました。
性別→Sex 男性:1, 女性:2
年齢→Age 〜10代:1, 20代:2, 30代:3, 40代:4, 50代:5, 60代〜:6
興味なし→0、どちらともいえない→5, 興味あり→10 の3段階で引き直し
◆CSV化する
kaitoukekka.csv
6.コンジョイント分析する
csv<-read.csv(“/Users/toshiya.murayama.web-kaizen/Desktop/conj/kaitoukekka.csv”,header=TRUE);
> csv_all<-csv[,-c(1:3)]; #列1-3を読まない
> L9<-read.csv(“/Users/toshiya.murayama.web-kaizen/Desktop/conj/tyokohyo.csv”,header=TRUE);
> L9<-L9[,-1]; #列1を読まない
> attr<-read.csv(“/Users/toshiya.murayama.web-kaizen/Desktop/conj/levels_name.csv”,header=TRUE);
> Conjoint(csv_all,L9,attr);title(main=”Importance of Factors(all data)”);
◆結果確認
Factors自体はそこまで大きな差はなかったです。
ニーズ分析が少し突き出ている程度。また、商品開発がやや低い程度。
◆各スペックを確認
顧客分析 :コホート分析が好まれている
商品分析 :ABC分析が好まれている
ニーズ分析:クラスター分析が好まれている
商品開発 :コンジョイント分析が好まれている
好まれているスペックを組み合わせるのがベストといえそうです。
7.セグメント別のコンジョイント分析する
性別で分析をしてみました。
> sexs = c(“Male”, “Female”)
> for (i in 1:max(csv$Sex)) {
+ csv_p <- subset(csv, Sex==i)
+ csv_p <- csv_p[,-c(1:3)]
+ Conjoint(csv_p, L9, attr)
+ titleName = paste(“Importance of Factors (“, sexs[i], “)”)
+ title(main=titleName)
+ Sys.sleep(5) #Stop program for 5 seconds
+ }
◆Factors 男性はニーズ分析、女性は商品分析がやや比率が高め。
男性のニーズ分析では、クラスター分析を要望していた。
女性の商品分析では、キャンペーン分析を要望していた。
*左側パネルが男性、右側が女性です。
*ECパッケージに関しては、商品開発と違い、性別でのセグメント検証は、現実的にあまり意義はないです。
まとめ
今回は、コンジョイント分析を試してみました。
商品開発やサービスの組み合わせだけでなく、ECサイトのスペックニーズの発掘にも役立ちます。
Rを利用すれば、今回のように、それほど悩まずに結果を出せるのではないでしょうか。
ポイントは、直交表と、アンケート実施でしょうか。
これを参照していただき、みなさまもぜひ、これらのニーズ発掘に役立ててみてください!
文責)村山敏也 監修)なし
今回の参照サイト)http://nakhirot.hatenablog.com/entry/20161008/1475860482