2013年12月12日木曜日

エクセルで重回帰分析した時にでてくる表について

重回帰分析はエクセルでできちゃうし、使い勝手が良くて
便利ですけど、分析結果ってイマイチわかんないですよね。

謎に表が3つも出てくるし、何を見たらいいかわかんないし。。

ということで、3つの表の役割をお伝えしながら、
数字を読み解く上で重要なポイントをお伝えします。

まず本題に入る前に・・・使用するデータについて

Rに入っているirisデータを使います。
これは、花びらとがくの大きさと種子の種類のデータで、
Rで「data(iris);iris」とコマンドを打つと出てきます。

種子の種類のデータは文字で入っているので、
ダミー変数化(0、1の変数)にしてあります。

※文字データを数値のデータに変換するのを
 ダミー変数化といったり、フラグを立てると
 いったりします。

分析方法

エクセルの分析ツールを使用します。
今回はYをSepal.Length、XをSepal.Lengthとverginicaを除くすべてのデータとしています。

念のため、図をはっておきます。


本題、謎の3つの表について

表ごとに解説します。
なお、こちらの表は、上記のirisデータを実際にエクセルで重回帰した結果です。


■1番目の表



この表では、おおまかに重回帰式の当てはまりの良さを把握できます。


「重相関 R」 「重決定 R2」は回帰式の当てはまりの良さを読み取ることができます。
1に近づくほど、当てはまりがいいと言われています。

この表で一番重要なのは「補正 R2」です。
これも、おなじく1に近い数字になるほど、当てはまりの言い回帰式と言えます。
「補正 R2」の利点は、説明変数の数を考慮して、あてはまりの良さを算出してくれる点です。
複数の重回帰式を出して、どれがいいかとモデルの比較をするときは、
この「補正 R2」で比較しておくと問題ないです。

もっと説明すると、
「重決定 R2」は、説明変数の数を増やすと自ずと増えます。
説明変数(Xの列の数)が増える分、関節が増えるの同じで、
関節が無数にある蛇のように、くねくねと目的変数(Y)に当てはまるように、
回帰式も対応していきます。
そのため、説明変数の数を考慮して、モデルの比較をする必要があります。


■2番目の表


この表は、重回帰式の信頼度を把握するものです。

もっというと、この表の意味は、
「回帰式のすべての係数が、0では無いかどうか」
を検証するための参考材料になります。

この表で一番重要なのは、一番右にある「有意F」です。

「回帰式のすべての係数が、0でありそうな」確率を表しています。
だいたい、5%未満(0.05未満)だったら、統計的に
「回帰式のすべての係数が、0では無い」と言えます。

有意Fが0に近ければ、近いほど、回帰式の信頼性は高いと言えます。

※とはいえ、有意Fが0.1だったら、重回帰式は無意味なのかといえば、
 そうでは無いので、あまり気にしなくていい表です。
 

■3番目の表



この表は重回帰式の係数を評価するものです。


最も重要なのは、「係数」と「P-値」です。
結論、この表は「P-値」が5%以下の係数にしぼってみる。
それで、正しい数字の読み取りができます。

長くなりますが、説明します。。。

まず、係数ですが、
値が大きいほどYに与えるインパクトが大きいことが読み取れます。

一方「P-値」は、係数の信頼性をはかるものです。
厳密にいうと、「該当の係数が0でない」であろう確率を表します。
これを意訳すると
「Yの変動要因になっているかいないか」を判断するものです。
なので、「P-値」はだいたい5%未満だと、該当の変数を重回帰式に適用しても良いと
読み取ることができます。


上記の2番目の表と同様に、5%未満だと、
統計的に「該当の係数が0でない」ということが言えます。

もっと説明すると、表の右から4番目と3番目に
下限95%、上限95%とありますが、
これは95%の確率で係数が取りうる限界値です。

実際、重回帰分析を他のデータでも、いくつか試してみると、
P値が5%以下の変数は上限と下限の間に0を含まず、
逆に5%以上の変数は上限と下限の間に0を含むことを確認できるかと思います。


※蛇足
 図の右端(右から2番目と1番目)にも下限95%、上限95%が
 ありますが、右から4番目と3番目と同じものです。
 実は、エクセルの重回帰分析を行う際にでてくる、
 ポップアップにカスタムで、上限・下限値を出せるものがあります。
 カスタム部分のデフォルトが95%になっているので、
 重複しているのですが、出すときは、99%にするとスマートかもしれないですね。

 赤枠の部分がそうです。


 念のため、どこのところを言っているのかも記しておきます。

 

まとめ

①表:当てはまりを見る
②表:回帰式の信頼性を確認する
③表:係数の値と信頼性を確認する

以上が、エクセルの重回帰分析で出てくる謎の3表の読み取り方です。

今回は、でてきたものの読み取り方の説明をしています。
実際に重回帰式をどうやってつくったら良いか?
とか、2番目の表などの分散分析表のちゃんとした使い方とかは、
多くの統計学の本に書いてあるので、参考にしてみて下さい。

※ ②表とか、③表の説明で信頼性を確認という言葉を使っていますが、
   統計学で言う信頼性はまた別の意味を含んでいる可能性があるので、
   厳密にこの記事を参考にはしないでください!
   あくまでも、エクセルの表の見方の参考情報としてご活用ください!


2013年12月4日水曜日

ワンランク上のABテストの検証〜統計を使ってLPを評価する〜 その2

前回の記事の最後で触れていますが F検定は分散を分析するものです。 

で、F検定で何をみるかといいますと、 ABテスト場合では、
 「日ごとのCV数の揺れの大きさ」と 「誤差の揺れの大きさ」を比較します。

 「日ごとのCV数の揺れの大きさ」 < 「誤差の揺れの大きさ」 と検出されたときは、【ABテストの結果に違いはなし】という結果に。 

一方、 「日ごとのCV数の揺れの大きさ」 > 「誤差の揺れの大きさ」 と検出されたときは、【ABテストの結果に違いがあり】という結果になります。

 これがF検定をやって分かることです。
なお、後者の場合が、統計学の教科書によく乗っている 「帰無仮説が棄却されて、対立仮説を採用する。」という話です。 

※数学的な話(結果だけ知りたいという方は読み飛ばしてください)

この大きさをどうやって判断するのかというと、 F分布の値を使って出します。 「日ごとのCV数の揺れの大きさ(分散)」 ÷ 「誤差の揺れの大きさ(分散)」  がF値です。

この値が大きいければ、大きいほど 「日ごとのCV数の揺れの大きさ」が大きいということなので、 【ABテストの結果に違いがあり】という結果が導かれます。

その基準となるのが、F分布になります。 それで、検定をやって注意しなければならないのは、 AとBの優劣はまだわかっていないという点です。

 優劣を判断するには「推定」という分析でみます。 

まとめると  
・F検定は、【違いがある】か【違いを無いか】をみる。  
・Aが優れているか?Bが優れているか?を見るには推定をおこなう。 

という点です。

次回は推定について触れます。 エクセルのシートはまだ先になりそうです。。

2013年10月21日月曜日

ワンランク上のABテストの検証〜統計を使ってLPを評価する〜

ABテストでLPを評価するときに、CV数やCVRなどの指標をもとに
大小関係で比較するのが一般的です。

