テクノロジー 分析 非公開: R で探索的データ分析 (EDA) を実行する方法 (例付き)

R で探索的データ分析 (EDA) を実行する方法 (例付き)

探索的データ分析について知っておくべきすべてを学びましょう。探索的データ分析は、傾向とパターンを発見し、統計的概要とグラフ表現を利用してデータセットを要約するために使用される重要なプロセスです。

他のプロジェクトと同様、データ サイエンス プロジェクトは長いプロセスであり、時間、適切な組織化、およびいくつかのステップの細心の注意が必要です。探索的データ分析 (EDA) は、このプロセスの最も重要なステップの 1 つです。

したがって、この記事では、探索的データ分析とは何か、そしてそれを R でどのように実行できるかについて簡単に説明します。

探索的データ分析とは何ですか?

探索的データ分析では、ビジネス、統計、または機械学習のいずれであっても、アプリケーションに送信される前にデータセットの特性を検査および研究します。

情報の性質とその主な特徴の要約は、通常、グラフィック表現や表などの視覚的な方法によって行われます。この実践は、将来的により複雑な処理が行われるこれらのデータの可能性を評価するために事前に正確に実行されます。

したがって、EDA では次のことが可能になります。

  • この情報を使用するための仮説を立てる。
  • データ構造内の隠された詳細を探索します。
  • 欠損値、外れ値、または異常な動作を特定します。
  • 全体としての傾向と関連変数を発見します。
  • 無関係な変数または他の変数と相関のある変数を破棄します。
  • 使用する正式なモデリングを決定します。

記述的データ分析と探索的データ分析の違いは何ですか?

データ分析には、記述的分析と探索的データ分析の 2 種類があり、目的は異なりますが、これらは連携して行われます。

1 つ目は、平均値、中央値、最頻値などの変数の動作の説明に焦点を当てています。

探索的分析の目的は、変数間の関係を特定し、予備的な洞察を抽出し、分類、回帰、クラスタリングといった最も一般的な機械学習パラダイムにモデリングを導くことです。

共通して、どちらもグラフィック表現を扱います。ただし、実用的な洞察、つまり意思決定者の行動を促す洞察をもたらすことを目指すのは探索的分析だけです。

最後に、探索的データ分析は問題を解決し、モデリング ステップを導くソリューションをもたらすことを目的としていますが、記述分析は、その名前が示すとおり、問題のデータセットの詳細な説明を作成することのみを目的としています。

記述的分析 探索的データ分析
行動を分析する 行動と人間関係を分析する
概要を提供します 仕様とアクションにつながる
データを表とグラフに整理します データを表とグラフに整理します
大きな説明力がない かなりの説明力がある

EDA の実用的な使用例

#1.デジタルマーケティング

デジタル マーケティングは、創造的なプロセスからデータ駆動型のプロセスに進化しました。マーケティング組織は、探索的データ分析を使用してキャンペーンや取り組みの結果を判断し、消費者の投資とターゲティングの決定を導きます。

人口統計調査、顧客セグメンテーション、その他の手法により、マーケティング担当者は大量の消費者の購入、調査、パネル データを使用して、マーケティング戦略を理解し、伝達することができます。

Web 探索的分析を使用すると、マーケティング担当者は Web サイト上のインタラクションに関するセッションレベルの情報を収集できます。 Google Analytics は、マーケティング担当者がこの目的で使用する無料の人気のある分析ツールの一例です。

マーケティングで頻繁に使用される探索的手法には、マーケティング ミックス モデリング、価格設定およびプロモーション分析、販売の最適化、およびセグメンテーションなどの探索的顧客分析が含まれます。

#2.探索的なポートフォリオ分析

探索的データ分析の一般的なアプリケーションは、探索的ポートフォリオ分析です。銀行や金融機関は、さまざまな価値とリスクの口座を集めています。

アカウントは、保有者の社会的地位 (富裕層、中産階級、貧困層など)、地理的位置、純資産、その他多くの要因によって異なる場合があります。貸し手は、ローンの収益と各ローンの債務不履行のリスクのバランスをとらなければなりません。次に問題は、ポートフォリオ全体をどのように評価するかになります。

