本文へ移動
カテゴリ

Webマーケ

Webマーケの記事すべてSEOサイト運営データマネジメントビジネス・マーケ概論広告

インタビュー

インタビューの記事すべて

おすすめサービス

おすすめサービスの記事すべて

おすすめ勉強法

おすすめ勉強法の記事すべて

おすすめ書籍

おすすめ書籍の記事すべて

データサイエンス

データサイエンスの記事すべてデータ解析品質工学多変量解析機械学習生成AI統計学

プログラミング

プログラミングの記事すべてPythonRSQLプログラミングスクール

スタビジについて

記事一覧運営者情報

分散の求め方!標本分散と不偏分散の違い

目次
ウマたんウマたん

当サイト【スタビジ】の本記事では、分散について解説していきます!分散とは「データの散らばり具合を示す」重要な指標となっています。今回は分散の定義について解説しつつ、分散のなかでも標本分散と不偏分散の違いについて解説してPythonで実装していきます!

こんにちは!

デジタルマーケター兼データサイエンティストのウマたん(@statistics1012)です!

データの傾向・性質を見る指標はたくさんありますが、「データの散らばり具合を見る」指標である分散は非常に重要です!

具体的には「データが平均からどれだけ散らばっているか」示しており、データのばらつきが大きいと分散が大きくなり、ばらつきが小さくなると分散は0に近づく特徴を持っています!

この記事では、そんな分散の解説をしながらも分散の性質を持つ標本分散と不偏分散の違いについて解説していきます。

以下の動画でも解説していますのであわせてチェックしてみてください!

YouTubeの動画

分散とは?

stories Data-pana

分散とは「データのばらつきを示す指標」と定義されています。分散の値が分かることで、データの分布が予想でき、データの比較が行うことができます!

ウマたんウマたん

分散の式は以下の通りに示せるよ!

s2s^{2} = 1n∑i=1n\frac{1}{n} \sum_{i=1}^{n} (xi–xˉ)2(x_i – \bar{ x })^{2}

これらの式では、nnがサンプルサイズ,xix_iが各サンプルごとの値、xˉ\bar{ x }が平均値を表しています!特に(xi–xˉ)(x_i – \bar{ x })を偏差と呼びます!

ロボたんロボたん

それじゃ偏差は各サンプルの値から平均値を引いた値なんだね!

ウマたんウマたん

その通り!偏差は「各サンプルの値が平均からどれだけ離れているか」を示しているんだ。そして分散は偏差の2乗平均でもあるんだ!

標本分散とは?

stories Memory storage

分散の定義を説明したので、標本分散の説明をしていきます!

標本分散とは、「標本から計算した分散」を示しています。つまり対象の全体から一部を抽出したデータの分散を意味しています!

ウマたんウマたん

標本分散の式は先程の分散の定義と同じだよ!

s2s^{2} = 1n∑i=1n\frac{1}{n} \sum_{i=1}^{n} (xi–xˉ)2(x_i – \bar{ x })^{2}

ロボたんロボたん

そもそも標本をとる理由ってなんだっけ…?

ウマたんウマたん

母集団が非常に大きすぎると母集団全体の観察は難しいので、母集団からいくつかのサンプル(標本)を抽出して、母集団の統計的な特徴を把握する目的があるんだ!

不偏分散とは?

quiz

次は不偏分散の説明です!

不偏分散とは、「標本が属する母集団の分散を推定した値」を示しています!

不偏分散

ウマたんウマたん

不偏分散の式は標本分散の1n\frac{1}{n}が1n−1\frac{1}{n-1}に変わっているよ!

s2s^{2} = 1n−1∑i=1n\frac{1}{n-1} \sum_{i=1}^{n} (xi–xˉ)2(x_i – \bar{ x })^{2}

ロボたんロボたん

不偏分散はなんで1n−1\frac{1}{n-1}で平方和を割っているんだろう?

ウマたんウマたん

それは

推定量の期待値が母数と等しい不偏性

を持っているからなんだ!

標本分散は不偏性を持つのか?

Feeling bad

ロボたんロボたん

それなら標本分散は不偏性をもった分散じゃないの?

ウマたんウマたん

それを実際に確かめてみよう!不偏性は以下の式が成立していればいいんだ

EE(θ^\hat\theta) = θ\theta

θ^\hat\thetaを推定量、θ\thetaを母数とすると、「あるパラメータの推定量の期待値は母集団のパラメータに等しい」ということを言っています!標本から母集団のパラメータを良く推定できる強みがありますね。