たとえば、流入数がサイトAもサイトBも同じという条件のもとで、
一週間のCVの合計がサイトAで50、サイトBで53だった時

------------
サイトAのCV数:50  <  サイトBのCV数:53
なので
サイトBの方が効率的!
-------------

と、するレポートを見る機会が多いと思いますが
本当にサイトBが効率的なサイトと言えるのでしょうか?

そんな時は検定をつかって、
統計的にBが効率的かどうかを検証しましょう。

カイ2乗検定で、比較する方法はたくさん記事があるみたいなので、
今回は、F検定で比較する方法について考えてみたいと思います

で、F検定とは分散を比較する検定です!

#補足1#
分散て?→データの散らばり具合を表す指標です。
分散が0の分布はひとつの値に集中している分布です。
それに対して、分散が大きくなると、大きくなだらかな
分布を形成します。

#補足2#
分布って?→ヒストグラムのことです。
データを集めて、集計をすると、
山なりのヒストグラムができます。
これを分布といいます。

で、

F検定をすると何がわかるかというと、
2つの分布に分散の違いが有るか無いかをはっきりさせられます

もっというと

分散の違いをはっきりさせられると何がいいかというと、
誤差以外の”何らかの変動要因がある”ということがわかります

なので、今回の場合、
サイトAとサイトBのCV数をもとにF検定を行うと、
どちらかにCV数を向上させる(減少させる)要因が存在しているかどうかが分かります。

具体的にエクセルでやる方法については、また後日記載します!

#
実は、F検定では分散の違いしかみれません。
どっちが優れているか(=CV数を多く獲得できているか)を見るには
区間推定という分析が必要となります。

これも後日記載します!

2013年9月24日火曜日

因子分析とクラスター分析のやり方~分析報告書作りのポイントもあわせて~

最近は、SASとか難しい記事が多くなっていたので志向を変えて。。
今回は報告書の作り方というか、ポイントをメモしておきます。
報告書を作る作業が減ったもので、忘れそうということもあり。。

で、本題に。。
リンク先PDFの大広さんの資料は報告書のポイントが詰まっていると関心してしまいました。。

「スマート主婦」調査分析レポート
http://www.daiko.co.jp/ja/portfolio/database/life_report/report_130212.pdf
http://daikodmsoken.jp/wp-content/uploads/2013/02/reserch_vol2.pdf
https://www.daiko.co.jp/dwp/wp-content/uploads/2014/02/report_130212.pdf

リンク先のレポートを参考にしてしまえば、
調査報告書を、マーケターとして一人前にかけてしまうと思われるくらい
参考になるかと思います。

PDFに詰まっている報告書のポイントと
あわせて、因子分析→クラスター分析のやり方も簡単に解説します。

<以下解説>--------------------------------------------

リンク先PDFと対応させてご覧いただければと思います。

■2P<はじめに>
・背景
・課題
を記して、報告書が何に役立つかを提示します。

■3P<調査概要>
・調査目的
・調査概要
を記して、報告書(調査)で何をやったを提示します。

■4P~7P<サマリー>
調査目的に対応する形で、
分析結果を分かりやすくまとめます。

■8P<因子分析>
アンケートデータを因子分析にかけて、
因子を抽出しています。

【因子分析の流れ】

-データ-
このレポートはどんなデータわかりませんが
分析するデータは、だいたい各設問を5段階で評価しているものを使います。

設問例)
問1:果物が好きですか。
1:とてもよくあてはまる 2:だいたいあてはまる、・・・

データ例)
Aさん 問1:3 問2:5
Bさん 問1:1 問2:3

-計算-
で、5段階評価のデータを
SPSSとかで因子分析をかけると、

・固有値
・因子負荷量 ・・・8Pにあるもの
・因子得点

などが出てきます。

-結果の解釈-
計算結果がでてきたら、
まず因子として採用するものを選びます。
選び方は、固有値がだいたい1以上のものか、
累積寄与率が60%以上になる因子までを採用します。

で、採用する因子が決まったら、
因子負荷量を8Pのようにならべます。

※リンク先のPDFでは、
 黄色く記載されているところ以外は空白になっていますね。。
 0なのか、見づさの軽減のためなのかわかりませんが。。

次に因子負荷量をみながら、
それぞれの因子に名前を付けていきます。
だいたい数値が大きいものに○をつけていって、
因子の特徴を理解し、因子の名前をつけます。

この辺りが、マーケターのセンスが光る部分ですね。笑
ただし、特徴が理解できなければ、外してしまってもいいかと思います。
理解できないと、報告書として説明することができないので。。。

■10P<クラスター分析>
因子分析の結果をもとにクラスター分析をして、
クラスターごとの因子得点をレーダーチャートで表しています。

【クラスター分析の流れ】

-因子分析の結果の引き継ぎ-
採用した因子で、
モニターごとの因子得点を計算します。

データ例)
Aさん 因子1:3 因子2:5
Bさん 因子1:4 因子2:1


-クラスター分析の計算-
因子得点が計算できたら、クラスター分析をします。

 出したいクラスターの数が決まっていなければウォード法を、
 決まっていればk-means法を

使えばいいかと思います。

ウォード法をやると、
デンドログラムというトーナメント表のようなグラフが出力され、
クラスターを最小限に細かく分けるパターンから、
最大限にくくってしまうパターンまで表されます。

最初は、ウォード法などでデンドログラムを見ながら
どれくらいにまとめようかと検討するのがいいかと思います。

-クラスター分析の解釈-
で、どこできったらよいかというところは、

 ・デンドログラムの直線が長くなっているところ

がだいたい良いかと。

-クラスターごとの特徴の抽出-
クラスターが抽出できたら、
それぞれの因子得点の平均で比較分析(コメントづけ)を行います。

■12~14P<クロス集計表>
・必ずクロス集計表にはN数を表記する
・N数が30未満の場合には注釈で参考情報であることを表記する
・構成値が極端に多い部分や、少ない部分に着目してコメントする
 (=データの特徴がなるべく浮き彫りになるようにコメントする)

・表頭がSAのときは帯グラフ:12~14P
 (SAというのはシングルアンサーの略です。
 すべての人がダブらないので、帯グラフで表すことができます。
 例えば、年代とかはSAです。年代は1人で2つの値をとることはできません。
 ※サバを読んでるとかはまた別の話です。)

・表頭がMAのときは折れ線(or縦棒):15~17P
 (MAというのはマルチアンサーの略です。
 人によって解答が重複することがあるので、折れ線で表すことが多いです。
 また、15Pのように、見やすさ向上のため多い順に表頭を並べることがあります。)

--------------------------------------------

以上が、因子分析とクラスター分析を使った調査報告書のポイントです。



2013年9月3日火曜日

SASデータセットを高速でRに取り込むときの流れ

前回sas7bdatをRに入れるという記事を作ったのですが、
こんなのがありました。

■Macros communicate SQLite and SAS without ODBC
http://www.sasanalysis.com/2011/05/macros-communicate-sqlite-and-sas.html

SASから、直接SQLiteを吐き出してくれるマクロです。
その逆も出来るみたいですよ。
こんな便利ものを無料で提供してくださるのは本当にありがたいですね。
ということで、SAS(SQLite)→Rと1回で取り込みができちゃいます。

手順は下記の通りです。
※いつもなら、Macなのですが
 SASということでWindows環境下での作業手順です。

