Pythonによる統計分析を応用した実践レシピ 23本ノック(2022年8月更新)

# はじめに
※本記事は2022年8月に更新いたしました。
Axross Recipeの広報を担当している松田です。

**[Axross Recipe](https://axross-recipe.com/recipes)** は、エンジニアの"教育"と"実務"のギャップに着目し、「学んだが活用できない人を減らしたい」という想いで、ソフトバンク社内起業制度にて立ち上げたサービスです。

現役エンジニアによる実践ノウハウが"レシピ"として教材化されており、Pythonプログラミングを活用して実際の業務に近いテーマで、動くものを作りながら学ぶことができます。

「AIを学ぶために勉強する」や「Pythonプログラミングを勉強する」ではなく、「何か具体的な目的を成し遂げるために、テーマを持ってAIを勉強できる」点が特長です。AIを中心にしたテーマで、様々な業務やビジネスの課題解決に応用できる実践的な学習教材を360以上揃えています。（2022年8月時点）

Axross：https://axross-recipe.com
公式Twitter：https://twitter.com/AxrossRecipe_SB

最近は受講者の皆様から『AI・Pythonの実践的な教材だけでなく、プログラミング初学者向けの内容を追加して欲しい』、『身近な業務で活用できるようなコンテンツが欲しい』といった声を多くいただいており、初学者向けのレシピも増やしてきています。

今回は、AxrossRecipe運営側で厳選した、**Pythonによる統計分析を応用した実践レシピ23本ノック**と題してご紹介します。

# 統計分析とは
**統計分析**は、ある１つの群のデータに対してその性質を調べる、もしくは既に収集済みのデータを活用し、更に大きなデータ予測し、分析するための学問です。
統計的手法は、実験計画、データの要約や解釈を行う際に用いられるなど、幅広い分野で応用されています。

# 統計分析の必要性
なぜ統計分析を学ぶ必要があるでしょうか。
メリットは大きく3つ言えます。

**意思決定に対する証拠が得られる**
統計分析とは本来、ビジネス上の意思決定を効率よく行うための手段です。分析を通じて得られた結果をもとに意思決定を行います。昨今の顧客の消費行動や流通経路は複雑・多様化し、意思決定をする難易度は上がっています。統計学を用いることでデータによる事象の裏付けが可能になり、結論の根拠づくりにも役立ちます。

**新しい情報を発見できる**
日常的に、ただ業務をこなしているだけでは気づかないことがあります。「なぜ顧客が自社の商品・サービスを選んだのか？」は、明確にするためには統計分析が欠かせません。日々の小さな気づきを統計分析で明らかにし、ビジネスに役立てていきましょう。

**統計分析のノウハウが蓄積される**
統計分析はビジネスのあらゆるシーンで活用できます。汎用性が高いため、統計分析のノウハウが社内に積み上がっていくと、あらゆる場面で活用できます。

# 統計分析の手法
統計分析は様々な種類があります。
いくつか代表的な例とその特徴を挙げます。

**因子分析**
因子分析とはたくさんの結果（統計学では「変数」と呼ぶ）の背後にある原因を明らかにする手法です。もともとは、教育心理学において各生徒の能力を測定するために開発されたとされています。現在では、マーケケティングなど幅広い分野で活用されています。

**回帰分析**
結果となる数値と要因となる数値の関係を調べて、それぞれの関係を明らかにするための手法です。統計分析においては基礎の基礎となります。要因に該当する数値を「説明変数」、結果となる数値を「目的変数」といい、説明変数が1つの場合は「単回帰分析」、複数の場合は「重回帰分析」と呼びます。

**軽量時系列分析**
時系列で変動するデータの流れを分析することで、その後の予測が行えるため効率よくビジネスを展開していく手法です。

**決定木分析**
1つの原因から、「もし、～だったらどうなるか？」という仮説を何度も繰り返し、その結果から複数の予測を行う手法です。仮説を繰り返すことで分析モデルが樹木上に枝分かれした図になることから、決定木と呼ばれています。この他、分類木、回帰木、ディシジョンツリーとも呼ばれています。

**主成分分析**
多くの要因がある場合、似たもの同士を少数の要因に集約させることで、データ分析しやすくする手法です。統計分析ではデータが多すぎると分析が複雑化してしまうため、その前処理としてデータ分析を行う前に分析しやすいようにデータを整える際に用いられます。

**相関分析**
相関関係を統計分析で明らかにする手法です。相関分析とは2種類以上のデータにおいて、一方のデータが変化したときに、その変化に応じてもう一方のデータも変化することです。

**多変量解析**
多くの情報を分析者の仮説にもとづき、関連性を明確にする手法です。たとえば、ある商品に対しての様々な口コミや評価の要因を明確にしていくために多変量解析です。


# 統計分析の活用事例
統計分析は、株価の過去のデータから将来の株価の予測や、喫煙や飲酒などの食生活と病気の関係性を推定するなど様々な分野で用いられています。

金融市場やギャンブルなどお金にまつわる経済金融分野でよく用いられる一方、医学や薬学、工学等の研究分野でも用いられています。ほかにも、流通小売、製造、不動産、医療等、あらゆる業界やビジネス場面で使われています。最近では新型コロナウイルス感染症の分析でも用いられています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620853/e2556c5c-7570-381f-522b-2380508ac23c.png)

