More Related Content
Similar to データマイニング入門 (8)
データマイニング入門
- 15. 【応用編】これまでの知識を組み合わせてナンバリングをしてみよう
#データの読み込み
id <- c(1,1,2,3,4,5,6,7,8,9,10)
num <- c(45,55,4,4,52,26,58,654,5,1,23)
df1 <- data.frame(ID = id , NUM =num )
#IDについてn-1レコードとnレコードとの比較をする。
ary[1] <- 1
for(i in 2:length(df1$ID)){
if(df1[i-1,1] == df1[i,1]){
ary[i] <- ary[i-1] + 1
}else{
ary[i]<-1
}
}
#ナンバリングした変数を追加する。
df2 <- cbind(df1,ary)
Page:14
ID ary
1 1
1 2
2 1
3 1
… …
10 1
i-1
i
for文とif文の操作(ネスティング)
が
増
え
る
ご
と
に
1
レ
コ
ー
ド
ず
つ
下
に
下
る
i
If文の条件式は左下の図と対応しています。
該当行と、該当行の1一行下のIDを比較し、
同じであれば、aryの数1つ増やし、異なってい
れば、“1”を付与します。
ナンバリングは、特定顧客の来店頻度を数えるときに行う作業で、
RFM分析では必須の作業です。
ナンバリングを行うアルゴリズムは、for文とif文を組み合わせて実施
できます。これをネスティングといい、プログラムを構築する際に使うこ
とが多いため、上達するうえで覚えておきたい操作です。
※RFM分析とは
R=recency, F=frequency M=monetary の略で、
顧客構造を把握するためによく用いれられる分析です。
- 28. 重要な検定(1)
Page:27
検定は、2つの事象に差があるかないかなどを判断するための手法です。検定にもさまざまな種類が豊富にありますが、
ここでは、検定手法のなかでもデータマイニングに重要な「ウェルチの検定」と、「適合度検定」を説明します。
1.二標本の検定について
ウェルチの検定は、二標本の平均の差の有無を調べることができます。
たとえば、グループAとグループBでDMの反応度に差があるのか、ないのかを調べることができます。
サンプルコマンド
>t.test(x,y)
解説
変数xとyでt検定を行う。
サンプルコマンド(結果のサンプル)
Welch Two Sample t-test
data: x and y
t = -1.1881, df = 18.05, p-value = 0.2502
alternative hypothesis:
true difference in means is not equal to 0
95 percent confidence interval:
-16.899451 4.688925
sample estimates:
mean of x mean of y
1.842105 7.947368
解説
ウェルチの方法にてt検定を実施
データはXとy
t値は-1.1881、自由度は18.05、p値は0.2502
対立仮説:
平均の差異は0では無い
95%信頼区間:
-16.899から4.68
各群の標本平均:
xは1.842、yは7.947
#使用したデータ
x <- c(1,1,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3)
y <- c(4,1,3,1,1,1,5,10,2,3,2,2,2,2,3,3,3,3,100)
- 29. 重要な検定(2)
Page:28
2.適合度検定について
データマイニングにおける最終的なゴールの一つにモデルの構築が挙げられます。
モデルを構築した際に、「実際の値」と「モデルの理論値」とが対応出来ているか否かを判別します。
サンプルコマンド
>lp <- y/sum(y)
>chisq.test(x,p=lp)
解説
理論確率の算出
適合度検定の実行(観測値はx、
理論確率はyl)
#使用したデータ (サイコロのそれぞれの目の出現確率)
x <- c(99000,98000,93000,103000,107000,100000)
y <- c(100,100,100,100,100,100)
サンプルコマンド(結果のサンプル)
Chi-squared test for given probabilities
data: x
X-squared = 1120, df = 5, p-value < 2.2e-16
解説
与えられた理論確率でカイ二乗検定を実施
対象データはx
カイ二乗値=1120、自由度=5、p値=2.2e-16
- 35. 【応用編】重回帰分析で需要予測
Page:34
No
2 4 6 8 10 2 4 6 8
246810
246810
月次売上
最寄り駅の乗り降り人数
246810
2468 徒歩
2 4 6 8 10 2 4 6 8 10 40 60 80
406080
敷地面積
サンプル
#①データの読み込み
shopdata <- read.csv("shopdata.csv",header=T)
#②データの確認
summary(shopdata)
plot(shopdata) ・・・ 左下の図
#③初回重回帰式の作成
cor(shopdata)
result <- lm(月次売上 ~ 最寄り駅の乗り降り人数 + 徒歩 + 敷地面積 , data = shopdata)
#④重回帰式の決定係数による評価
summary(result)
#⑤分析の再実施
result <- lm(月次売上 ~ 最寄り駅の乗り降り人数 + 敷地面積 , data = shopdata)
#⑥-1重回帰式の決定係数による再評価
summary(result)
#⑥-2予測値と実績値の比較
plot(result$fitted.values, #予測値
shopdata$月次売上, #実績値
asp=1) #アスペクト比
abline(0,1) #傾き1の直線
#⑦-1重回帰式の結果の出力
plot(result)
#1枚目-残差(縦)×予測値(横)
#2枚目-残差のQQプロット ・・・一直線上に並んで入れば、重回帰分析で説明できている
#3枚目-残差の平方根プロット
#4枚目-残差と影響力プロット
#⑦-2予測値の出力
predict(result)
#⑦-3偏回帰係数の出力
a <- coefficients(result)
コンビニの売上を、立地条件から予測するモデルの
構築を試みます。分析のステップは下記の7点です。
①データの読み込み
②データの確認
③初回重回帰式の作成
④重回帰式の評価
⑤重回帰式の改良
⑥改良した重回帰式の評価
⑦重回帰式の結果の抽出
【参考】すべての変数の散布図
- 36. まとめ
• Rのまとめ
• Rはあらゆる企業や研究機関で使用され、算出結果の信頼性が高い
• コマンドラインに慣れれば、快適にかつスピーディに解析できる
• 特に複雑な分析でも、様々なパッケージが用意されているので
一行の命令文で重回帰分析などができてしまう
• 分析手法のまとめ
• t値やp値は、統計的に意味(有意差)が有るか無いかの確率を表す
• 仮説を立てる際やモデルを構築する際は、極力無駄なデータを省く
• モデル精度の評価は、適合度と単純性を見ることが重要
• 実務まとめ
• データマイニングでは確認が重要
• いきなり探索的な分析を行わずに基礎分析を行なって概要を把握する
• 深堀り分析を行った後は、モデルの評価をし、ファインディングスの吟味をする
Page:35
- 38. データ解析手法の一覧
Page:37
本勉強では、重回帰分析までの紹介だけでしたが、他にも様々な解析手法があります。マーケティングで用いられる
解析の用途は厳密に定められているものではないため、参考程度に活用ください。
解析手法 予測 指標要約
(数値データの作成)
分類 構造化
(関連性の数値化)
備考
重回帰分析 ◎ ○ ◎
予測やデータ構造の表現が得意なモデル。単純なモデルで表現さ
れるので、とても理解しやすいのがメリット。
時系列分析 ◎ ○
季節性などがある売上データや株価を予測する際に用いられるモ
デル。先行指標がなくても予測出来るのがメリット。
主成分分析 ◎
複数あるデータカラムを要約できる分析。重回帰分析などを行う前
に相関が強い複数あるカラムを集約するときや、ポジショニング分
析を行う際に用いられる。
因子分析 ◎ ○
複数あるデータカラムの変動要因(未知の因子)を抽出できる分析。
顧客が気付かない買物動機要因を抽出する際に用いられる。
主成分分析と同様に指標の要約が可能。
クラスター分析 ◎
<教師なし>
複数あるデータを似たもの同士で集落(クラスター)を作ることがで
きる分析。消費者の母集団から特定のターゲットを抽出するときな
どに役立つ。因子分析→クラスター分析と連携させることが多い。
サポートベクターマシン(SVM) ○ ◎
<教師つき>
迷惑メールの分類などに使用されるモデル。算出される過程がブ
ラックボックス化されてしまうが、グループ化の精度が高いと言わ
れている。
決定木分析 ○ ○ ◎
DMやWEBサイトのCVの反応分析など、ある指標に対して、大きな
要因からブレークダウンをして、変動要因を把握できる分析。優良
顧客象の抽出などで用いられることが多い。
アソシエーション分析 ○ ◎
POSデータの分析で用いられる分析。併売されているものを抽出す
ることができる。クーポンや、セット販売、併売割引などの施策検討
時に役立つ。
- 39. 記号・関数リスト
Page:38
論理記号 意味
<- 代入
= 代入
== 等号
<= ≦
>= ≧
!= ≠
< <
> >
関数 使用例 機能
c c(変数1、変数2、・・・、変数n) ベクトルの指定
getwd getwd 作業ディレクトリの取得
setwd setwd(ディレクトリへのパス) 作業ディレクトリの設定
attach attach(データフレーム)
指定したデータフレームのカラム名を変
数として利用可能
dettach dettach(データフレーム) attachの指定を解除する
subset subset(データフレーム、条件式) 条件式を満たすレコードの抽出
na.omit na.omit(データフレーム) 欠損値の含むレコードの削除
split split(データフレーム,カラム) データフレームの切り分け
data.frame
data.frame(データフレーム1,データフレー
ム2)
変数の結合
merge
merge(データフレーム1,データフレーム2,
by = キーとなるカラム名, all = True)
データフレームのマージ
order order(カラム名) 並び替え
hist hist(カラム名) ヒストグラム
plot plot(カラム名1、カラム名2) 散布図 カラム名1がx軸、2がy軸
barplot barplot(tabele(カラム名)) 棒グラフ
論理記号リスト 関数リスト