0.sqlite3.exeのあるファイルへパスを通す。
 #環境変数でググるとパスの通し方が書いてあります。

1.上記リンク先のマクロを読み込む。
 #sqlite3へのパスが通ってないとちゃんと動作してくれないので注意。

2.データセットを作ってマクロを実行。
 #SASでのマクロの呼び出し方は、こんなかんじかと。
 
 %sas2sqlite(sastable = 【吐き出すデータセット名】, path = 【吐き出す先のパス】, database = 【sqliteデータの名前】)

あとはR側で、RSQLiteパッケージを使って取り出すだけです。

念のため,R側での操作方法を記載しておくと、

 
library(RSQLite)
drv <- dbDriver("SQLite")
con <- dbConnect(drv, dbname="【吐き出す先のパス】/【sqliteデータの名前】")
x <- dbGetQuery(con, "select * from 【吐き出すデータセット名】;")
head(x)  #表示して確認

2013年9月2日月曜日

SASデータセットをRに取り込むときの流れと注意

頻度はそんなに多くないかとおもうのですが、
SASデータセットをRに移す作業をしたのでメモしておきます。

※下記の方法よりも早く取り込む方法があります。
http://daaataaa.blogspot.jp/2013/09/sasr_3.html

■SAS側でのデータ作成について

SASデータセットを作るときに圧縮をかけるのが通常なのですが、
Rに取り込むときに圧縮をかけていると、
読み込みがエラーになるので注意が必要です。

⇒SASにて、データを取り込むときに「compress = no」とオプションをつける!

■R側でのデータ取り込みについて

①パッケージ「sas7bdat」のインストール
とくに注意点なし

②sas7bdatの読み込み
作業効率的に、小さいデータから順に確認しながら取り込みます。
500MBぐらいのデータだと、測ってはいませんが1時間以上はかかります。

#使ったマシンはMacBook Air
 メモリ:4G CPU:Intel Core i5

③データの確認
日本語の変数要素が入っている場合は
文字化けしている可能性があります。

■データのクレンジングについて

すごく効率の悪いやり方なのかもしれませんが、
一回データを取り込んだものをCSVで吐き出して、
シェルで一気にエンコードしました。
#R内での処理<sas7bdatのcsv化>
 

insatall.packages("sas7bdat")
library(sas7bdat)
x <- read.sas7bdat("sample.sas7bdat" )
write.csv(x,"sample.csv")

#シェル(ターミナル)での処理<全角文字のエンコード>
 

nkf -w sample.csv > sample_utf.csv

■クレンジングしたCSVのDB化
sqliteでデータベース化して、Rに取り込みます。
なおCSVを、わざわざSQLにした理由ですが、
管理したりSQLでちょっとした作業をする時用です。
※場合によって、SQL化の作業は省いても問題ないです!
#sqlite3でcsvをデータベース化
 

sqlite3

create tabele sample(rowno,V1,V2,・・・・,Vn);
#Rから吐き出した際に、CSVの最初のカラムに行数が挿入されているので、
#「rowno」+「sas7bdatのカラム」とカラムがひとつ増えることに注意。

.separator ,
.import sample_utf.csv sample

■DBをRに取り込む
このあたりはRwikiが詳しいです。
■おわりに
※まあ、MacBook Airでやるなとか、
 SASデータセットをわざわざRに取り込むなって話ですが、
 どーしても、やむにやまれずにSASデータセットを
 Rで分析するときのための参考情報です。
※そもそも、SASデータセットを圧縮せずに作っている人はごくまれですし。。。
※というよりかは、最初からCSVデータがあるのであれば、
 SASデータセットよりも、CSVデータをもらった方が早いよ。
 という話なのかも知れません。。

2013年8月21日水曜日

無料でソーシャルリスニング(twitter)をする方法 その2

1.特定キーワードのツイートを収集する


「PythonでtwitterのAPIを叩く」と息巻いて書いたのですが、
twitterのAPIの仕様変更が頻繁におこなわれるそうで、
その度にちまちまソースコードを変えるのも煩わしいので、
別の方法はないかと模索しておりました。

で、なんとCSVで検索結果を吐き出してくれる便利なWebサービスがあるみたいです。

「1500ったー」

こちらから、分析したい検索キーワードを引っ張ってきます。

2.ツイートを形態素解析する(MeCabで分解!)

まずMeCabをインストールする必要があります。
インストールする方法は色々とあるのですが、
MacPortsをインストールした上で、
MeCabをインストールするのが便利です。

0.macportのインストール
下記のURLで、インストールの手順が網羅されているかと思われます。

1.MeCabのインストール
流れは下記のとおりです。
  
#MeCabのインストール
sudo port install mecab

#形態素分析用の辞書のダウンロードとインストール
#wgetがインストールされていない場合には、mecabと同様にportからインストールする必要があります。
wget http://iij.dl.sourceforge.jp/naist-jdic/53500/mecab-naist-jdic-0.6.3b-20111013.tar.gz
tar zxf mecab-naist-jdic-0.6.3b-20111013.tar.gz
cd mecab-naist-jdic-0.6.3b-20111013
./configure --with-charset=utf8
make
make install

#形態素分析用の辞書の指定
#emacsが入っていない場合には、mecabと同様にportからインストールする必要があります。
cd /opt/local/etc
sudo emacs mecabrc

#emacsで開いた後に、
#dicdir = /usr/local/lib/mecab/dic/mecab-ipadicを
#dicdir = /usr/local/lib/mecab/dic/mecab-naistに書き換え


※なにも分からずにコピペでやろうとすると、
 支障をきたすおそれがあるので、
 バックアップはしっかりとって調べながら作業してください!

2.日本語の形態素解析

ここまで正常にインストールが完了したら、準備万端です。
MeCabを起動して、日本語を入力すると、
形態素解析ができるようになるかと思わます。


〜その3へ続く〜

2013年8月8日木曜日

データクレンジングの方法 ~awkを使ったデータクレンジング~

以前、SQLとRでクレンジングをするやり方を記事にしました。

ただ、SQLとRも便利なんですが、
awkももっと便利だと気づいたので、メモを残したいと思います。

------
道はそれますが、

分析業務で一番時間をとられるのは、
データのクレンジングだったりするんですけど、
手法について整理された本てあまりないですよね?
システム環境とか、分析のゴールによって
クレンジングの仕方って変わるんで、
まとめるのが難しのが理由なのかもしれませんが。。

いろいろ調べて、「Bad Data」という洋書になんか
書かれているのではないかと思ってるんですけど、
洋書なんですよね。。 英語がんばろ。。

------

で、awkですが
こちらはプログラミング言語スクリプト言語です。
でも、VBAとかPythonよりも簡単につかえます。
なんたってもうエクセル関数を扱うノリでつかえます。
個人的には、Rよりもawkの方が実務向きなのではと思ってしまえます。


1.awkはどうやって使うの?

macを使っている方であれば、ターミナルを起動をすればすぐに使えます。

①ターミナルを起動
 Lanchpadのその他の中にあります。

②コマンドcdを使って、データが入っているディレクトリに移動 
 <コマンド例: cd data/criantA>

③コマンドawkを使って、ファイル「list.csv」の2列目だけのデータを取得       
 <コマンド例: awk '{BEGIN{FS = ","}{print $2}}' list.csv>