最もリスクの低いローンは非常に裕福な人向けかもしれませんが、裕福な人の数は非常に限られています。一方で、多くの貧しい人々は融資することができますが、より大きなリスクを伴います。

探索的データ分析ソリューションでは、時系列分析を他の多くの問題と組み合わせて、これらのさまざまなセグメントの借り手にいつ融資するか、または融資率を決定できます。利息は、ポートフォリオセグメントのメンバー間の損失をカバーするために、そのセグメントのメンバーに請求されます。

#3.探索的リスク分析

銀行業務における予測モデルは、個々の顧客のリスク スコアについての確実性を提供するために開発されています。信用スコアは、個人の滞納行動を予測するように設計されており、各申請者の信用度を評価するために広く使用されています。

さらに、科学の世界や保険業界でもリスク分析が行われています。また、オンライン決済ゲートウェイ企業などの金融機関でも、取引が本物か不正かを分析するために広く使用されています。

この目的のために、顧客の取引履歴が使用されます。クレジット カードでの購入によく使用されます。クライアントのトランザクション量が突然急増した場合、クライアントはトランザクションを開始したかどうかの確認コールを受け取ります。また、そのような状況による損失を軽減するのにも役立ちます。

R による探索的データ分析

R で EDA を実行するには、まず R ベースと R Studio (IDE) をダウンロードし、次に次のパッケージをインストールしてロードする必要があります。

 #Installing Packages
install.packages("dplyr")
install.packages("ggplot2")
install.packages("magrittr") 
install.packages("tsibble")
install.packages("forecast")
install.packages("skimr")

#Loading Packages
library(dplyr)
library(ggplot2)
library(magrittr)
library(tsibble)
library(forecast)
library(skimr)

このチュートリアルでは、R に組み込まれ、米国経済の年次経済指標データを提供する経済データセットを使用し、わかりやすくするためにその名前を econ に変更します。

 econ <- ggplot2::economics 

記述的な分析を実行するには、 skimr パッケージを使用します。このパッケージは、これらの統計をシンプルかつ適切に表示された方法で計算します。

 #Descriptive Analysis
skimr::skim(econ) 
記述分析_sk-1
記述分析_sk-1

summary 関数を使用して記述的な分析を行うこともできます。

ここでは、記述的分析により、データセット内の 547 行と 6 列が示されています。最小値は 1967 年 7 月 1 日のもの、最大値は 2015 年 4 月 1 日のものです。同様に、平均値と標準偏差も表示されます。

これで、econ データセットの内容についての基本的なアイデアが得られました。データを詳しく見るために、変数 uempmed のヒストグラムをプロットしてみましょう。

 #Histogram of Unemployment
econ %>%
  ggplot2::ggplot() +
  ggplot2::aes(x = uempmed) +
  ggplot2::geom_histogram() +
  labs(x = "Unemployment", title = "Monthly Unemployment Rate in US between 1967 to 2015")
歴史
歴史

ヒストグラムの分布は、右側に細長い尾があることを示しています。つまり、この変数には、より「極端な」値を持つ観測値がいくつか存在する可能性があります。疑問が生じます。これらの値はどの期間に発生したのか、変数の傾向は何ですか?

変数の傾向を特定する最も直接的な方法は、折れ線グラフを使用することです。以下では折れ線グラフを生成し、平滑化線を追加します。

 #Line Graph of Unemployment
econ %>%
  ggplot2::autoplot(uempmed) +
  ggplot2::geom_smooth()
トレンド
トレンド

このグラフを使用すると、直近の期間、つまり 2010 年からの最後の観察では、過去数十年間に観察された歴史を上回る失業率の増加傾向があることがわかります。

もう 1 つの重要な点は、特に計量経済モデリングのコンテキストにおいて、系列の定常性です。つまり、平均と分散は時間の経過とともに一定ですか?

