データサイエンティスト スキルチェックリストに出てくる用語の意味を調べてみた ~ データサイエンス力 基礎数学 統計数理基礎3

2022-01-08
Main Image

目次

こんにちは。

データサイエンスを勉強している一般人です。

データサイエンティスト協会なるところが「データサイエンティストスキルチェックリスト」なる資料を公開しているので、勉強がてら用語の意味をまとめています。自分であれこれ調べて自分なりにまとめていきたいと思います。

ボリュームがかなり多いので何回かに記事を分ける予定です。

まとめ記事はこちら : 【まとめ記事】 データサイエンティスト スキルチェックリストの用語の意味を調べてみる 【データサイエンス】

今回は「データサイエンス力 基礎数学 統計数理基礎」編その3。統計数理もラストになりました。

この記事を読んでいけばデータサイエンティストという人材に求められている知識の片鱗がわかったり、データサイエンティストと名乗る人たちの会話に役立つかもしれません。何かのご参考に。

データサイエンティスト スキルチェックリストとは?

こちらの記事をご参考に。

【まとめ記事】 データサイエンティスト スキルチェックリストの用語の意味を調べてみる 【データサイエンス】

他のカテゴリの用語まとめ記事にも上のページから飛べます。

それでは以下に データサイエンス力 「統計数理基礎」 に出てくる用語の意味を調べていきます

ベイズの定理 - Bayes' theorem

結果から原因を推定したいときに使う、条件付き確率の変形式である定理のこと。

条件付き確率は統計数理基礎 その1で書いたように、AAが発生したという条件でBBが発生する確率」で、以下の式でした。

P(BA)=P(AB)P(A)P(B|A)= \frac{P(A \cap B)}{P(A)}

これの両辺にP(A)P(A)を掛けて左右入れ替えると、P(AB)=P(A)×P(BA)P(A \cap B)= P(A) \times P(B|A) (この形を「乗法定理」という)。これは右辺のAABBを入れ替えても成り立つので、P(AB)=P(B)×P(BA)P(A \cap B)= P(B) \times P(B|A) です。これを条件付き確率の式に代入すると、以下のベイズの定理の式が得られます。

P(BA)=P(B)P(AB)P(A)P(B|A) = \frac{P(B)\cdot P(A|B)}{P(A)}

つまり、「BBが原因でAAが起きた確率は?」という現在の結果から過去の原因を探る問題を条件付き確率を使って求めることが出来ます。

BBが複数イベントB1,B2,...B_1,B_2,...の排反事象だった場合、求めたいイベントBiB_iと書けます。また、P(A)P(A)ABjA \cap B_jの総和なので、展開して以下のような形で書くことができます。

P(BiA)=P(Bi)P(ABi)P(Bj)P(ABj)P(B_i|A) = \frac{P(B_i)\cdot P(A|B_i)}{\sum P(B_j)\cdot P(A|B_j)}

実際の使い方としては、「ウィルス検査の結果が陽性だったとき、本当にそのウィルスに罹っているのか?」という問題に対して確率で答えられるようになります。上の言い方に直すと、「真の罹患(=イベントBB)が原因で、検査結果が陽性(=イベントAA)となった確率は?」という問題です。

たとえば「罹患率1%のウィルスに対し、陽性・陰性ともに検出率90%の検査で陽性と出た。さて、本当にウィルスに罹っている確率は?」これを整理してみます。

  • 真の罹患率 P(B1)=0.01P(B_1)=0.01
  • 罹患していない確率 P(B2)=10.01=0.99P(B_2)=1-0.01=0.99
  • 真の罹患者を陽性判定する確率 P(AB1)=0.90P(A|B_1)=0.90
  • 罹患していない人を陽性判定する確率 P(AB2)=10.9=0.1P(A|B_2)=1-0.9=0.1
    • ちなみにこの「-0.9」は、陰性検出率、つまり「罹患していない人を正しく陰性判定する確率」の0.9です。

したがって、ベイズの定理で計算すると