上記の3つの操作だけで、簡単にawkを試せてしまうのです。

※分からない方はbash(シェル)の勉強をおすすめします!
※Windosの方はgawkというものをダウンロードすれば使えるようです。

2.awkってなんなの?

データファイルの中身を一行ずつ処理してくれる、プログラミング言語スクリプト言語です。

http://antlers.cis.ibaraki.ac.jp/PROGRAM/CPROG/125.pdf

リンク先PDFの2P目が分かりやすいです。


3.awkの操作方法はどうやるの?

先ほどのように、ターミナルからコマンドを使って処理命令を出します。
具体的な命令の例については下記のURLがとても参考になります。

http://lagendra.s.kanazawa-u.ac.jp/ogurisu/manuals/awk/intro/awk-intro.pdf

※リンク先PDFの4P以降がわかりやすいです。

具体的な説明はリンクまかせになってしまいましたが。。
awkはとても便利ですよというお話をしたかったまでです。

エクセルでは扱えない大きなデータを処理するための
一歩として、確実に身に着けておきたい分析ツールのひとつだと思います!

2013年8月7日水曜日

無料でソーシャルリスニング(twitter)をする方法 その1

ソーシャルリスニングって、
お金をかけずにマーケティングできるので便利ですよね。
効果検証も頑張ってやろうと思っても、
キーワードを引っ張ってきて目でみてポジネガを仕分けるという人力になってしまいがち。

今回は、お金をかけずに
どうにか自動で仕分けできる方法はないかと検討してみたいと思います。

---
1.特定キーワードのツイートを収集する(PythonでtwitterのAPIを叩く!)
2.ツイートを形態素解析する(Mecabで分解!)
3.解析結果をクレンジング(awkでRに取り込める形に!)
4.特定キーワードと一緒にツイートされている言葉を確認する(Rのarulesを使ってグラフ化!)
---

今回の分析は、「特定キーワード」がどのようにつぶやかれていて、
どんな印象をもたれているかを分析することに重きをおいてますね。

やり方については、おいおい書いていきます。

2013年7月26日金曜日

エクセルでできる広告予算の最適化を考える   その3

ここでは仮に3つの数値(Cost、Click、CV)をもとに、
DEAから広告効率を評価をする方法を説明します。

■手順
1.エクセルシートをダウンロード。
2.データを貼り付ける。
3.計算の準備をする。
4.媒体ごとの効率値を求める。
5.効率値から媒体を評価する。

の手順で最適な広告を抽出します。

  
■手順の詳細
1.エクセルシートをダウンロード。
 エクセルのシートをここからダウンロードしてください。


2.データを貼り付ける。

  ・はりつけるところは、オレンジ色の太枠で囲ったところです。
  ・詳しい計算の仕方などは、計算しきをご参照ください。

3.計算の準備をする(ソルバーを設定する。)
 

  ・目的セルは赤字のセルの値。
   なお、目的セルとは最大化(or最小化or特定の値)したい対象の値です。

  ・目的値は「最大化」にチェック。
  
  ・変数セルの変更は、薄いオレンジで塗られている箇所です。
   なお、変更セルは、該当の値を変化させる事によって、
   目的値を最大化させる変数のことです。

  ・制約条件の対象は、上から2表目の条件式と記載される行です。
   この条件は各媒体の条件式が1を超えてはいけないという条件です。

  ・制約のない変数を非負数にするにチェックをいれる。
  
  ・解決方法の選択は「シンプレックス LP」を選択。

  ・最後に「解決」を押すと計算ができます。
  
  ※使用されるエクセルによっては、ソルバーが入っていない場合があります。
   その場合は、「エクセル ソルバー 導入」などで検索をかけてみてください!

4.媒体ごとのD効率値を求める。
・ソルバーを使って一個一個の媒体の効率値を計算します。
   計算する対象の媒体は効率値の横の青枠で囲ったセルで変更できます。

  ・青枠のセルを変えてから「3.」の操作を行い、それを繰り返して、
   すべての媒体の効率値を計算します。

   ※計算が終わったごとに上から3番目の表に数値をコピーして記録していきます。


5.効率値から媒体を評価する。
 すべての操作が終わったら、効率値で媒体を評価することが可能です。


■DEAの詳しい仕組みや、効率値の読み解き方等
 このあたりはまた後日。。。

■詳細を知りたい方。。
 本記事は、下記の本を参考に記載しています。
 さらに、詳しい計算の仕組みなどについては、228P以降に掲載されていますので、
 こちらの本をご参照ください。


 

2013年7月23日火曜日

データクレンジングの方法

分析ができるようにデータを整理整頓することを
データクレンジングと言います。
あらゆるデータを紐付けて、
分析用のデータセットを作ります。

データクレンジングは大きく3つの操作があるかと思っています。

1.結合
2.整列
3.抽出

1.結合(マージ)
 結合は、正規化されたデータを分析用にデータをまとめる作業です。
 たとえば、コンビニの売上データを分析するときに、
 2つのデータが用意されていたとします。
  ----
   データ名:df1(店舗属性) カラムの名前: ShopID | adress | openDate
   データ名:df2(店舗売上) カラムの名前: ShopID | totalRevenue
  ----

 これをSQLで結合を行う場合は
  select * from df1 innner join df2 on df1.ShopId = df2.ShopID;
 これをRで結合する場合は
  merge(df1,df2,by="ShopID",all = T)

2.整列(ソート)
 整列は、まとめたデータを順番に並べる作業です。
 コンビニの売上データの例をとると、
 「出店日」順で並べる。
 「店舗売上」順で並べる。といった操作です。

 「出店日順で並べる。」をSQLで行う場合には
    select * from df3 order by openDate ; 
  同じくRで行う場合には
   
merge(df1,df2,by="ShopID",all = T)

  (*)df3はdf1とdf2をマージしたデータです。

3.抽出(フィルタリング)
 抽出は、データを意味のあるデータ群にまとめる作業です。
 同じようにコンビニの売上データの例をとると
 「店舗売上」を5億円超をAランク、5億円〜3億円をBランク、
  「出店日」を年度ごとにまとめる。といった作業です。


 ランク付けをSQLで行う場合には
  
select * from df3 where totalRevenue > 500000000;
select * from df3 where totalRevenue < 500000000 and totalRevenue >= 300000000;

同じく、Rで行う場合には
 
rankA <- (df3$totalrevenue > 500000000)
rankB <- (df3$totalrevenue <= 500000000) &(df3$totalrevenue > 300000000)


df_rankA <- df3[rankA,]
df_rankB <- df3[rankB,]



以下、補足
◯データクレンジングの操作は本当にこれだけ?
重複チェック、Nullチェックや、ナンバリングなど他にも
細かい操作はたくさんあるかと思いますが、
基本は上記の3つの組み合わせの作業なのかなと思ってます。

◯結合について
結合は、内部結合、外部結合を正しく理解してデータ操作を行い、
正しく結合しないと、存在しないはずのデータが増えたりします!
データクレンジングの作業にも落とし穴があるので、確認しながら作業をすることが大事です!

2013年7月11日木曜日

データサイエンティストとして大切なこと

タイトルは、SEO対策のため大げさにしてますが、
今後、自分が仕事をする上で大切だと思うことを書きます。

