• Save
データマイニング入門
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

データマイニング入門

on

  • 7,584 views

Rや統計学を初めてみようと思っている方向けに、まとめ資料を作成しました。

Rや統計学を初めてみようと思っている方向けに、まとめ資料を作成しました。
※ブログにももろもろの情報を掲載しています。http://daaataaa.blogspot.jp/

Statistics

Views

Total Views
7,584
Views on SlideShare
7,363
Embed Views
221

Actions

Likes
13
Downloads
0
Comments
0

4 Embeds 221

http://daaataaa.blogspot.jp 180
http://daaataaa.blogspot.com 29
https://twitter.com 10
https://cybozulive.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

データマイニング入門 Presentation Transcript

  • 1. データマイニング入門~Rと統計に触れてみる~
  • 2. 目次Page:10.はじめに勉強会の対象者データマイニングで大変なところデータマイニングの全体像1.データクレンジングRとは実際にRをつかってみようデータの読み込みデータの確認ソートとマージデータの抽出条件分岐と繰り返しデータの出力【応用編】これまでの知識を組み合わせてナンバリングをしてみよう【応用編】外れ値の抽出【応用編】データの補完2.相関分析と単回帰散布図と相関分析【コラム】相関係数0の状態って?その他の相関係数の算出方法【応用編】単回帰式とその他の回帰式3.検定正規分布とは検定とは帰無仮説と対立仮説とは?重要な検定【応用編】重要な検定4.重回帰分析重回帰分析とは重回帰分析の手順重回帰式モデルの精度向上方法重回帰式の評価方法【応用編】重回帰分析で需要予測まとめAPPENDIXデータ解析手法の一覧記号・関数リスト
  • 3. 勉強会の対象者• この勉強会の対象者は データ分析を始めたいけど何から手をつけていいかわからない人 データを使って予測をしたい人 分析業務に役立つ統計知識を身につけたい人 Rを使った統計解析を始めようとしている人など、統計学やデータマイニングの基礎知識を付けたい人を対象にしています。Page:2
  • 4. 本題に入る前に・・・データマイニングで大変なところ【データハンドリングの知識】• データ/集計結果の確認⇒間違っているデータを分析しても無意味• ITの理解⇒データを正しく扱うためには、端末やサーバーの知識が必要【統計学の知識】• 分析手法の使い分け⇒導き出したい結論を得るためにまちがった統計手法を適用しない• 集計結果の読み取り⇒t値、p値などの言葉を知っていないと読み取れない【データの背景知識】• 関連情報の理解⇒データの特性を知らずに分析できない (ex.タイヤの売上データは基本4本ベース)• 集計結果の理解⇒かき氷は夏に売れるというのは、ファインディングスにならないPage:3データマイニングは、「データハンドリングの知識」「統計学の知識」 「データの背景知識」の3つポイントを抑えることが大事です!!今回の勉強会では、特に「データハンドリングの知識」「統計学の知識」に力をいれて説明します。
  • 5. データマイニングの全体象データマイニングは「データの取得をし、分析ができるようクレンジングをし、分析をして、結果を説明する」ことが大まかな流れです。今回は、赤枠のステップをR使ってどのように操作をし、実務においてはどのようなところに注意をして進めなければならないのか、という視点から説明します。Page:4正規化されたデータ群 結合されたデータステップとデータの形状データ操作分析に必要な情報を集めます。 集めたデータを結合し、分析可能な状態にします。クレンジングしたデータをもとに、散布図をつくったり、クロス集計や相関係数などを算出します。主に、データの読み込みやマージが中心ですが、データのソートやユニーク化をし、正しくデータを結合します。<例>・読み込み・マージ・ソート 等単純集計を行なって、作成したデータセットにデータ欠損や間違いが無いか確認します。<例>・ナンバリング・フィルタリング・単純集計 等散布図や相関分析で、変数の関係を調べたりして、ゴールの見当をつけます。<例>・集計・散布図作成・相関分析 等①データ収集基礎分析から得られた示唆からモデルの作成などをします。分析課題を解決するために、探索的に解析手法を検討し、モデルの構築や、解決施策を検討します。<例>・検定・重回帰分析・クラスター分析 等レポート⑤レポーティングデータマイニングから得られたモデルやファインディングスを、次のアクションにつなげられる資料を作成します。データから得られたファインディングスを図式化します。②データ整形 ③基礎集計 ④深堀分析集計されたデータ 分析されたデータXXXXXXXXXXX X
  • 6. 1.データクレンジング実務において①データ収集と②データ整形をあわせてデータクレンジングと呼びます。データクレンジングの主な作業は「読み込みと確認」「結合(マージ)」「整列(ソート)」「抽出(フィルタリング)」などが挙げられます。データマイニングを料理に例えると、下ごしらえにあたる作業がデータクレンジングです。本章では、これらの作業をRにて実施する場合の具体的な手法について触れながら、Rに慣れることを目的とします。Page:5■本章の対応箇所
  • 7. RとはPage:6Page:6無料で使用できる統計解析ソフト。統計学のあらゆる分析手法に対応しており、データマイニングの初心者から上級者まで幅広く利用されている。【メリット】・無料なので導入しやすい・さらに無料の分析パッケージが豊富に用意されている・Web上にRによる操作説明をしている記事が豊富にある(本もたくさんある)・学術論文にも多く用いれられ、ソフトウェアの信頼度が高い・プログラミング言語やソフトウェアとの連携も可能であるため、様々な分析に対応可能(ビッグデータの分析に用いられることもある)【デメリット】・コマンドによるデータ操作になるため、データ分析初心者には若干扱いづらい(実は簡単で、慣れてしまうととても便利!たとえば、一行の命令文でたくさんの図表を出力することができる。)・オンメモリ処理のため、分析できる容量は、端末のメモリ数に制限される
  • 8. 実際にRをつかってみようPage:71.電卓として使う実際にRを起動して、電卓として使ってみましょう。※サンプルデータの読み込み ※CSVデータの読み込みは後述Rの操作を学習する際には、Rが保有しているデータサンプルを用いることが多いです。今回はirisという花のデータを使用します。サンプルコマンド> lunch <- 1000> transportation <- 200> lunch + transportation[1] 1200解説変数「lunch」に1000を代入変数「transportation」に200を代入「lunch」と「transportation」を足し算サンプルコマンド>data(iris)> head(iris)解説サンプルデータirisの読み込みデータフレームirisの先頭表示
  • 9. データの確認Page:81.データ要素の確認取り込んだデータに不備が無いか確認を行います。例えば、データに欠損がないか、同じ数値ばかり入っていないか等を調べることができます。2.主要指標の確認取り込んだデータの各変数ごとの平均値や最大値などデータの概要を確認したり、散布図を描くこともできます。(Nullも確認可能)サンプルコマンド>table(iris$Sepal.Length,exclude=NULL)もしくは>table(iris[,1],exclude=NULL)解説変数Sepal.Lengthの数をカウントする。欠損値もカウントする。1列目(Sepal.Length)の数をカウントする。欠損値もカウントする。サンプルコマンド>summary(iris)>plot(iris)解説irisの各変数の統計量の確認irisの各変数の散布図の確認
  • 10. ソートとマージPage:91.ソートデータの並び替えを行います。一般的に、マージをする前に結合キーでソートをかけておくと、処理時間が早くなることがあります。(Excelのvlookupなどもソートをしておくと、早く結果が表示されます。)2.マージデータの結合を行います。なお、Rではマージをする前に、ソートをする必要はありません。(SASはマージする前にソートが必要)※降順にする際は、order関数内に decresing = Tを追記。サンプルコマンド>sortlist <- order(iris$Sepal.Length)>ndf <- iris[sortlist,]解説データフレームirisの変数Sepal.Lengthで昇順新しいデータフレームndfにSepal.Length順に並んだdfを格納サンプルコマンド>merge(iris,df,by=“Species” , all=T)解説データフレームirisとdfをIDをキーにして結合する。なお、片方にのみ含まれるデータも含む。
  • 11. データの抽出Page:101.行別の操作<条件に応じて、行別の操作を行う>条件に当てはまる行に応じて、データ操作を行うことができます。2.行の抽出<条件に応じた行のみ抽出する>条件に当てはまる行の抽出を行う際の操作方法は下記の通りです。サンプルコマンド> ifelse(iris$Sepal.Length>0, iris$flg=1, iris$flg=0)解説変数Sepal.Lengthが0超の時、flgは1、0以下の時flgは0。サンプルコマンド>flt <- (iris$Sepal.Length > 0)>df[flt,]解説変数Sepal.Lengthが0超であるか、行ごとにフラグをたてて、fltに格納。変数numが0超である行のみを表示。
  • 12. 条件分岐と繰り返しPage:111.for文の操作<繰り返し>繰り返し操作を行う際に用いるコマンドです。2.If文の操作<条件分岐>データの条件に応じて、操作を変えるコマンドです。※この場合、If文に入る前にxに1が代入されているので、①の式が適用されます。サンプルコマンド> x <- 0>for(i in 1:15) {+ x <- x + 1+}解説変数xに0を代入。変数iが1から15まで値を増加させるまで繰り返す。xにx+1を代入サンプルコマンド>x <- 1>if(x > 0){+ x + 1+ } else{+ x + 2+}解説xに1を代入「xが0超のとき」(条件式)に条件分岐し次の式を適用xに+1を加算・・・・・・①条件式とマッチしないときに、次の式を適用xに+2を加算・・・・・・②If文を終了※elseを次の行に書くと、前のif文と連携しないので注意が必要です。
  • 13. データの読み込みPage:121.CSVファイルの読み込み数値がカンマで区切られているテキストファイルの読み込みを行います。データの読み込みには複数のコマンドが存在しており、状況に応じて、コマンドを使い分けることができます。※クリップボードからのデータの読み込み<Windowsのみ>少量のデータを取り込む時に使えます。エクセルからデータを取り込む時などに便利です。サンプルコマンド> df <- read.csv(“sample.csv” ,header=T)もしくは> df <- read.table(“sample.csv” ,header=T,+ sep=“,”)解説sample.csvをCSVとして読み込む。1行目は変数名。sample.csvをtableとして読み込む。1行目は変数名。列の区切りはカンマ。サンプルコマンド> df <- read.table(“clipboard”,header=T)解説コピーで選択されている範囲を取り込む。
  • 14. データの出力Page:131.ワークスペースの保存R上で作業したコマンドや、データフレームなどを保存することができます。2.データフレームの保存(CSVへの出力)加工したデータをExcel上でグラフ化したい場合などに、データをCSVで出力することが可能です。操作方法メニュー「ファイル」→「作業スペースの保存」サンプルコマンド> write.csv(df, “df.csv”)解説データフレームdfをdf.csvとして保存※保存先は作業ディレクトリ
  • 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] <- 1for(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:14ID ary1 11 22 13 1… …10 1i-1ifor文とif文の操作(ネスティング)が増えるごとに1レコードずつ下に下るiIf文の条件式は左下の図と対応しています。該当行と、該当行の1一行下のIDを比較し、同じであれば、aryの数1つ増やし、異なっていれば、“1”を付与します。ナンバリングは、特定顧客の来店頻度を数えるときに行う作業で、RFM分析では必須の作業です。ナンバリングを行うアルゴリズムは、for文とif文を組み合わせて実施できます。これをネスティングといい、プログラムを構築する際に使うことが多いため、上達するうえで覚えておきたい操作です。※RFM分析とはR=recency, F=frequency M=monetary の略で、顧客構造を把握するためによく用いれられる分析です。
  • 16. 【応用編】外れ値の抽出Page:15外れ値とは他の値から大きく外れた値のことです。1レコードだけでも、他のレコードと値が異なっており、平均値などに大きく影響を及ぼす数値のことを指します。データ入力の打ち間違い等によるエラーデータである場合もありますが、実際に真の値である場合もあり、必ずしも除外すべきデータとは限りません。ただし、サンプリングをしたためにデータが少ない場合などについては、外れ値を除いた方が、データから分析すべき項目の傾向や特徴をつかみやすくなります。外れ値を除く方法は様々な方法がありますが、実務において、外れ値を除く方法は大きく2つあります。方法1.散布図から除外データをグラフ化すると、他の値とあまりにも外れている値を発見することができます。方法2.2シグマ外を除外する正規分布に従う変数は、平均値から±2σ(標準偏差)の範囲内に収まる確率は約95%です。この値の外の値をとるものは5%に満たないため、統計的に外れ値として扱うことができます。※正規分布、シグマの詳細については後述。平均-σ-2σ +2σ+1σピンク色の部分に収まる確率は95%正規分布2 4 6 8 102468101214xyグラフにすると、外れ値が視覚的に分かる。散布図
  • 17. 【応用編】欠損データの処理の仕方Page:16データには、何らかの理由で値が記入されずに欠損値となってしまう場合があります。欠損値は、外れ値と同様にデータを分析する際に影響を及ぼすことがあるため補完して分析することを推奨します。なお、分析するソフトウェアによって欠損値の扱い方が異なってくることもあり、注意して扱うことが必要です。方法1.同じ値(近い)をもつものを採用例えば、体重と身長を変数にもつデータがあり、1レコードだけ、体重に欠損値のものがあったとする。欠損値を持つデータの身長が同じもの方法2.欠損しているデータを破棄するデータ量が多いときには、1レコード削除しても影響が少ない場合があるため、欠損値を全て削除してしまう方法もあります。Rでは、一つの関数で処理することが可能です。170 172 174 176 178 1805556575859606162heightweight例えば、172cmで体重が欠損値であった場合に、同じ172cmで58kgのデータ同じ、58kgを設定する。サンプルコマンド> na.omit(df)
  • 18. 2.相関分析と単回帰データクレンジングを終えると分析の作業に入りますが、いきなり深堀り分析はせずに、まずはデータの概要を把握します。具体的にはデータを構成する変数の関係性を明らかにすることから始まることが多いです。その際には、散布図が多いに役立ちます。その散布図の散らばり方を数字で把握できるのが、相関係数です。単回帰分析をすると、散布図の直線化して、2つの事象の傾向を抽出できます。本章では、データの全体象をつかむ上で重要な、相関係数の数値の読み解きかたと、単回帰の扱い方について説明します。Page:17■本章の対応箇所
  • 19. 散布図と相関分析Page:182つの変数の相互関係は散布図にすると、視覚的に把握できます。また、すべての点との誤差の合計が最小距離となる直線を単回帰直線と呼びます。(詳細は後述)相関係数は0.51 単回帰直線体重=0.8×身長-60サンプルコマンド>plot(df$身長,df$体重)>result <- lm(df$体重~df$身長,data=df)>abline(result , lwd=1 , col="blue")> cor(df$身長,df$体重)解説dfの身長をx軸、体重をy軸としてプロット体重と身長で単回帰分析をし、resultに格納。単回帰式を線の太さ1、青色で描写。身長と体重の相関係数を計算。
  • 20. 【コラム】 相関係数0の状態って?Page:19相関係数は、散布図が右肩上がりの状態になると+1、右方下がりの状態になると-1となりその絶対値が大きくなるほど、散布図は直線的になります。では、相関係数が0の状態はどういった場合が考えられるでしょうか。いろいろな散布図と相関係数相関係数が0の場合は、全体的にバラバラに散っている状態(1行目の中央)の場合がありますが、3行目のように、規則性を持っている場合でも、相関は0になります。出典:Wikipediaこのデータを左と右で分けると、相関係数が0とならない。実務の現場においても、フィルタリングを行うと、相関が出る場合もあるので、散布図で、データの状態を確認することが重要。
  • 21. その他の相関係数の算出方法Page:20これまで紹介した、相関分析(ピアソンの積率相関係数)は分析対象とする変数がともに間隔尺度である場合のみに適用可能です。一方、例えばアンケートデータなどで取得した順位尺度にて相関分析を行う場合には、次のスピアマンの順位相関係数を使います。1.スピアマンの順位相関係数の算出方法相関係数(ピアソンの積率相関係数)と同様にcor関数を用います。スピアマンの順位相関係数は引数に、 method=“spearman”を追記すると計算ができます。2.ケンドールの順位相関係数の算出方法他の相関係数の算出の手法としてケンドールの順位相関係数がありますが、算出方法は同様に引数に追加するだけで可能です。サンプルコマンド> cor(df$色の好み,df$味の好み,+ method="spearman")解説「色の好み」順と「味の好み順」をスピアマンの順位相関係数で算出する。サンプルコマンド> cor(df$色の好み,df$味の好み,+ method=" kendall ")解説「色の好み」順と「味の好み順」をケンドールの順位相関係数で算出する。
  • 22. 単回帰式は前述の通り、全ての点と、単回帰式との誤差が最小になるような直線のことです。なお、直線以外の回帰式を非線形回帰式と呼び、例えば広告費用と認知度の関係などを説明する際に用いられることがあります。1.回帰式を算出する仕組み散布図のすべての点と、ある直線との誤差の総和が最小になるものを、回帰式と読んでいます。例えば、左図の「誤差1」+ 「誤差2」+ 「誤差3」の和を最小にします。なお、重回帰式についても同様の算出方法で計算しています。重要な考え方として、単回帰式(重回帰式)は、単純に誤差の距離を最小とするものを回帰式として採用しているため、計算された回帰式の値の原因を考える際のヒントとなります。例えば、広告出稿量に対して、獲得客数で回帰式を算出すると、偏回帰係数がマイナスの値となるのは、この性質に忠実であるためです。2.色々な非線形回帰式非線形回帰式の形状を覚えておくと、ある散布図の近似式を作成する効率が上がります。下記は、あくまでも形状の一例となります。【応用編】単回帰式とその他の回帰式Page:21誤差1誤差2誤差3累乗モデル指数モデル※指数モデルの方が値の上がり方が鋭い漸近指数モデル ロジスティックモデル多項式回帰
  • 23. 3.検定検定は、実務で多く使わることがありませんが、t値やp値といった統計解析の用語を理解する上で非常に重要な項目です。後述する重回帰分析などの統計解析を理解する上で避けては通れません。本章では、統計学で頻出のワードの解説を行った上で、簡単な統計分析の方法と、検定結果の読み解き方について説明します。Page:22■本章の対応箇所
  • 24. ○正規分布正規分布は統計学で最も重要な分布です。自然現象や社会現象の多くの確率現象を説明するために利用されます。○平均と分散上記のように、正規分布だけでなく多くの分布が、平均と分散で、確率現象を説明できます。そのため、あらゆる変数の平均と分散の2点を把握することが重要です。・平均(𝜇) = すべての要素の和 / 要素の数・分散(𝜎2) = (各要素 – 平均)の2乗の和 / (要素の数 – 1)※その他の分布の形状を把握する値・中央値 = 全ての要素を並べた時に、ちょうど真ん中にある値。(要素の数が偶数のときは、真ん中の両隣を足して2で割った数)・最頻値 = 全ての要素の中で最も頻度が高い値例えば、(1,1,1,10,10)といった分布があった場合、平均値は6、分散は8.4、中央値は1、最頻値は1となる。正規分布とはPage:23Xf(x)9 10 11 12 13 14 150.00.10.20.30.4xnormal2f x =12𝜋𝜎2𝑒−(𝑥−𝜇)22𝜎2・正規分布この分布の平均はμ(ミュー)、分散は𝜎2シグマ2乗 になります。※参考P17統計学の基礎を支える学問は確率論です。その確率論の中で、正規分布の考え方が統計解析を行う上で最も重要な知識となります。
  • 25. 検定とはPage:24ある主張が正しいか、誤りであるかを評価するための手法を、検定と呼びます。言い換えると、検定は確率分布をもとに偶然発生したものか否かを判別する分析となります。統計学の本で有名な検定にまつわる話貴族が午後のティータイムを楽しんでいるところ、「ミルクを先にいれたミルクティーか、紅茶を先に入れたミルクティーかを判別できる」と発言した御婦人がいた。同じ場には、化学者もいて、2つの液体が均等に混ざれば、物質的には同一であるため、違いがないはずだと否定したが、統計学者フィッシャーは、これを面白がり、婦人が言っていることが正しいか否かを検証した。【検証方法】8杯のミルク入り紅茶を、4杯は一方のやり方で、別の4杯はもう一方の方法で紅茶をつくり、ランダムな順序で提示する。婦人には、それぞれが4杯ずつあることを伝えた上で、その種類と一致するよう4杯ずつ2組に分けるように要求する。このとき、婦人が見分ける能力が無いとしても、偶然に一致する確率は70回に1回の割合(1.4%)である。この確率は十分小さいので、婦人が見極められたら、偶然とは言わずに、婦人の能力とする。検定の手順検定する際の手順は、下記の通りです。1.仮説の立案⇒仮説を立案し、仮説を支持するための検定方法を決める。2.危険率(t値、p値)の算出⇒検定を行なって、危険率を算出する。(危険率の詳細は後述)3 .仮説の採用を検討⇒算出された危険率を吟味し、仮説の採用と棄却を判断する。
  • 26. 帰無仮説と対立仮説とは?Page:25検定による仮説の立証は背理法を用います。手順としては最初に仮設を立てます。棄却したい仮説を帰無仮説と呼び、支持したい仮説を対立仮説と呼びます。○仮説の立案例えば、とあるDMを送るキャンペーンを行った際に、DMを送付したグループAと、DMを送付しなかったグループBで、購入点数に影響があったかを検証したいときは、・対立仮説を「DM送付により購入点数が変わった。」・帰無仮説を「DM送付により購入点数は変わらなかった。」として、仮説を立案します。分析には、2つのグループで平均購入点数に差があることを検証できる検定を用います。○p値、t値とは?検定では、主にp値を参考に帰無仮説の棄却(対立仮説の採用)を行います。・p値とは、対立仮説が正しいのに帰無仮説を受容してしまう確率(危険率)です。なお、t値とは信頼区間の範囲内におけるt分布の面積のこと。統計学一般では、p値が0.05以下(t値の絶対値が2以上)の場合に、帰無仮説の棄却を行います。ただし、マーケティングデータにおいては、0.10以下の場合でも帰無仮説を棄却することがあります。
  • 27. 危険率の深堀りPage:26帰無仮説を棄却するときに間違ってしまう確率をp値(危険率)といい、この間違いを「第1種の誤り」と呼びます。また、帰無仮説を間違って棄却しなかった場合を「第2種の誤り」と呼びます。例は次の通りです。・インフルエンザの検査結果は陽性だが、本当は単なる風邪であった場合⇒第1種の誤り・インフルエンザの検査結果は陰性だが、本当はインフルエンザであった場合⇒第2種の誤り第2種の誤りをしてしまう確率は、母集団のばら付きや、サンプルの数によって変化します。また、第1種と第2種の誤りはジレンマの関係にあり、片方の精度を上げると、片方の精度が悪化すると言われています。2つの精度を上げるためには、サンプルの数を増やす方法が有効と言われています。実際の状態正 誤検査結果陽性○ 第1種の誤り陰性第2種の誤り ○
  • 28. 重要な検定(1)Page:27検定は、2つの事象に差があるかないかなどを判断するための手法です。検定にもさまざまな種類が豊富にありますが、ここでは、検定手法のなかでもデータマイニングに重要な「ウェルチの検定」と、「適合度検定」を説明します。1.二標本の検定についてウェルチの検定は、二標本の平均の差の有無を調べることができます。たとえば、グループAとグループBでDMの反応度に差があるのか、ないのかを調べることができます。サンプルコマンド>t.test(x,y)解説変数xとyでt検定を行う。サンプルコマンド(結果のサンプル)Welch Two Sample t-testdata: x and yt = -1.1881, df = 18.05, p-value = 0.2502alternative hypothesis:true difference in means is not equal to 095 percent confidence interval:-16.899451 4.688925sample estimates:mean of x mean of y1.842105 7.947368解説ウェルチの方法にてt検定を実施データはXとyt値は-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:282.適合度検定についてデータマイニングにおける最終的なゴールの一つにモデルの構築が挙げられます。モデルを構築した際に、「実際の値」と「モデルの理論値」とが対応出来ているか否かを判別します。サンプルコマンド>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 probabilitiesdata: xX-squared = 1120, df = 5, p-value < 2.2e-16解説与えられた理論確率でカイ二乗検定を実施対象データはxカイ二乗値=1120、自由度=5、p値=2.2e-16
  • 30. 4.重回帰分析データマイニングの手法において、重回帰分析は最も基礎的な分析手法であり、実務においても多用されています。それは、数ある統計解析の手法の中でも予測だけなく、効果検証や、指標の抽出など、使い道が多用にあるからであると思われます。本章では、重回帰分析のやり方だけでなく、分析時に出力される各種数値の見方についても解説します。Page:29■本章の対応箇所
  • 31. 重回帰分析とはPage:30重回帰分析は多変量解析の分析手法の中で重要かつ、実務に置いても多用されます。その理由としては、モデル式の分かりやすさと、扱いやすさ、また、予測だけでなく、効果検証もでき、一つの現象のモデルを数式で捉えられることができるためです。○重回帰分析の基本分析の対象となる変数を目的変数(従属変数)とよび、目的変数の変動要因を説明変数(独立変数)で表し、説明変数の係数を偏回帰係数と呼びます。○重回帰分析の使い方重回帰式は、予測モデルとして用いられることが多いですが、実務の現場では、前述のとおり、現象構造の分析にも用いられることがあります。例えば、説明変数x1とx2を広告出稿金額として、yが顧客獲得数であった場合、偏回帰係数のa1とa2を比べることによって、どちらが、顧客獲得数の向上に寄与しているかを把握できます。このように、各々の偏回帰係数を把握することによって、説明変数がどのように変化すると、目的変数がどのように変化するかが分かります。※xの単位が異なる場合には、標準回帰係数を用いて比較します。詳細は後述。【注意】効果測定をする場合の条件は下記の通りです。・目的変数と説明変数の関係性に時間差が発生していないこと。・説明変数の単位に注意して比較すること。(cf 標準偏回帰係数)・重回帰式のあてはまりと、説明変数のp値を考慮して比較すること。(詳細は後述)y = 𝑎0 + 𝑎1 𝑥1 + 𝑎2 𝑥2 + ⋯ + 𝑎 𝑛 𝑥 𝑛
  • 32. 重回帰分析の手順Page:31重回帰分析の手順重回帰分析を行う手順は、通常下記の通りです。1.目的変数と説明変数の検討⇒目的変数の変動要因となる事象を見極め、説明変数を考慮する。2.説明変数の相関関係の確認⇒目的変数と説明変数のそれぞれの相関係数を算出する。算出された相関係数を確認。特に、説明変数同士で相関係数が強い場合は、説明変数から外すなどの方法を考える。3.重回帰式の算出⇒重回帰式の算出方法には、「総当り法」「変数増加法」「変数減少法」「ステップワイズ法」があり、状況に応じて使い分ける。※特に説明変数が9個くらいである場合には、総当り法を推奨します。4.重回帰式の評価と採用⇒得られた重回帰の当てはまりや信頼性を評価をして、採用するモデルを決定する。※「3.重回帰式の評価」で満足のいく結果が得られなかった場合には、手順1から3を再度行う。
  • 33. Page:32重回帰式モデルの精度向上方法1.目的変数と説明変数の検討極力少ない説明変数で目的変数を表すことが理想です。重回帰分析に限らず、統計解析の分析においては、オッカムの剃刀が重要な考え方として、様々な考え方の基本となっています。オッカムの剃刀とは、仮説を立てる際に無駄なことを省き、極力シンプルにしようという考え方です。特に統計学では、データを増やせば増やすほど、データを説明することができますが、過去データに過剰に適合しすぎてしまうと、将来の値からずれてしまう可能性があるため極力、少ないデータで物事を捉えようとします。2.説明変数の相関関係の確認重回帰モデルを作成する際の基本は、目的変数と説明変数間の相関係数を把握することです。なお、説明変数同士で、相関係数が高すぎると、多重共線性(マルチコ)が強くなり、重回帰式が正しく算出されない恐れが生じる。例えば、相関が強い変数の内、一つの偏回帰係数が非常に少なく算出されたりする場合や、結果すら算出されない場合がある。相関係数が0.9以上の説明変数がある場合には注意が必要。また、各変数の特性を理解した上で分析を進める必要があります。相関係数が少なくとも、目的変数の特徴を掴む変数があります。3.重回帰式の算出Rでは、単回帰と同様にlm()関数にて、重回帰分析が可能。サンプルコマンド>result <- lm(体重~身長+ 肩幅,data=df)解説目的変数を体重、説明変数を身長と肩幅として、重回帰分析を行う。なお、データはdf。オッカムの剃刀が重要だとは言え、現場責任者の仮説をないがしろにして、自分勝手にモデルを作成するのも危険。マルチコが発生している場合には、「片方の変数のみを用いる」の他に、「主成分分析を行なって変数を統合する」方法もあります。
  • 34. 重回帰式の評価方法Page:334. 重回帰式の評価と採用算出されたモデルの評価の観点は3点あります。3点すべてを満たすことは難しいため、利用目的を考え、バランスの良いモデルの構築をすることが重要です。①過去データとの適合性⇒重回帰モデル式と、実測値との乖離状況は重決定係数で判別することが多いです。重決定係数は0から1の間を取る値で、1に近づくほど、当てはまりの良いモデルと言えます。②モデルの単純性⇒説明変数の数を増やせば増やすほど、モデルの当てはまりはよくなると言われています。ただし、前述のとおり、少ない変数で当てはまりの良いモデルが理想とされます。そのため、説明変数の数を考慮した、当てはまりの良さを「自由度調整済み重決定係数」で評価します。こちらも0から1の間の数値をとります。③使用しているデータ(説明変数)の有意性⇒説明変数ごとの偏回帰係数が0か、0では無いかをp値(もしくはt値)で確認できます。あまりにも、p値が高い説明変数がある場合には、該当の説明変数採用是非を検討します。上記の評価を行い、モデルの検討を繰り返し行うことによってモデルを同定します。※なお、上記のモデルの検討を自動的に行うことができるステップワイズ法という手法がありますが、変数の意味を捉える事なく、単純にモデルが同定されてしまいます。そのため、ステップワイズ法を使うときは、データの特徴をつかむ程度にとどめ、最終的なモデルの同定を行うときは、総当り法でモデルを作成すると良いです。
  • 35. 【応用編】重回帰分析で需要予測Page:34No2 4 6 8 10 2 4 6 8246810246810月次売上最寄り駅の乗り降り人数2468102468 徒歩2 4 6 8 10 2 4 6 8 10 40 60 80406080敷地面積サンプル#①データの読み込み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
  • 37. APPENDIXPage:36
  • 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.framedata.frame(データフレーム1,データフレーム2)変数の結合mergemerge(データフレーム1,データフレーム2,by = キーとなるカラム名, all = True)データフレームのマージorder order(カラム名) 並び替えhist hist(カラム名) ヒストグラムplot plot(カラム名1、カラム名2) 散布図 カラム名1がx軸、2がy軸barplot barplot(tabele(カラム名)) 棒グラフ論理記号リスト 関数リスト