# 統計学を活用したレシピの紹介
今回は、Axrossの初心者におすすめの基礎レシピの中から、**Python×統計分析レシピ20本ノック**としてご紹介します。

## アンケート
### [01_アンケートの層別解析レシピ](https://axross-recipe.com/recipes/48)
投稿者：@belltreeさん

本レシピでは、層別解析を学ぶことができます。
層別解析はアンケートの中で注目すべき結果をスクリーニングするためのテクニックです。

https://axross-recipe.com/recipes/48

### [02_アンケートの相関分析のレシピ](https://axross-recipe.com/recipes/50)
投稿者：@belltree さん

本レシピでは、相関分析を学ぶことができます。
相関分析はアンケートの中で注目すべき結果をスクリーニングするためのテクニックです。
前述の層別解析とは違った切り口でアンケートを分析する手法です。
相関分析を用いることで、アンケートデータから導き出せる結果を円滑に解明することができます。
例えば、関連性の強い質問項目のペアを見つけたり、傾向が似た質問項目をまとめてグルーピングを行います。

https://axross-recipe.com/recipes/50

### [03_アンケートを因子分析するレシピ](https://axross-recipe.com/recipes/59)

投稿者：@belltreeさん

本レシピでは、因子分析を学ぶことができます。
因子分析は結果の類似度を元にアンケートの質問項目をグルーピングするためのテクニックです。
前述の相関分析とは違った切り口でアンケートを分析する手法です。
相関分析を用いることで、データを生成している潜在因子を推定することができます。
例えば、グループに共通する要因を考えることで、データを生成している潜在因子を推定することができます。

https://axross-recipe.com/recipes/59

## 人事（HR)
### [04_従業員満足度調査（エンゲージメント・サーベイ）の分析レシピ](https://axross-recipe.com/recipes/274)

投稿者：@belltreeさん

本レシピでは、Pythonを用いた従業員満足度調査や様々な集計関数の分析を学ぶことができます。

従業員満足度調査の扱い方を学ぶことで、アンケート・データの扱い方や人間行動についての仮説設計/検証の方法を学ぶことにもつながります。続編もあります。

https://axross-recipe.com/recipes/274

https://axross-recipe.com/recipes/319

## 試験
### [05_試験データをクロス表にまとめ相関分析するレシピ](https://axross-recipe.com/recipes/173)
投稿者：@belltreeさん

本レシピでは、クロス表を用いた試験データの分析を学ぶことができます。

試験データの統計学的な扱い方を学ぶことで、統計学的な能力測定と試験問題の評価方法を学ぶことにもつながります。
本レシピではテスト理論（統計学的な試験の組み立て方や評価方法などを体系的にまとめた理論）のごく初歩的な部分を含みます。

https://axross-recipe.com/recipes/173

### [06_試験結果データを因子分析するレシピ](https://axross-recipe.com/recipes/190)
投稿者：@belltreeさん

本レシピでは、因子分析を試験データに用いた分析を学ぶことができます。

前述のクロス表を用いる分析とは違った切り口でアンケートを分析する手法です。
試験データの統計学的な扱い方を学ぶことで、統計学的な能力測定と試験問題の評価方法を学ぶことにもつながります。
本レシピではテスト理論（統計学的な試験の組み立て方や評価方法などを体系的にまとめた理論）のごく初歩的な部分を含みます。

https://axross-recipe.com/recipes/190

### [07_項目反応理論を活用した試験データの分析レシピ](https://axross-recipe.com/recipes/222)
投稿者：@belltreeさん

本レシピでは、項目反応理論を用いた試験データの分析を学ぶことができます。

前述の因子分析を用いる分析とは違った切り口でアンケートを分析する手法です。
試験データの統計学的な扱い方を学ぶことで、統計学的な能力測定と試験問題の評価方法を学ぶことにもつながります。
本レシピではテスト理論（統計学的な試験の組み立て方や評価方法などを体系的にまとめた理論）のごく初歩的な部分を含みます。

https://axross-recipe.com/recipes/222

## 小売