P(B1A)=P(B1)P(AB1)P(Bj)P(ABj)=0.01×0.900.01×0.90+0.99×0.100.0833P(B_1|A) = \frac{P(B_1)\cdot P(A|B_1)}{\sum P(B_j)\cdot P(A|B_j)} = \frac{ 0.01 \times 0.90 }{ 0.01 \times 0.90 + 0.99 \times 0.10 } \simeq 0.0833

ということで、この場合は検査結果で陽性と出ても、その原因がウィルスである人は1割もいないということがわかります。「再検査の重要性」ってやつですね。

参考 : 統計WEB | ベイズの定理

参考 : 統計WEB | ベイズの定理の使い方

ベイズ推論 - Bayesian inference / ベイズ推定 - Bayesian estimation

母数(定数)を求めるのではなく、事前確率・事後確率(条件付き確率)を使って、ベイズの定理に基づいて「確率分布」を調べる方法。

条件は主観や過去の経験によるので多少の曖昧になる一方、客観的な証拠データを追加して、より客観性の高い確率分布へと更新することができる(ベイズ改定とかベイズ更新とか言う)、というメリットがあります。主観を式にしているので、人の思考プロセスに近い式表現が可能です。

先程のベイズの定理の文字を置き換えます。イベントBBHH仮説(Hypothesis)、イベントAAEE証拠(Evidence)にします。

P(HE)=P(EH)P(H)P(E)=P(EH)P(H)P(EH)P(H)P(H|E) = \frac{P(E|H) \cdot P(H)}{P(E)} = \frac{P(E|H) \cdot P(H)} { \sum {P(E|H)}{P(H)} }
  • P(H)P(H)は「主観や経験に基づいて予めわかっている仮説」なので「事前確率」と呼ばれます。
  • P(HE)P(H|E)は「証拠が観測され、仮説が発生する」という「事後確率」と呼ばれます。
    • EEという客観的証拠データ入手後に更新される確率分布なので、「事後」です。
  • P(EH)P(E|H)は「仮説であるときに証拠が発生する」ということで「尤度」と呼ばれます。「もっともらしさ」という意味です。
  • P(E)P(E)は「周辺尤度」とか言いますがそのまま計算できないので事前確率と尤度の形に展開します。

したがって、以下の流れで「未知の確率分布」を推定します。先程の例も添えます。

  • 主観や経験から、事前確率P(H)P(H)を仮定する
  • 尤度P(EH)P(E|H)を仮定する
  • ベイズの定理で事後確率P(HE)P(H|E)を計算する

このように主観から客観的証拠データを補足してアップデートしていきます。実際は確率ではなく確率分布を扱うことで分布が更新されていきます。

あまり気にしなくて良いかもですけれど、推定と推論がごっちゃに使われてたりするので、違いを調べてみました。推定(estination)は機械学習の学習行程で使われる言葉で、推論(inference)は機械学習の予測(prediction)行程で使われる言葉のようです。内容は同じだけれども、使う場面によって使い分ける感じですかね?

参考 : 推論(inference)/推定(estimation)/予測(prediction)とは?

英語版Wikipediaだと一見区別されてるように見えますが、「estimator」は推定ではなく「推定器」です。「決定理論に置いて、損失関数の事後期待値を最小化する推定器または決定ルール」というまた違った意味で解説されてます。

参考 : Wikipedia | Bayesian inference

参考 : Wikipedia | Bayes estimator

自己情報量 - self-information

確率で発生するある1つのイベントから得られる情報の価値を示す量のこと。 MMという確率変数がmmという値をとるとき、式で書くと次のように対数関数で表される。(ちなみにM,mM,mはMessageのM。)

I(m)=log(1P(m))=log(P(m))I(m)=\log (\frac{1}{P(m)}) = - \log (P(m))

底は何でも良いのですがシャノンという人の情報理論に従うのが一般的で、その場合は底が22で単位はbit。16bitとかPCで扱うデータの単位でも使ってるアレですね。ちなみに底をeeとする場合はbitではなくnatとなります。