2010年当時の前の会社の入社間もない頃に先輩からいわれたのが、
『「クロス集計」はよく使うが「多変量解析」なんてあまりしない。
 それは、クライアントが理解できない場合があるから。』

大学院で多変量解析を学んだ自分としては、
やっとの思いで入社したマーケティング会社にも関わらず、
自分の強みを活かせないのではと
ショックを受けつつ先輩の話を聞いていていました。

ただ、諸先輩方がクロス集計だけで問題点の発見から、
解決策のヒントまでを抽出できるのを目の当たりにし、
データ分析の本質をなんとなく理解することができました。

そんなことがあった2年後には「重回帰分析を使って分析をしてほしい」
などと多変量解析を使った分析案件などが増えました。
ちょうど、ビッグデータなどといったような言葉が出始めた頃かと思います。

今度こそ自分の強みを活かせると希望を抱いても、
いざ案件に携わってみると、
実は分析のための分析をひたすらするという悔しい思いもしました。

ただ、こうした経験をしたことによって
データアナリスト(データサイエンティスト)として
大切なことがなんとなく見えたような気がしています。

■大切なこと

1.
数学がすごく苦手な人にも、
分析の仕組みと、分析から出た結果をわかりやすく説明する。

2.
分析のための分析をするなどの要望があったら
目的を整理して課題解決に役立つファインディングスを
抽出するための分析プランを提案する。

3.
売り上げを向上させる方法のヒントになる等、
直接課題解決に役立つファインディングスを提示し、
みんなを巻き込んでアクションにつなげる。

⇒結局、数字をいじった分析レポートであっても
 ・ストーリー(分析の仕組みや、ファクト)
 ・オチ   (分析結果や、ファクトからわかること)
 がの二つが噛み合ってないと理解してもらえないし、
 ファクトからわかることだけだしても、
 その後のアクションにもつながらないと価値にならなかったり
 するのかなぁと思ったりしています。

----
でも、まあ「大切なこと」といってもほぼ理想なので
現実ではできない部分も多いですね。。

2013年7月9日火曜日

ビッグデータより小さいデータを扱うメモ

エクセルでは扱えないが、
サーバで分析するにはちょっと仰々しい場合の
データ分析はどうやればいんですかね。
Pythonを初めて間もないですが、
勉強がてら触ってみました。

■やったこと
ニコニコ動画のコメントデータを国立情報学研究所からDLして、
ほんの一部のデータを単純集計できる形にまでもってきました。
*DLした全データでやったわけではないです。

なお、ニコニコ動画のデータはここから落とせます。

■やった手順
1.コメントデータのダウンロード

2.Pythonでコメントのみを抽出

3.コメントをChaSenに投げて形態素情報を抽出<Pythonからじゃなく、シェルから>

4.ChaSenから取得した形態素情報をsedとかを使ってクレンジング<これもシェル>

5.sqliteに格納してSQLでコメントの単語を集計

■やった手順の詳細
1.コメントデータのダウンロード
 これはダウンロードをするサイトで詳しい情報がのっています。
 が、最初wgetがわからなかったのでつまづきました。。。
 wgetはmacportから一瞬でダウンロードできます。

2.Pythonでコメントのみを抽出
 ダウンロードしてきたデータは2種類あります。
 その2種類の最初のファイルだけを読み込むPythonコードです。
 なので、新しいディレクトリを作って、
 ・0001.dat.gz
 ・0001.tar.gz
 と下記の2つのPythonコードを同一ディレクトリに格納したら
 プログラムは動くかと思います。

input.py output.py
3.コメントをChaSenに投げて形態素情報を抽出
 そもそも、ChaSenとは、日本語の文章を名詞とか連体詞とか語彙の機能別に
 仕分けてくれるすごいツールのようです。

 例)
   -------
 熱意 ネツイ 熱意 名詞-一般
 に 助詞-格助詞-一般
 燃える モエル 燃える 動詞-自立 一段 基本形
 商社マン ショウシャマン 商社マン 名詞-一般
 ------

 で、僕がやったのは、
 すごく原始的な方法です。。


4.ChaSenから取得した形態素情報をsedとかを使ってクレンジング
 3で出たデータをそのままsqliteに突っ込む方法があるかと思うのですが、
 なかなかうまく入らなかったのでクレンジングしました。
 *ChaSenが吐き出すデータはタブ区切りっぽいのですが、
  sqlite側を調整してもデータが入らず、
  吐き出したデータ側を調整することにしました。

5.sqliteに格納してSQLでコメントの単語を集計
 あとはカンマ区切りを指定して、output_8.txtをsqliteに突っ込めば
 SQLで集計したり、Rで分析したりすることができるかと。
 ただ、最初の読み込みで1ファイルだけしか取得していないので、
 全データでやるには調整する必要があります。
 また、EOSを途中で消しちゃっているので文章がひとつながりになっていたり、
 コメントと動画情報が紐づいていなかったりするので、
 まだまだ整備をする必要があるかと思います。

にしても、ちょっと効率の悪いやり方っすね。
もっといいやり方ないかな。。
まともにこのまま、全データ読み込もうとするとHDDがいくらあっても足りなくなるな。。

2013年7月8日月曜日

データのクレンジング方法

色々とデータをいじっているのですが、
テキストデータを扱う場合は
awk、seqなどを使うと早く処理できるなーと思いつつ。

もっといい方法はないかなーと思っていたら、
sqliteは、どんなファイル形式であろうと、
一度sqliteに突っ込んでしまえばSQLになって、
RとかPythonとかとも連携できてしまうそうですね。

ローデータをsqliteに突っ込んでから、
クレンジングデータを作った上で、
分析するのがいいんでしょうかね。

これも試行錯誤が必要ですな。

具体的は手法の話についてはこちら

2013年7月4日木曜日

Pocketボタンを追加しました

今日から、このブログにPocketボタンを追加しました。
せっかくなんで、bloggerにPocketボタンを追加した作業メモとしてブログにしてみます。

■追加の仕方

やり方はとっても簡単。

Pocketボタンをするには
管理画面から「テンプレート」→「テンプレートを編集」を選んで、
挿入したい位置にこの2行のコードを貼り付けるだけです。