### [08_購買履歴データを分析し購買傾向を抽出するレシピ](https://axross-recipe.com/recipes/77)
投稿者：@belltreeさん
本レシピでは、アソシエーション分析（別名：マーケット・バスケット分析）を学ぶことができます。
アソシエーション分析は購買履歴データやレシートデータを分析するためのテクニックとして用いられます。

この分析を用いることで、購買履歴データの中から興味深い購買ルールを自動抽出することができます。
本レシピは購買履歴データ分析の一連のレシピの中では初級レベルの位置づけとなります。

https://axross-recipe.com/recipes/77

### [09_飲食店の購買履歴データ分析レシピ](https://axross-recipe.com/recipes/94)
投稿者：@belltreeさん
本レシピでは、時系列解析の基礎事項を学ぶことができます。
時系列解析は購買履歴データやレシートデータを分析するためのテクニックとして用いられます。

この分析を用いることで、売上や客数などの時間変化を直感的にとらえることができるようになります。
本レシピは購買履歴データ分析の一連のレシピの中では初級レベルの位置づけとなります。

https://axross-recipe.com/recipes/94

### [10_顧客の購買履歴データを層別解析で分析するレシピ](https://axross-recipe.com/recipes/129)
投稿者：@belltreeさん
本レシピでは、層別解析の基礎事項を学ぶことができます。
層別解析は購買履歴データやレシートデータを分析するためのテクニックとして用いられます。

この分析を用いることで、年代や性別などに注目して購買行動の特徴をまとめることができるようになります。
本レシピは購買履歴データ分析の一連のレシピの中では初級レベルの位置づけとなります。

https://axross-recipe.com/recipes/129