変数においてこれらの仮定が当てはまらない場合、その系列には単位根 (非定常) があり、変数が受けるショックが永続的な効果を生み出すと言えます。

問題の変数である失業期間についても同様であるようだ。変数の変動が大幅に変化していることがわかりましたが、これはサイクルを扱う経済理論に関連する強い意味を持っています。しかし、理論から離れて、変数が定常であるかどうかを実際にどのように確認するのでしょうか?

予測パッケージには、系列が定常であるために必要な差の数をすでに返す ADF、KPSS などのテストを適用できる優れた機能があります。

 #Using ADF test for checking stationarity
forecast::ndiffs( 
  x    = econ$uempmed,
  test = "adf") 
アドテスト
アドテスト

ここで、0.05 より大きい p 値は、データが非定常であることを示しています。

時系列におけるもう 1 つの重要な問題は、系列の遅れた値の間で考えられる相関関係 (線形関係) を特定することです。 ACF および PACF コレログラムは、それを識別するのに役立ちます。

この系列には季節性はありませんが、特定の傾向があるため、時間的に近い観測値は値も近いため、初期の自己相関は大きく正になる傾向があります。

したがって、トレンド時系列の自己相関関数 (ACF) は、ラグが増加するにつれてゆっくりと減少する正の値を持つ傾向があります。

 #Residuals of Unemployment 
checkresiduals(econ$uempmed) 
pacf(econ$uempmed) 
残差
残差

結論

多かれ少なかれクリーンなデータ、つまりすでにクリーンアップされたデータを入手すると、すぐにモデル構築段階に飛び込み、最初の結果を導き出したくなります。この誘惑に抵抗して、探索的データ分析を開始する必要があります。これはシンプルですが、データから強力な洞察を引き出すのに役立ちます。

データ サイエンスの統計を学習するのに最適なリソースを探索することもできます。

「 R で探索的データ分析 (EDA) を実行する方法 (例付き)」についてわかりやすく解説!絶対に観るべきベスト2動画

【6分で分かる】データ分析の本質について考えてみる!
#atmaCup 10 初心者向け講座・第2回 EDAとモデルの改善

探索的データ分析について知っておくべきすべてを学びましょう。探索的データ分析は、傾向とパターンを発見し、統計的概要とグラフ表現を利用してデータセットを要約するために使用される重要なプロセスです。

他のプロジェクトと同様、データ サイエンス プロジェクトは長いプロセスであり、時間、適切な組織化、およびいくつかのステップの細心の注意が必要です。探索的データ分析 (EDA) は、このプロセスの最も重要なステップの 1 つです。

したがって、この記事では、探索的データ分析とは何か、そしてそれを R でどのように実行できるかについて簡単に説明します。

探索的データ分析とは何ですか?

探索的データ分析では、ビジネス、統計、または機械学習のいずれであっても、アプリケーションに送信される前にデータセットの特性を検査および研究します。

情報の性質とその主な特徴の要約は、通常、グラフィック表現や表などの視覚的な方法によって行われます。この実践は、将来的により複雑な処理が行われるこれらのデータの可能性を評価するために事前に正確に実行されます。

したがって、EDA では次のことが可能になります。

  • この情報を使用するための仮説を立てる。
  • データ構造内の隠された詳細を探索します。
  • 欠損値、外れ値、または異常な動作を特定します。
  • 全体としての傾向と関連変数を発見します。
  • 無関係な変数または他の変数と相関のある変数を破棄します。
  • 使用する正式なモデリングを決定します。

記述的データ分析と探索的データ分析の違いは何ですか?

データ分析には、記述的分析と探索的データ分析の 2 種類があり、目的は異なりますが、これらは連携して行われます。

1 つ目は、平均値、中央値、最頻値などの変数の動作の説明に焦点を当てています。

探索的分析の目的は、変数間の関係を特定し、予備的な洞察を抽出し、分類、回帰、クラスタリングといった最も一般的な機械学習パラダイムにモデリングを導くことです。

