ご挨拶
はじめまして。
このブログで初登場となります、エンジニアのaranです。
今年の1月よりアスタミューゼにジョインしました。
どうぞよろしくお願いします。
ここ4ヶ月間ぐらい、水素水にハマっていましたが
水素水生成機のフィルタ交換作業にちょっとだけ疲れ
次なる健康食品を探しています。
体にいい健康食品などありましたら、是非教えて下さい。
それでは、はじめさせて頂きます
前書き
先月、お世話になっている方とお会いした際に
アンケートから顧客の好みを視覚化できないかなぁ?
って悩んでいたので
コレスポンデンス分析ならできるかもって安易に答えたら
「じゃ、よろしくね!」って言われ、知らぬ間にやることに。。
言ったことをほんの少しだけ後悔しつつも
対応した内容を今回のブログにまとめました。
コレスポンデンス分析とは
細かな定義はwikiや各書籍にお任せするとして
クロス集計結果を散布図で視覚化すると分析手法と解釈しています。
大学院時代の恩師には
評価対象な質問の選択肢の関係をわかりやすく可視化し アンケートから顧客の好みを分析する際に使える
と教えて頂きました。
間違えって覚えていたら、ごめんなさい
ここで、ちょっと話が脱線しますが、
コレスポンデンス分析って検索すると対応分析もヒットするので
何が違うの?と思って調べたところ同義語として使われているみたいですね。
今回の実行環境
コレスポンデンス分析は、Windows7 on R言語で試したことはあったのですが
今回はMacBook Pro on Python 3.6で挑戦したいと思います。
因みに.. Pythonは hello worldを書いた程度の初学者です。
では、早速はじめたいと思います。
下準備
コレスポンデンス分析を行うために、
mcaライブラリーを利用します
github.com
このライブラリーはチュートリアル用データも用意されているので
大変・大変便利です!
ありがとうございまーす
まずは、新品のファミコンカセットに息を吹きかける儀式のごとく
mcaライブラリーをインストールしまーす
pip install --user mca
その他 matplotlib、pandasライブラリーも併せてインストールします
pip install matplotlib pip install pandas
データ準備
下準備が終わりましたので
次に分析対象のデータを用意します。
実際にはデータクレンジング等を行いますが
今回は、この部分は割愛させていただき
チュートリアルのデータをそのまま利用します。
https://github.com/esafak/mca/blob/master/data/burgundies.csv
実装
分析できるデータがそろいました。
それでは、コーディングに入りたいと(ドキドキ)
https://github.com/esafak/mca/blob/master/docs/usage.rst
ここのチュートリアルは、サンプルコードも丁寧に書いてありますので
いろいろ試すことができます。
Pythonのお作法に四苦八苦しつつ
チュートリアルにそって、書いたコードをがこちらです
#! /usr/bin/env python # -*- coding:utf-8 -*- import mca import matplotlib.pyplot as plot import pandas as pd cross = pd.read_table('data/burgundies.csv', sep=',', skiprows=1, index_col=0, header=0) mca_counts = mca.MCA(cross) rows = mca_counts.fs_r(N=2) cols = mca_counts.fs_c(N=2) plot.scatter(rows[:,0], rows[:,1], c='b',marker='o') labels = cross.index for label,x,y in zip(labels,rows[:,0],rows[:,1]): plot.annotate(label,xy = (x, y)) plot.scatter(cols[:,0], cols[:,1], c='r',marker='x') labels = cross.columns for label,x,y in zip(labels,cols[:,0],cols[:,1]): plot.annotate(label,xy = (x, y)) plot.show()
サンプルデータを実行するとこんな感じになります。
巨人に肩を乗っかると、ちょっとコード書くだけで
コレスポンデンス分析ができちゃいました。
R言語とは違い
Pythonでのコレスポンデンス分析は
情報量が少なく感じるので敬遠しがちかもしれません。
でも、チュートリアル読めば、Python初心者の私でも使えますので
皆さまも是非利用して、データ分析ライフをエンジョイして下さい。
お願い
最後になりましたが、アスタミューゼでは現在、エンジニア・デザイナーを絶賛募集中です!
興味のある方はぜひ下記バナーからご応募ください!!
参考にしたURL
http://vxy10.github.io/2016/06/10/intro-MCA/
https://qiita.com/nabesaan/items/f88bbacdd4f9217cd802