<a class='pocket-btn' data-lang='ja' data-pocket-align='left' data-pocket-count='vertical' expr:data-save-url='data:post.url' href='https://getpocket.com/save'>Pocket</a>
<script type='text/javascript'>!function(d,i){if(!d.getElementById(i)){var j=d.createElement(&quot;script&quot;);j.id=i;j.src=&quot;https://widgets.getpocket.com/v1/j/btn.js?v=1&quot;;var w=d.getElementById(i);d.body.appendChild(j);}}(document,&quot;pocket-btn-js&quot;);</script>

※編集は自己責任でお願いいたします!
 少なくとも、いじる前にバックアップをとることは必須です。


■解説

公式ページのコードジェネレーターからタグを取得できますが、
これでは各詳細ページ別(記事ごと)のURLをクリップすることができません。。
そこで、ここの2番目のコードを参考にします。
記事によると、2行目をblogger用に調整する必要があります。
調整の方法は下記の通りです。

---
調整前 data-save-url="{Permalink}"
調整後 expr:data-save-url='data:post.url'
---

expr:     → blogger独自の変数を使用しますよ。というおまじない。
data:post.url → これがblogger独自の変数で、各記事ごとのURLを表します。

twitterやfacebookのボタンも、
これらのおまじないを応用すれば、bloggerに貼り付けることが可能です。


2013年7月3日水曜日

エクセルでできる広告予算の最適化を考える   その2

前回の記事から2週間近くたったのですが、
なんとか糸口が見てきました。

■解決につかう手法
いろいろと検討した結果、効率性効果DEA(データ包絡分析法)を使用しようかと思っています。
この分析手法をつかうと、複数の指標を一度に評価することが可能です。

■DEAの特徴
例えば広告効果を検証するときに、次ような指標をみたりします。


CPA = Cost / CV (広告出稿費用 / 成約数)
CPA = CV / Cost  (成約数 / 広告出稿費用)
CVR  = CV / Click (成約数 / 広告がクリックされた数)
※13/7/23修正


どちらも広告効率を表す指標ですが、
CPAもCVRも似ているいるようで別々の指標であるため、
一つの土俵の上で比較することができません。

ですが、DEAを使うと、
複数の指標を一つの指標に合成することができます。
比較評価を簡単にすることができるのです。


■DEAの使い方
DEAでは、入力 と 出力 に分けて、一つのシステムの効率化を考えます。
効率化とは、あるシステムの入力を最小にして、出力を最大にすることです。



今回の例では、
2つの入力と1つの出力で表現していますが、
入力と出力が沢山ある場合の複雑な場合でも、
DEAで適正に評価することができます。

このようにDEAを使うと、
小さい入力で、最大の効果を発揮している広告媒体を抽出することも
夢ではないのです!!
(実データに当てはめてみないとなんとも言えませんが。。。)

■DEAが用いられている例

プロ野球選手の評価をしている例があるようです。
http://www.orsj.or.jp/~archive/pdf/bul/Vol.47_03_137.pdf


■まとめ
Webサイトの目的に応じて、出力の部分は変わってくると思います。
DEAはこの出力と入力を柔軟に変化させられることが、
いいところであると思いました。

次回はDEAでエクセルを使って
効率的な広告媒体を抽出する方法を
実際の計算方法をまじえて説明したいと思います。


>>その3へ




2013年6月27日木曜日

安く、それなりのWebサイトを構築するには?

過去の記事でGAEでWebサイトを作ると宣言したのですが、
勢いでWebサイトを作るのはよくないと思い、
改めてシステムまわりについて調べてみました。

■Webサイトつくるまでのステップ

そもそもWebサイトはどうやってつくるかをお話すると、
ステップはざっくり3つあるかと思ってます。

・どんなWebサイトにするか頭を使って考えて、
・実際に手を動かしてWebサイトを作って、
・アップして、メンテナンスをする。

詳しくはキノトロープさんのサイトに記載されております。
http://www.kinotrope.co.jp/method/workflow/index.html



--引用
Phase0 与件整理
Phase1 現状把握
Phase2 目標の明確化
Phase3 ユーザー体験シナリオ
Phase4 戦略の策定
Phase5 戦術策定
Phase6 コンテンツ製作
Phase7 サイト設計
Phase8 システム設計
Phase9 開発・制作・テスト
Phase10 データ投入
Phase11 PDCAサイクル
--引用、ここまで

今回の記事は「Phase8 システム設計」が該当するかと思われます。

一般的なサイトでは、
サーバや回線の選定、セキュリティ周りをどうするかという
話が「Phase8 システム設計」で出てきます。

ただ、自分がこれから作成しようとしているサイトは、
大掛かりなサイトではないので、
「どのシステムにWebサイトを格納するか?」を考えれば十分です。


■システム要件

今回、自分がつくるサイトは
以下の3点が満たされるシステムであればいいなあと思っています。

・あまりお金がかからない(月500円以内)
・データの管理がしっかりしている(データが突然きえない)
・情報が豊富にある(調べる材料が豊富にある)

■システムの選定

いろいろと調べた結果、以下の3つに絞りました。

①tumbler
②Google App Engine
③格安のレンタルサーバー


①tumbler
SNSで、ブログもできて、写真も掲載できて、
しかもカスタマイズもできてというメリットがあります。
そして、既に企業も使っていたりして、実例も豊富です。

ただし、
コーポレートサイト調の見栄えにするには、
カスタマイズする必要があるようです。

カスタマイズされたtumblerのサイトの作りを調べてみたのですが、
画像などの素材系は別のところから引っ張ってきているのが多いみたいです。
結局、tumblerでそれなりのWebサイトをつくるには

別途、画像などの素材を格納する場所の確保
(すなわち、独自ないしレンタルサーバの確保。最悪dropboxでもいけるかも。。)

が必要になってくるかと思われます。

②Google App Engine

Webサイトだけのために使うにはもったいない気もしますが、
お金をかけずにgoogleの設備を使えてしまうのが魅力ですね。

そして、CMSを載せられるようなので、
メンテナンスもtumblerにひけをとらないくらい楽かと。
ただ、CMSをつかうにはgoogle cloud SQLを使う必要があるみたいですし、有料です。
従量課金で、最低1ドルくらいから使えるらしいのですが、
どれくらい費用がかかるかは、やってみないとわからないですね。。

※google siteは今回スルーしています。

③格安のレンタルサーバー
100円くらいから使えるようですね。
CMSも付けられるし、サポートもしっかりしているし、
入門にはこのあたりがいいのかもしれません。

■システムの比較
上記の3つを簡単に比較してみました。

①tumbler ②GAE ③レンタルサーバー

-----
・金額
①無料
②1ドル~  (変動)※固定もあるみたいです。
③100円~  (固定)

・拡張性
①高い
②とても高い
③とても高い

※今回は対象としていないのですが、
 買い物ができるサイト(ECサイト)を
 tumblerに設置することはできないかと思われます。(たぶん)

・サポート体制
①メールでの問い合わせが可能
②なし
③メールと電話での問い合わせが可能

----

というとこで、
結局なににしようかな。。。


2013年6月26日水曜日

屋号を決める

Webサイトを作成するにあたって、ドメインの取得のためにも
屋号を決めたいと考えています。

屋号を決める上で、どうしても守らなければならない制限は次の2点でした。

---

①既に登録されている商標権と重複しないこと。

②個人事業主の屋号の場合は
 会社(法人)と誤解されるような言葉を使えない。

---

屋号を聞いて何をやっているのかが分かるようにする等の作法もあるようですが、
あまり本質的ではないなあと個人的には思っています。

にしても、
屋号はずっと使うものでかつ、運命を決める名前であると考えるとなかなか難しい問題ですね。。。

2013年6月25日火曜日

重回帰分析をする上で気をつけたいこと

重回帰分析は最も使われている多変量解析の一つであり、
業務でも使用する機会は多々あるかと思います。
そこで重回帰モデルを構築する上で、統計の本には掲載されていない
大事なポイントについて記載したいと思います。


■一般的な重回帰式の作成ステップ

重回帰モデルを作るときは、
主に4つのステップで行われることが
多いのではないかと考えています。

---
①良さげな説明変数をチョイス
②相関分析でマルチコの確認
③ステップワイズ法で重回帰式の作成
④自由度調整済み決定係数などで評価
---


■一般的な重回帰式作成上の問題点

ただし、この方法では確かに理論上で
最適なモデルを得られるのですが、
アクションにつながるモデルを得られるかどうかは
運任せになってしまう傾向があります。


■アクションにつながるモデルって?

そもそもモデルの評価を行うときには
主に下記の2点があるかと思います。

・実績値と理論値(決定係数)が当てはまりの良いものがいい
・説明変数の数(自由度)が少ない方がいい

これに加えて、実務ではモデルを評価する視点はもうひとつあります

・コントロール出来る指標であるかどうか
 (内部要因か、外部要因か)

例えば、需要予測をするときに、
GDPの伸び率などの経済指標が
説明変数としてよく当てはまりますが、
どんなに大きな企業であっても
コントロールできる指標ではありません。

広告出稿費など、自らコントロールできる
指標が入っていなければ、
予測値を向上させるための施策を検討する
ことが難しくなってきます。

■アクションにつながるモデルをつくるには?


ステップワイズ法などでモデルの目星をつけた後に
総当り法でモデルを抽出します。

説明変数が10個程度に絞ることができれば、
高々1024個程度のモデルの算出で終わりますし、
総当り法を実施できるツールをWEBに公開してくださる方々がいらっしゃるので
エクセルでも、Rでも総当り法をすることは簡単です。

総当り法でモデルをリスト化し、
「自由度調整済み決定係数」「指標のコントロール可否」
で絞り込みを行えば採用できそうなモデルはすぐに2、3個のモデルにしぼり込めると思います。


コントロールできる指標を入って、しかも、当てはまりのいいモデルを作るというのは
実際に重回帰モデルの構築する業務においては難しいかと思いますが、
こうした視点をもって、アクションにつなげるモデルを構築する努力することが
大切だと思っています



2013年6月24日月曜日

Rの勉強会資料

先日、Rの勉強会を行なってきました。 すでにエクセルなどで統計業務を行なっていたりする方にとっては、 理解しやすい内容にしたつもりです。 

※ご意見、ご指摘ありましたら@hrfm_yまでいただけましたら嬉しいです!


 

2013年6月19日水曜日

分析環境を整える


Windowsで作業を進めていた自分としては、
分析環境を整えようとしてもPCの操作から学ばなくては
なりませんでした。。

ここでは、
分析環境を整えるまでの道のりについて記したいと思います。
なお、本記事はMacで整える場合を対象にしています。

■ターミナルに慣れる
まず、ターミナルの操作を覚えるところから始まりました。
ターミナルはMacなどUnixベースのOSに必ずついているアプリです。
コマンドベースで、PCを自由自在に操作できます。(慣れればの話)

ターミナルでは、
主に”シェル”とよばれるOSと利用者とを仲介するシステムを使用します。

※参考書籍
Fedora Coreビギナーズバイブル
http://www.amazon.co.jp/%E6%9C%AC/dp/483991365X


■MacPortsを入れる
データを処理する上で様々なアプリが必要となります。
その手間を省くことができるツールが、MacPortsです。
アップデートやインストールなどの管理を一挙に引き受けてくれます。

■インストールを行う
とりあえず分析をするのに必要な
MySQL、R、PythonをMacPortsを使ってインストールしました。

なお、Pythonのバージョンは2.7を入れています。
(現在、3への移行が進んでいるのでこれからPythonを勉強される方は
 3から学ぶといいかもしれません。)

※参考書籍

はじめてのSQL
http://www.amazon.co.jp/%E5%88%9D%E3%82%81%E3%81%A6%E3%81%AESQL-Alan-Beaulieu/dp/4873112818/

Pythonチュートリアル
http://www.amazon.co.jp/Python%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB-%E7%AC%AC2%E7%89%88-Guido-van-Rossum/dp/487311442X/

2013年6月17日月曜日

エクセルでできる広告予算の最適化を考える     その1

■背景

ここでいう広告は主にWEB広告です。
近頃では単にWEB広告といっても様々な形態やメディアがあり、
その配分を考えるだけでも大変な労力になります。

■問題

前にいた会社では、まれに「広告の予算を最適化して欲しい」との
依頼を受けていました。

仕事に手を付ける前に、まずは調査と、
【広告 予算 最適化】とググってみても、
イグニッションワンなどのツール類がでてくるだけで、
中々情報を得られないという苦労をしました。
※甘い考えですみません。。。

そこで仕方なくモデルをつくり、
エクセルのソルバーを使って試行錯誤してみました。
しかし、最も効率の良いメディアに一点張りするのが最適という
結論しか導き出せなかった経験があります。

単純にCVRだけで予算配分することを考えてしまうと、
最もCVRが高いメディアのみに予算を配分することが理想となります。
しかし、実際問題はそうはいかないものです。

■解決策への糸口をつかむ

この問題を根本から考えてみました。

まずゴールから考えます。
そもそも理想的な広告の出稿条件は下記の2点に絞られます。
・できるだけ多くのCVを獲得する
・できるだけ安く広告を出稿する

この条件だけだと、
・出稿期間内のCV数が多いメディア
・出稿期間内のCPAが良いメディア
に偏ってしまい、結局、
最も効率の良いメディアに一点張りという
結論になってしまいがちになってしまいます。

ここで、思考が停止したのですが、発想を変えました。

---

同じ予算管理で最適化が行われている分野は金融工学。
具体的にはポートフォリオ最適化の話を広告に置き換えることはできないか?

大学院時代に受けた金融工学の内容を思い出しました。
確か大事なのはポートフォリフォリオの、

・平均 (収益)
・分散 (ボラティリティ)

だったかと、、これを広告に置き換えると、

・平均 (CV)
・分散 (日々のCV獲得安定性)

になるのではないかと。

すなわち、広告の理想的な運用方法を
・できるだけ多くのCVを獲得する
・できるだけ安く広告を出稿する
・できるだけ安定的にCVを獲得できる広告に出稿する<追加>

とすると最適化の問題に帰着させることができ、
エクセルでも解けてしまうのではないかと思ったりしました。

~つづく~
その2へ

2013年6月14日金曜日

マーケティング業務で活躍する分析方法の使い方

業務でよく使われる分析手法について星取表で、まとめてみました。


サポートベクターマシン(SVM)なんかは、あまりレポートなんかでは使われたところを
見たことがないのですが、今後は使われる場面が増えるのではないかと思っております。

クラスターは、
「海のものか、山のものかわかんないので、データが似ているもの同士で分けてみよう!」
という考え方で、グループ分けをする分析手法です。

対して、SVMは、
「過去に集めたデータは、海のものか山のものかわかるけど、あたらしく拾ってきたデータは、どっちなんだろう?」という時に使える分析手法です。
巷で話題の機械学習という本に頻繁に出てくる分析手法でもあります。
分別がついている既存のデータで機械に学習させ、
学習によって作られたモデルをもとに、新しいデータを分別します。

例えばSVMをCRMに応用すると、

1.既存顧客のデータを用いて、優良と休眠にフラグをつける<人間がやる>
2.顧客の属性情報をもとに学習させる<機械がやる>
3.以後、新規顧客を獲得した時点で、属性情報から優良か、将来休眠するのかを判別する
<機械がやる>
4.優良と判定された顧客に対して積極的にアプローチをかける<人間か機械がやる>

みたいなことができるわけです。

<130924追加>
因子分析とクラスター分析のやり方の記事を掲載しました。

2013年6月12日水曜日

WEBコンテンツの検討<事業領域編>

ぼんやりと
サイトの構成を検討しています。
業務領域はどういった説明にしようか、
どこまでやると宣言するか。

似ている業務をされている方はどんな説明をなされているのか。

以下、メモ程度で、
コンテンツにしたい項目を考えてみました。

データ分析をやったことない人には難しい表現だな。。。

-------------------------------------------
事業領域は、
主にデータドリブンのPDCAを効果的に回すための
マーケティング活動のサポート全般をさせて頂きます。
 ①KPIの策定
 ②効果的なデータの収集方法の検討
 ③データ分析
 ④施策の検討と報告書作成


例えば、下記の3点の領域が得意ですが、
どんな案件にも柔軟に対応いたしますので、
お気軽にご相談ください。

○データアナリティクス関連
 ・需要予測モデルの作成
 ・インターネットアンケートの調査票作成、集計
 ・大規模データ(購買行動データ、SNSデータ・・・)の解析 

○WEBサイト関連
 ・google analyticsの導入
 ・サイト運用効果の最大化に向けての計画立案(KPIの策定)
 ・サイト、及び広告効果の効果検証

○システム関連
 ・日常業務集計業務の自動化
 ・需要予測計算の自動化
 ・アンケートデータ収集システムの構築


2013年6月8日土曜日

目的別の解析方法一覧

目的に応じて、解析手法の使い分けが記載されていた本を
見たことがないと言っていましたが、
なんと、その2日後に使い分け方が記載された本を発見したのでご紹介します。

本の内容と僕の経験をもとに、
目的別の解析手法を整理しています。

①観測されている複数の項目をもとに、ある項目を予測したい
 回帰分析
 判別分析
 時系列分析
 ニューラルネットワーク

②観測されている複数の項目をもとに、代表的な総合的指標を求めたい

  回帰分析
 主成分分析
 因子分析

③観測されている複数の項目を、特徴別に分類したい

  クラスター分析
 サポートベクターマシン(SVM)

④項目間の複雑な関係の構造を知りたい

  重回帰分析
 因子分析
 決定木
 AHP
 共分散構造分析


※文献「多変量統計解析法」を参考にしていますが、
 一部解析手法を追加したりしています。

※星取表で解析方法をここでまとめています。


2013年6月6日木曜日

いろんな解析手法

昨日、データ分析関連で大変お世話になっている方とお食事をした中での話題です。
お食事した方は、データアナリストをされていらっしゃいます。
「よくお客さんから、解析手法の使い分け方を知りたいと言われる。」
という話をうかがいました。

たしかに、解析手法を紹介する本では、
方法だけの紹介のみにとどまっているケースが多く、
”出したい結果を導くために、どんな解析手法を適用したらいいか”
がわかりやすくまとめている本に出会ったことがないです。

しかし、解析手法を適用する上で決まりは無いので、
目的やデータの制約に応じて解析手法を適用しますが、
それぞれ得意不得意とかがあると思うので、
解析手法別に整理してみたいと思いました。

というわけで、
わかりやすく解析方法を説明しているものが
あればと思いながらスライドシェアを中心に調べ、
各リンク先をまとめました。

~ つづく ~

--------------------------------------------------

重回帰分析(数量化Ⅰ類)
http://www.slideshare.net/yokkuns/tokyo-r12-r

判別分析(数量化Ⅱ類)
http://www.slideshare.net/langstat/nagoyar3discriminant

主成分分析(数量化Ⅲ類)
http://www.slideshare.net/sanoche16/tokyor31-22291701

因子分析(数量化Ⅲ類)
http://www2.rikkyo.ac.jp/web/murase/07factor.pdf



クラスター分析
http://www.slideshare.net/hamadakoichi/r-3754836
AHP
http://www.slideshare.net/soultoru/rahp
決定木
http://www.slideshare.net/takemikami/r13-9821987
http://www5.atpages.jp/kera/up/log/20.pdf


アソシエーション分析
http://www.slideshare.net/hamadakoichi/r-r-4219052


ベイジアンネットワーク
http://www.slideshare.net/aistmotomura/ss-14821827
http://nlp.dse.ibaraki.ac.jp/~shinnou/zemi2006/BN/BN-shinnou.pdf

ニューラルネットワーク
http://www.slideshare.net/Prunus1350/4-47
http://www.slideshare.net/rinrin1981/ss-5290500

サポートベクターマシン
http://www.slideshare.net/mknh1122/svm-13623887
http://www.slideshare.net/ShinyaShimizu/ss-11623505



コンジョイント分析
http://www.slideshare.net/bob3/r-19234607


時系列分析
http://www.slideshare.net/hamadakoichi/r-3836773


テキスト分析(形態素解析)
http://www.slideshare.net/JunOhtani/lucene-gosen-solr7

2013年6月5日水曜日

自社WEBサイトの構築にむけて

データ解析のために勉強し始めたPythonですが、

Webサイトの構築なんかにも親和性が良いので、

興味本位でgoogle app engine(略してGAE)も勉強してみました。

GAEはWebアプリケーションを構築する環境としてはかなり簡単でした。

Apacheなどのサーバ周りの知識を必要としないので、

スタートガイドに記載されている方法通りに進めば

Python初学者の僕でもすぐにWebアプリケーションを動かせました。

このあたりを勉強しつつ、

コンテンツ案も考えていないのですが

手探りで、自分の会社のWEBサイトをつくりたいと思います。

2013年6月4日火曜日

分析環境の準備

今の分析環境の紹介とそうなった経緯を記します。

会社員だった頃の環境


・データ整理⇒Excel
・アンケートデータ集計⇒Quick-CROSS(Excel)
・大きいデータ⇒SPSSかSAS

という具合でツールを分けていましたが、
アンケートを発注しないと使えないQuick-CROSSや
費用のかかるSASやSPSSは買えないので、
RとPythonを選ぶことにしました。

今の環境


■OS
10.8 Mountain Lion / mac OS X

■解析ツール
・Excel
・R
・Python

※RとPythonの導入について
MacPortsというツールを使って導入しています。
ソフトウェアの管理ツールで、
インストールやアップデートの作業が楽になります。
なお、MacPortsの導入にはXcodeが必要です。

Pythonをデータ解析ツールとして選んだ理由

Rはオンメモリ処理のため、
大きなデータを扱うには、それ相応のメモリを積んだ端末が必要となってきます。
それ相応の端末を揃えるお金もないので、
大きなデータはPythonで分析することにしましました。

大きなデータを扱う以外に、Pythonを選んだ理由は下記の通りです。

・Pythonは、Numpy/Scipyといったデータ解析用のパッケージが豊富
・データ解析だけでなく、Beautiful Soupといったデータ収集系のパッケージもある
・Rと連携して分析ができる
・プログラミング言語の中でも比較的習得が容易

などです。
今後、RやPythonなどで分析しながらブログで紹介していきます。

はじめに

ぼくは、一人のデータアナリストとして活動するために
3年間勤めたマーケティング会社を2013年3月にやめました。
いまは、母校の大学に戻り事務職員をしながら、独立に向けて活動を行なっています。

このところの手を動かしている作業としては、
①統計・データ解析の勉強のやりなおし
②RやPythonなどのツール類の勉強
③サイトの作成

の3点です。

これらの情報を中心に
ブログに書いていきたいと思います。