共通して、どちらもグラフィック表現を扱います。ただし、実用的な洞察、つまり意思決定者の行動を促す洞察をもたらすことを目指すのは探索的分析だけです。

最後に、探索的データ分析は問題を解決し、モデリング ステップを導くソリューションをもたらすことを目的としていますが、記述分析は、その名前が示すとおり、問題のデータセットの詳細な説明を作成することのみを目的としています。

記述的分析 探索的データ分析
行動を分析する 行動と人間関係を分析する
概要を提供します 仕様とアクションにつながる
データを表とグラフに整理します データを表とグラフに整理します
大きな説明力がない かなりの説明力がある

EDA の実用的な使用例

#1.デジタルマーケティング

デジタル マーケティングは、創造的なプロセスからデータ駆動型のプロセスに進化しました。マーケティング組織は、探索的データ分析を使用してキャンペーンや取り組みの結果を判断し、消費者の投資とターゲティングの決定を導きます。

人口統計調査、顧客セグメンテーション、その他の手法により、マーケティング担当者は大量の消費者の購入、調査、パネル データを使用して、マーケティング戦略を理解し、伝達することができます。

Web 探索的分析を使用すると、マーケティング担当者は Web サイト上のインタラクションに関するセッションレベルの情報を収集できます。 Google Analytics は、マーケティング担当者がこの目的で使用する無料の人気のある分析ツールの一例です。

マーケティングで頻繁に使用される探索的手法には、マーケティング ミックス モデリング、価格設定およびプロモーション分析、販売の最適化、およびセグメンテーションなどの探索的顧客分析が含まれます。

#2.探索的なポートフォリオ分析

探索的データ分析の一般的なアプリケーションは、探索的ポートフォリオ分析です。銀行や金融機関は、さまざまな価値とリスクの口座を集めています。

アカウントは、保有者の社会的地位 (富裕層、中産階級、貧困層など)、地理的位置、純資産、その他多くの要因によって異なる場合があります。貸し手は、ローンの収益と各ローンの債務不履行のリスクのバランスをとらなければなりません。次に問題は、ポートフォリオ全体をどのように評価するかになります。

最もリスクの低いローンは非常に裕福な人向けかもしれませんが、裕福な人の数は非常に限られています。一方で、多くの貧しい人々は融資することができますが、より大きなリスクを伴います。

探索的データ分析ソリューションでは、時系列分析を他の多くの問題と組み合わせて、これらのさまざまなセグメントの借り手にいつ融資するか、または融資率を決定できます。利息は、ポートフォリオセグメントのメンバー間の損失をカバーするために、そのセグメントのメンバーに請求されます。

#3.探索的リスク分析

銀行業務における予測モデルは、個々の顧客のリスク スコアについての確実性を提供するために開発されています。信用スコアは、個人の滞納行動を予測するように設計されており、各申請者の信用度を評価するために広く使用されています。

さらに、科学の世界や保険業界でもリスク分析が行われています。また、オンライン決済ゲートウェイ企業などの金融機関でも、取引が本物か不正かを分析するために広く使用されています。

この目的のために、顧客の取引履歴が使用されます。クレジット カードでの購入によく使用されます。クライアントのトランザクション量が突然急増した場合、クライアントはトランザクションを開始したかどうかの確認コールを受け取ります。また、そのような状況による損失を軽減するのにも役立ちます。

R による探索的データ分析

R で EDA を実行するには、まず R ベースと R Studio (IDE) をダウンロードし、次に次のパッケージをインストールしてロードする必要があります。

 #Installing Packages
install.packages("dplyr")
install.packages("ggplot2")
install.packages("magrittr") 
install.packages("tsibble")
install.packages("forecast")
install.packages("skimr")

#Loading Packages
library(dplyr)
library(ggplot2)
library(magrittr)
library(tsibble)
library(forecast)
library(skimr)

このチュートリアルでは、R に組み込まれ、米国経済の年次経済指標データを提供する経済データセットを使用し、わかりやすくするためにその名前を econ に変更します。

 econ <- ggplot2::economics 