## EC
### [11_App Storeのカスタマーレビューを集計してヒストグラムを作って比較評価するレシピ](https://axross-recipe.com/recipes/245)
投稿者：[@べナオさん](https://twitter.com/benao_python?s=20)

本レシピでは、Pythonでヒストグラムを用いたカスタマーレビューの分析を学ぶことができます。
本レシピではApp store上のアプリへのレビューを元に解析を行いますが、他アプリへの応用も可能です。

Pythonを使った統計学的な手法とmatplotlibを使ってデータを可視化する方法が教材となっています。

https://axross-recipe.com/recipes/245

### [12_売れ筋商品の特徴を共起ネットワークで可視化するレシピ](https://axross-recipe.com/recipes/8)
投稿者：[@katkazさん](https://twitter.com/katkazzzzz)

通販サイトLOHACOの商品のカスタマーレビューから、スクレイピングでテキストデータを収集し、テキストマイニングでその商品が売れる理由（売れない理由）の分析を行います。

単語の頻度ではなく、単語の共起関係（文脈）を抽出して可視化するアプローチとして、NetworkXによる共起ネットワークの活用手法を学ぶことができます。

https://axross-recipe.com/recipes/8

## 物流
### [13_Python&数理最適化を用いて最適な倉庫配置を算出するレシピ](https://axross-recipe.com/recipes/102)
投稿者：@kanikani さん

全国のコンビニエンスストアと物流倉庫を題材に、 『効率的に店舗に商品を配送するには、どこに倉庫を配置すべきか』 といった物流課題に対して、『倉庫-店舗間の需要×距離を最小化する配置』を数理最適化手法を用いて最適な施設配置を算出します。

このレシピは、某衣料メーカーでの店舗と倉庫間での物流最適化ソリューションを開発した筆者の実務経験に基づき、Python＆数理最適化（pulpとfolium活用)による施設配置の最適化を算出する手法を学ぶことができます。

https://axross-recipe.com/recipes/102

### [14_Python&数理最適化を用いて最適な配送計画を算出するレシピ](https://axross-recipe.com/recipes/103)
投稿者：@kanikani さん

トラックの宅配業務を想定し、『倉庫にある荷物をどの車両で、どういう順番で顧客に届けるべきか』、といった元々は職人の勘に頼っていた物流課題に対して、トラックの運搬経路の最適化を数理最適化のメタヒューリスティクス手法で算出します。

元々は、職人による勘とExcelでの手作業で配送計画を立てていたが、最適化計算による配送計画の自動化ソフトを開発・導入した、某衣料メーカーでデータエンジニアとして勤める筆者の業務経験をもとに本レシピが作成されています。

https://axross-recipe.com/recipes/103

## 料理
### [15_Python&数理最適化を用いて最適な栄養素の献立を算出するレシピ](https://axross-recipe.com/recipes/97)
投稿者：@kanikani さん

スーパーマーケットで売られている77種の食料品の中から、 『何をどのくらいの量購入すれば、健康維持に必要な栄養素を最安で充足できるか？』といった主婦の課題に対して、数理最適化手法を用いて最適な食材の組み合わせを算出します。

Pulpを使った簡単な線形計画の実装のコーディングを習得することができます。線形計画法は、実務ではアルバイトのシフト最適化や給食の献立作成などにも応用することができます。

https://axross-recipe.com/recipes/97

## マーケティング
### [16_Pythonと統計検定で、回帰モデルを用いて市場反応分析を実践するレシピ](https://axross-recipe.com/recipes/241)
投稿者：@小林 猛さん
本レシピでは、回帰・重回帰モデルを用いて、価格・販売促進活動と売上の市場反応分析を行うための理論を学ぶことができます。

自社商品のマーケティング活動を複数組み合わせて実施する際に、その効果の予測（シミュレーション）に活用できます。

https://axross-recipe.com/recipes/241

### [17_Pythonの因子分析による市場の発見と知覚マップ化を実践するレシピ](https://axross-recipe.com/recipes/252)
投稿者：@小林 猛さん
本レシピでは、因子分析の概要とコーディング、そしてより細分化されたクラスタリングという手法を学ぶことができます。

競合ブランドとどれぐらい似ているかを可視化し、新たなマーケティング戦略を立案できます。
マーケティング戦略を取る前に、どの競合ブランドに対して差別化を行えばよいか、明確にすることができます。

https://axross-recipe.com/recipes/252

### [18_Pythonを使ったクラスター分析による市場セグメンテーションレシピ](https://axross-recipe.com/recipes/271)
投稿者：@小林 猛さん
本レシピでは、市場の細分化（＝市場セグメンテーション）の概要とpythonによる分析手法を学ぶことができます。

消費者データに対する主成分分析とクラスタリング分析の手法やコレスポンデンス分析の手法を学べます。

https://axross-recipe.com/recipes/271

### [19_Pythonによるコンジョイント分析で製品開発を検討するレシピ](https://axross-recipe.com/recipes/280)
投稿者：@小林 猛さん

コンジョイント分析は消費者の製品やサービスに対する好みがどのように構成されているかを理解するための分析手法です。

本レシピでは、コンジョイント分析の概要及び実装を学ぶことができます。消費者の好みを分析するコンジョイント分析やロジスティック回帰による購入確率の予測に活用できます。

https://axross-recipe.com/recipes/280

### [20_バスモデルによる新製品の需要予測と普及プロセスの評価レシピ](https://axross-recipe.com/recipes/306)
投稿者：@小林 猛さん

バスモデルは代表的な新製品の普及モデルで、特に購買周期の長い耐久消費財の新規需要の分析を行うことができます。

本レシピでは、新製品の需要予測とその普及プロセスの評価が両立可能なバスモデルをPythonを用いて実装する手法を学ぶことができます。

https://axross-recipe.com/recipes/306

### [21_アソシエーション分析から販売戦略を考案するレシピ](https://axross-recipe.com/recipes/379)
投稿者：[@中村真裕さん](https://axross-recipe.com/users/549)


アソシエーション分析がどういったものであるかを理解し、Pythonでも実装できるようになるまでを目指していきます。

ECサイトや実店舗などで関連性のある商品の組み合わせを発見し売り上げの改善などを考える手段のひとつとして活用できます。

https://axross-recipe.com/recipes/379

### [22_RFM分析、分散分析、ロジスティック回帰分析による顧客管理レシピ](https://axross-recipe.com/recipes/334)
投稿者：[@小林 猛さん](https://axross-recipe.com/users/2359)

現代のマーケティングを効果的に行うためには、ミクロ視点での目標設定が必要であり、顧客シェアや顧客ロイヤルティの拡大が重要な指標となってきます。

このレシピで紹介するPFM分析は、そういった顧客管理の実現に向けた分析手法を学ぶことができます。

https://axross-recipe.com/recipes/334

## 時系列データ
[23_Prophetを使った季節性がある時系列データを予測するレシピ](https://axross-recipe.com/recipes/401)
投稿者：[@Kay Hosodaさん](https://axross-recipe.com/users/1532)

Prophetという時系列データを予測するツールの使い方を実際にプログラム動かしながら学ぶことができます。

ECサイトでの商品の需要予測、Webコンテンツのアクセス数予測、その他時系列データの予測に使用することができます。

https://axross-recipe.com/recipes/401

# 最後に

今回は、Axross Recipeサービスで学べる**Pythonによる統計分析を応用した実践レシピ** をご紹介しました。

プログラミングは「**習うより慣れろ、繰り返し演習すること**」が重要です。

具体的なテーマから学べるAxross Recipeのレシピを通して、プログラムの意味を考えながら写経（コードを実際に書き写す行為）し、実際に動くものをつくりながら学ぶことで、新たな知識の習得やスキルアップの一助になれれば幸いです。
![アクロス広告最新版.jfif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620853/9993769a-ab5a-a463-eeac-8feed00c5fc9.jpeg)