そして標本分散をθ^\hat\thetaに代入してみましょう!

EE(s2s^{2}) = EE(1n∑i=1n\frac{1}{n} \sum_{i=1}^{n} (xi–xˉ)2(x_i – \bar{ x })^{2}) = 1nE(∑i=1n((xi–μ^ )–(xˉ–μ^ ))2\frac{1}{n} E(\sum_{i=1}^{n} ((x_i – \hat{μ} ) – (\bar{ x } – \hat{μ} ))^{2})

= 1nE(∑i=1n((xi–μ^)2 –2∑i=1n(xi–μ^)(xˉ–μ^)+∑i=1n(xˉ–μ^)2)\frac{1}{n} E(\sum_{i=1}^{n} ((x_i – \hat{μ})^{2}  – 2\sum_{i=1}^{n}(x_i – \hat{μ})(\bar{ x } – \hat{μ}) + \sum_{i=1}^{n}(\bar{ x } – \hat{μ} )^{2})

= 1nE(∑i=1n((xi–μ^)2 –2n(xˉ–μ^)2+n(xˉ–μ^)2))\frac{1}{n} E(\sum_{i=1}^{n} ((x_i – \hat{μ})^{2}  – 2n(\bar{ x } – \hat{μ})^{2} + n(\bar{ x } – \hat{μ})^{2}))

= 1nE(∑i=1n((xi–μ^)2 – n(xˉ–μ^)2)))\frac{1}{n} E(\sum_{i=1}^{n} ((x_i – \hat{μ})^{2}  –  n(\bar{ x } – \hat{μ})^{2})))

= 1nE(∑i=1n(xi–μ^)2)–E((xˉ–μ^)2)\frac{1}{n} E(\sum_{i=1}^{n} (x_i – \hat{μ})^{2}) – E((\bar{ x } – \hat{μ})^{2})

= 1n(nσ2)\frac{1}{n} (n \sigma^{2}) – σ2n\frac{\sigma^2}{n}

= n−1nσ2\frac{n-1}{n} \sigma^{2} (*V(xi)V(x_i) = E((xi–μ)2)E((x_i – μ)^{2})、V(x^)V(\hat{x}) = E((x^–μ)2)E((\hat{x} – μ)^{2})とする)

E(s2)E(s^{2}) ≠ σ2\sigma^{2}なので標本分散の期待値は母分散と一致しない、つまり標本分散は不偏性を持たないことになります!

またさっきの式から、不偏分散は不偏性を持つこともわかりますね。

E(nn−1σ^2)E(\frac{n}{n-1}\hat{\sigma}^{2}) = E(nn−11n∑i=1n(xi–xˉ)2)E(\frac{n}{n-1} \frac{1}{n}\sum_{i=1}^{n} (x_i – \bar{ x })^{2}) = E(1n−1∑i=1n(xi–xˉ)2)E(\frac{1}{n-1}\sum_{i=1}^{n} (x_i – \bar{ x })^{2}) = σ2\sigma^{2}

実際に標本分散・不偏分散をPythonで計算してみよう!

stories pc

最後にPythonで標本分散・不偏分散を実装しましょう!

標本分散・不偏分散はNumpyライブラリのvar関数で算出することができます!特にvar関数はddof=Trueとすると不偏分散を算出してくれます。

問題の設定として、架空の学校にあるA組とB組のテストの平均と標本分散・不偏分散を見ることにしましょう。サンプルサイズは10人とします。

import numpy as np

#A組・B組のデータ
A = np.array([50,60,57,63,55,65,51,69,49,71])
B = np.array([30,80,40,90,25,95,32,88,27,93])

#結果
print("A組の平均:"+str(np.mean(A)))
print("B組の平均:"+str(np.mean(B)))
print("A組の標本分散:"+str(np.var(A)))
print("B組の標本分散:"+str(np.var(B)))
print("A組の不偏分散:"+str(np.var(A,ddof=True)))
print("B組の標本分散:"+str(np.var(A,ddof=True)))
ウマたんウマたん

パッと見るとB組のデータはかなりばらついているように見える。はたして平均と標本分散・不偏分散はどうなったかな?

分散のコード

A組・B組の点数の平均は同じですが,分散に関してはB組の方が圧倒的に大きいことが分かります。つまりB組の点数のばらつきが大きいことを意味してますね!

またddof=Trueにすることでキチンと不偏分散を算出してくれていることも確認できました!

不偏分散と標本分散 まとめ

python

本記事では、分散の定義と標本分散・不偏分散の違いについてまとめました!

データの性質・傾向を見るために、データのばらつきを表す分散は非常に重要な指標でした。さらに分散だけでなく平均値を見たり、ヒストグラムからデータの分布を見る癖をつけると、データに対する理解が深まること間違いなしでしょう!

ウマたんウマたん

基本的な統計量を見る力はとても大切だ!

そうしたデータサイエンスの力を身に付けるためにはスタビジの記事やスクールを活用すると良いでしょう。

そして僕の経験を詰め込んだデータサイエンス特化のスクール「スタアカ(スタビジアカデミー)」を運営していますので,興味のある方はぜひチェックしてみてください!

AIデータサイエンス特化スクール「スタアカ」

スタアカ(スタビジアカデミー)のトップページ

【価格】 ライトプラン:1,280円/月(全コースが受講し放題)
プレミアムプラン:129,800円(通常149,800円・買い切り)
【オススメ度】
【サポート体制】
【受講形式】 オンライン形式
【学習範囲】 統計学・機械学習・ディープラーニングを網羅的に学ぶ
生成AI(LLM・RAG・プロンプトエンジニアリング)を学ぶ
SQLとPythonを組み合わせて実データを使った様々なワークを行う
実践的なビジネスフレームワークを学ぶ
マーケティングの実行プラン策定

データサイエンティストとしての自分の経験をふまえてエッセンスを詰め込んだのがこちらのスタビジアカデミー、略して「スタアカ」!!

当メディアが運営するスクールです。

月額1,280円のライトプランで、統計学から機械学習・生成AIまで全コースが受講し放題です!

プレミアムプランでは、24時間以内の質問対応と現役データサイエンティストとの1on1(30分×4回)を実施します!

カリキュラム自体は、他のスクールと比較して圧倒的に良い自信があるのでぜひ受講してみてください!

他のスクールのカリキュラムはPythonでの機械学習実装だけに焦点が当たっているものが多く、実務に即した内容になっていないものが多いです。

そんな課題感に対して、実務で使うことの多いSQLや機械学習のビジネス導入プロセスの理解などもあわせて学べるボリューム満点のコースになっています!

Pythonが初めての人でも学べるようなカリキュラムにしておりますので是非チェックしてみてください!

ウォルマートのデータを使って商品の予測分析をしたり、実務で使うことの多いGoogleプロダクトのBigQueryを使って投球分析をしたり、データサイエンティストに必要なビジネス・マーケティングの基礎を学んでマーケティングプランを作ってもらったりする盛りだくさんの内容になってます!

データサイエンスに関する記事はこちら!

【初心者必見】統計学入門に必要な知識と独学勉強方法を簡単に学ぼう!当ブログ【スタビジ】の本記事では、統計学入門に必要な知識をカンタンにまとめ、それらをどのように効率的に独学で勉強していけばよいかをお話ししていきます。統計学は難しいイメージが少しありますが、学び方をしっかり考えれば大丈夫! 【データサイエンティスト厳選18冊】データサイエンスを学ぶ上でオススメな本・教材!当ブログ【スタビジ】の本記事では、データサイエンスを学ぶ上でオススメできる本を厳選して紹介していきます。ここではデータサイエンティストになるために習得するスキルをデータサイエンスと称しております。いくつかの観点に切り分けて見ていきます。

データサイエンスを勉強できるスクールやサイトは、ぜひこちらを参考にしてみてください!

【徹底比較】データサイエンティストになるための学習ができるスクール9選!当サイト【スタビジ】の本記事では、データサイエンティストへの学習ができるスクールを紹介していきます。スクールに通ったからと言ってデータサイエンティストになれるわけではありませんが、データサイエンティストへの基本を着実に固めることは可能です…
スポンサーリンク

ウマたんスタビジ編集長

大学院は理系の統計科学研究室で、ベイズ統計学・時系列分析・異常検知を研究。日系・外資の消費財メーカーのデータサイエンティストを経て、現在は会社を経営しながらデータサイエンティストとして働いています。

スタビジアカデミー

読んだ内容を、スタアカの「統計学概要」コースで身につける

データサイエンス・AIを、動画と課題で体系的に学べるオンラインスクール。最初のレッスンは無料で見られます。