例えば「サイコロを振って3が出た!」というイベントの情報量は、P(E)=16P(E)=\frac{1}{6}なので、上式に代入してI(E)I(E) はおよそ2.6bitです。2bitが4通り、3bitが8通りを表現できるので、6通りのうちの1つのイベントが2と3の間にあることは感覚的に合ってますね。

また、情報量(情報の価値)は確率が低い、つまり「珍しいイベント」ほど大きくなり、「よくある出来事」ほど小さいということが式からわかります。グラフを書くと「減少する対数関数の確率分布」なので、横軸の値(確率)が小さいほど大きく、横軸の値が大きいほど小さくなります。

ところで「自己」って何やねん。ということに対する個人的な解釈ですが、確率分布のグラフで言うと「ある横軸の1つの値を自分として、その自分に対する情報量」ということだと思います。つまりMMの中の一点の値mmが自己。一点を選択した値。日本Wikipediaには「選択情報量」として書かれてますね。

参考 : Wikipedia | 情報量

参考 : Wikipedia | Quantities of information

エントロピー - entropy

情報量の平均のこと。平均情報量。 情報量のグラフを書くと「対数関数の確率分布」として考えることもでき、この確率分布の「期待値」がエントロピーです。

H(M)=E(I(M))=mMp(m)I(m)=mMp(m)log(p(m))H(M) = E(I(M)) = \sum_{m}^{M} p(m)I(m) = - \sum_{m}^{M} p(m) \log (p(m))

ん、何この変換?と思った方は、統計数理基礎 その1にある「期待値」の章を御覧ください。

エントロピーが大きくなるのは、イベントの結果が「最もランダム性があるとき」です。逆に「もうそんなの何が起きるか大体答えがわかってるよ!」みたいなときは情報量が極小なのでエントロピーも小さくなります。完全にわかりきってるときは0ですね。

カルバック・ライブラー情報量 - Kullback–Leibler divergence

任意の確率分布QQが、真の確率分布PPに対して「どれだけ離れているか」という差を表す量。 情報利得とも言われる。

離散確率分布の場合、以下のように定義される。

DKL(PQ)=iP(i)logP(i)Q(i)D_{KL}(P||Q) = \sum_{i} P(i) \log \frac{P(i)}{Q(i)}

「どれだけ離れているか」とは、新たに得たQQという情報が真の確率分布PPに対して「どれだけ新しい情報を得たか」と言い換えられます。(なので情報利得という。)その情報差の平均、つまり確率分布でいうと期待値が、上の式に合致します。

参考 : Kullback-Leibler divergence | wikiwand

フィッシャー情報量 - Fisher information

確率変数XXが母数θ\theta(パラメータ)に対して持つ情報量のこと。 数式で言うと、パラメータに対する確率変数の「対数尤度関数」の、パラメータの偏微分である「スコア関数」の分散(もしくは2次モーメント)のこと。日本語ムズ...

まず確率変数XXの確率密度関数をθ\thetaを母数としてf(xθ)f(x|\theta)とすると、尤度関数(次の章で解説)は

L(θx)=f(xθ)L( \theta | x) = f(x | \theta )

です。これの自然対数をとったものが対数尤度関数なので、それを母数で偏微分した次の式が「スコア関数」。観測したデータxxによって決まるθ\thetaの確率密度関数。

V(xθ)=θlnL(θx)V(x| \theta ) = \frac{ \partial }{ \partial{\theta} } \ln L(\theta | x)

でもってその2次のモーメント(=2乗の期待値)なので、以下のようにフィッシャー情報量は定義されます。

Jn(θ)=E(V(θ)2)=E[(θlogf(xθ))2]J_n(\theta) = E(V(\theta)^2) = E[(\frac{\partial}{\partial{\theta}} \log f(x|\theta))^2]

ちなみに2次モーメントではなく「スコア関数の分散」という解釈でも計算していくと上と同じになります。(分散は「2乗の期待値 - 期待値の2乗」。スコア関数の期待値が0になるので、「2乗の期待値」のみ残る。)

母数がNN個の場合、これをパラメータのベクトルとすると、フィッシャー情報量はN×NN \times N の正定値対称行列である「フィッシャー情報行列」になります。つまり母数(パラメータ)同士が直交している状態です。