記述的な分析を実行するには、 skimr パッケージを使用します。このパッケージは、これらの統計をシンプルかつ適切に表示された方法で計算します。

 #Descriptive Analysis
skimr::skim(econ) 
記述分析_sk-1
記述分析_sk-1

summary 関数を使用して記述的な分析を行うこともできます。

ここでは、記述的分析により、データセット内の 547 行と 6 列が示されています。最小値は 1967 年 7 月 1 日のもの、最大値は 2015 年 4 月 1 日のものです。同様に、平均値と標準偏差も表示されます。

これで、econ データセットの内容についての基本的なアイデアが得られました。データを詳しく見るために、変数 uempmed のヒストグラムをプロットしてみましょう。

 #Histogram of Unemployment
econ %>%
  ggplot2::ggplot() +
  ggplot2::aes(x = uempmed) +
  ggplot2::geom_histogram() +
  labs(x = "Unemployment", title = "Monthly Unemployment Rate in US between 1967 to 2015")
歴史
歴史

ヒストグラムの分布は、右側に細長い尾があることを示しています。つまり、この変数には、より「極端な」値を持つ観測値がいくつか存在する可能性があります。疑問が生じます。これらの値はどの期間に発生したのか、変数の傾向は何ですか?

変数の傾向を特定する最も直接的な方法は、折れ線グラフを使用することです。以下では折れ線グラフを生成し、平滑化線を追加します。

 #Line Graph of Unemployment
econ %>%
  ggplot2::autoplot(uempmed) +
  ggplot2::geom_smooth()
トレンド
トレンド

このグラフを使用すると、直近の期間、つまり 2010 年からの最後の観察では、過去数十年間に観察された歴史を上回る失業率の増加傾向があることがわかります。

もう 1 つの重要な点は、特に計量経済モデリングのコンテキストにおいて、系列の定常性です。つまり、平均と分散は時間の経過とともに一定ですか?

変数においてこれらの仮定が当てはまらない場合、その系列には単位根 (非定常) があり、変数が受けるショックが永続的な効果を生み出すと言えます。

問題の変数である失業期間についても同様であるようだ。変数の変動が大幅に変化していることがわかりましたが、これはサイクルを扱う経済理論に関連する強い意味を持っています。しかし、理論から離れて、変数が定常であるかどうかを実際にどのように確認するのでしょうか?

予測パッケージには、系列が定常であるために必要な差の数をすでに返す ADF、KPSS などのテストを適用できる優れた機能があります。

 #Using ADF test for checking stationarity
forecast::ndiffs( 
  x    = econ$uempmed,
  test = "adf") 
アドテスト
アドテスト

ここで、0.05 より大きい p 値は、データが非定常であることを示しています。

時系列におけるもう 1 つの重要な問題は、系列の遅れた値の間で考えられる相関関係 (線形関係) を特定することです。 ACF および PACF コレログラムは、それを識別するのに役立ちます。

この系列には季節性はありませんが、特定の傾向があるため、時間的に近い観測値は値も近いため、初期の自己相関は大きく正になる傾向があります。

したがって、トレンド時系列の自己相関関数 (ACF) は、ラグが増加するにつれてゆっくりと減少する正の値を持つ傾向があります。

 #Residuals of Unemployment 
checkresiduals(econ$uempmed) 
pacf(econ$uempmed) 
残差
残差

結論

多かれ少なかれクリーンなデータ、つまりすでにクリーンアップされたデータを入手すると、すぐにモデル構築段階に飛び込み、最初の結果を導き出したくなります。この誘惑に抵抗して、探索的データ分析を開始する必要があります。これはシンプルですが、データから強力な洞察を引き出すのに役立ちます。

データ サイエンスの統計を学習するのに最適なリソースを探索することもできます。

「 R で探索的データ分析 (EDA) を実行する方法 (例付き)」についてわかりやすく解説!絶対に観るべきベスト2動画

【6分で分かる】データ分析の本質について考えてみる!
#atmaCup 10 初心者向け講座・第2回 EDAとモデルの改善