感覚的に解釈しようとすると、フィッシャー情報量は「観測値の対数尤度をパラメータで偏微分して得られる確率変数(スコア関数)のばらつき具合」。ちょっとイメージが沸くような沸かないようなだけど、どうやらこれが「母数に対する確率変数XXの情報量」らしい。

たとえば、正規分布の母数ベクトルは θ=(μ,σ2)\theta = (\mu, \sigma^2) なので、正規分布の「対数尤度関数の微分であるスコア関数の2次モーメント」を計算すると以下のようなフィッシャー情報行列が得られます。(計算割愛。)

J(μ,σ2)=(1σ20012(σ2)2)J(\mu, \sigma^2) = \begin{pmatrix} \frac{1}{\sigma^2} & 0 \\ 0 & \frac{1}{2(\sigma^2)^2} \end{pmatrix}

これらが「正規分布が母数に対して持つ情報量」とのこと。

参考 : Wikipedia |フィッシャー情報量

尤度 - likelihood / 尤度関数 - likelihood function

観測結果から見て前提条件を推測する「もっともらしさ」を、前提条件を変数とした関数で表したもの。

上の章でも少し出てきましたね。母数を前提条件(たとえば分布の平均がμ\muである)とするなら、母数(μ\mu)を変数とした関数 f(xμ)f(x|\mu) の式で、xxを定数として扱います。ん?少し詳しく比較しましょう。

確率変数の観測値xx、母数(パラメータ) θ\theta である確率密度関数 f(xθ)f(x | \theta)に対して、尤度関数はLikelihoodの頭文字を使ってL(θx)L(\theta | x)という関数で書かれます。ややこしいけどxxθ\thetaが逆であることに注意。確率密度関数ffθ\thetaを定数としたxxの関数ですが、尤度関数LLxxを定数としたθ\thetaの関数です。

例えば、表が出る確率pHp_Hが10%であるアンフェアなコインを2回投げて、2回とも表(HHHH)が出る確率は、

P(HHpH=0.1)=0.12=0.01P(HH|p_H=0.1) = 0.1^2 = 0.01

逆から考えて、「コインを2回投げた結果が表(HHHH)だったとき、コインの表が出る確率pHp_Hが10%である尤度(もっともらしさ)」は、以下のように言えます。

L(pH=0.1HH)=P(HHpH=0.1)=0.01L(p_H=0.1 | HH) = P(HH|p_H=0.1) = 0.01

「いやいや、2回連続で表が出るなんて、表が出やすいコインである方がもっともらしいでしょ。コインの表が出る確率が10%だったと仮定したら、2回も表が出ることのもっともらしさなんて0.01くらいだよ。」これが尤度。

参考 : Likelihood function | wikipedia

最尤推定 - maximum likelihood estimation

尤度関数L(θx)L(\theta | x)を最大にするθ=θ^\theta=\hat \thetaを求めることで、確率分布の母数を点推定する方法。

つまり、「最ももっともらしい」母数一点を求めます。(母数を「区間」ではなく「一点」で推定する方法を点推定といいます。) この一点θ^\hat \thetaは最尤推定量(maximul likelihood estimator, MLE)と言います。※もっともらしい点が複数ある場合は1点にならない場合もあります。

尤度関数L(θ)L(\theta)は計算が面倒なので、連続確率分布の場合は対数をとって対数尤度関数l(θ)l(\theta)を定義し、以下の方程式(尤度方程式)を解くのが一般的なようです。

θlogL(θ)=0\frac{\partial}{\partial \theta} \log L(\theta) = 0

ちなみに正規分布の母数θ=(μ,σ2)\theta=(\mu, \sigma^2)の最尤推定量を上の式で求めると、

θ^=(μ^,σ^2)=(xˉ,1ni=1n(xixˉ)2)\hat \theta = (\hat \mu, \hat \sigma^2) = (\bar x, \frac{1}{n} \sum_{i=1}^{n} (x_i - \bar x)^2)

となります。

参考 : Wikipedia | 最尤推定

参考 : Wikipedia | Maximum likelihood estimation

十分統計量 - sufficient statistic

母数を推定するのに十分な情報を含んだ統計量のこと。 統計量とは平均値、分散、総和、最大値、最小値など、データから計算できる値のことです。「母数を推定するのに十分」とは、「条件付き確率分布がθ\thetaに依存しない」ということです。

確率変数XXの「ある統計量」をT(X)=tT(X)=tとすると、以下の式が成り立ち、「T(X)T(X)θ\thetaに対して十分である」と言えます。

P(xT(X)=t,θ)=P(xt)P(x|T(X)=t,\theta) = P(x|t)

つまり、「ある統計量T(X)=tT(X)=tという条件さえあれば、母数がθ\thetaという仮定がなくても、サンプルxxの発生確率を求められる」という量のことです。

例えば、ある確率分布について「データの総和が100なら、母平均がいくつであるという仮定がなくても、サンプルの値の発生確率が求められる」とき、「総和」という統計量が、「母平均に対して十分性がある十分統計量である」と言い換えられそうです。

十分統計量さえわかれば、最尤推定量を求めるのに個々のデータは必ずしも必要ではなくなりますので、最尤推定量を求めるのに十分な量とも言えます。例えば正規分布の母数μ\muの十分統計量はxˉ\bar xなので、一個一個のデータの値がわからなくとも平均xˉ=10\bar x=10さえわかっていれば、最尤推定量μ=10\mu = 10であることがわかります。もっというと、xˉ\bar xはサンプルデータの「総和÷サンプル数」なので、総和xi\sum x_iも十分統計量です。

参考 : Wikipedia | Succifient statistic

参考 : 最尤法と十分統計量

フィッシャー・ネイマンの分解定理 - Fisher–Neyman factorization theorem

十分統計量が満たす定理で、この定理を満たしていればT(X)T(X)が十分統計量であると言える関係式のこと。 十分統計量を求めたいときに使う定理です。

P(xθ)=fθ(x)=h(x)gθ(T(X))P(x | \theta) = f_\theta (x) = h(x) g_\theta (T(X))

確率密度関数P(Xθ)P(X|\theta)が、母数に依存せずサンプルxxに依存するh(x)h(x)と、統計量T(X)T(X)と母数に依存してサンプルxxに依存しないgθ(T(X))g_\theta(T(X))に分解できるということを意味しています。

参考 : Wikipedia | Succifient statistic

まとめ

というわけで、今回はデータサイエンティスト協会が公開している「データサイエンス スキルチェックリスト」「基礎数学」「統計数理基礎」に出てくる用語の意味をまとめてみました。

今回で「統計数理基礎」編が終わりました。

他のカテゴリもまとめて行く予定です。ぜひご参考に。

まとめ記事はこちら : 【まとめ記事】 データサイエンティスト スキルチェックリストの用語の意味を調べてみる 【データサイエンス】

それでは〜

関連記事

統計学のまとめ - 確率分布編 【Pythonでグラフ化あり】

ペンギンデータセットでデータサイエンス入門 〜 機械学習の基本・単回帰編【Python/scikit-learn/教師あり学習】

ペンギンデータセットで機械学習/データサイエンスをはじめよう〜ダウンロード編

ads【オススメ】未経験からプログラマーへ転職できる【GEEK JOBキャンプ】
▼ Amazonオススメ商品
ディスプレイライト デスクライト BenQ ScreenBar モニター掛け式
スマートLEDフロアライト 間接照明 Alexa/Google Home対応

Author

Penta

都内で働くITエンジニアもどき。好きなものは音楽・健康・貯金・シンプルでミニマルな暮らし。AWSクラウドやデータサイエンスを勉強中。学んだことや体験談をのんびり書いてます。TypeScript / Next.js / React / Python / AWS / インデックス投資 / 高配当株投資 More profile

Location : Tokyo, JPN

Contact : Twitter@penguinchord

Recommended Posts

Copy Right / Penguin Chord, ペンギンコード (penguinchord.com) 2022 / Twitter@penguinchord