2013年12月1日日曜日

ポアソン分布 まとめ

悲しいくらいに、「超」初心者な話題だけれど、いっつも「ポアソン分布」について忘れてしまうので、メモ代わりに、自分なりにまとめた。(詳細などはこれを参照)

■ポアソン分布とは
  ポアソン分布\(Po(\lambda)\)は、二項分布\(Bi(n,p)\)(※)で\(np\rightarrow\lambda\)となるように\(n\)を大きく、\(p\)pを小さくする極限での確率分布。
  二項分布と同じく特定の事象が起きる回数の分布なので、離散型の確率分布。

■ポアソン分布の確率分布の関数
  ポアソン分布は、たった1つのパラメータ「\(\lambda\)」だけで記述される。
  特定の事象が発生する回数を示す確率変数を\(X\)とするとき、それが\(k\)となる確率分布は
  \[Po(X=k) = \frac{\lambda ^ k e ^ {-\lambda}}{k!}\]
  と定式化される。

■ポアソン分布の性質
  期待値と分散が等しく\(\lambda\)となる。


(※)二項分布\(Bi(n,p)\)は、確率\(p\)で起きる特定の事象が、独立な試行を\(n\)回行った時に、起きる回数の確率分布。

2013年8月3日土曜日

Rで「隠れマルコフモデル」の解析

「隠れマルコフモデル」を少し勉強してみたので、まとめてみる。
モデルの考え方について一番参考になったのは、ここ(pdf)と、ここ(pdf)と、ここだ。

▼隠れマルコフモデルの考え方

  隠れマルコフモデルを一言でいうと、
時間的に非定常な観測事象を、「(隠れた)複数の定常状態が、マルコフ性を持つ確率過程で遷移し、それぞれの定常状態の確率分布に従って観測事象が生起される」という考え方で記述しようとするモデル。
といえる。文章で言っても伝わりづらいので、考え方のイメージを下の図に示す。

  観測事象が図上部の折れ線グラフに示されている。ここで観測事象は何でもよい。株価の騰落率の時間変化でも良いし、ある店舗の売り上げの時間変化でも良い。ここで例にあげた図の観測事象は、時間に関して初期・中期・後期のそれぞれで振る舞いが異なるように見える。

  これをモデルに落とし込むため隠れマルコフモデルは「隠れた定常状態(上の例では3つ)が存在し、各定常状態の確率分布(図下部の青・赤・緑で示された確率分布)に従って観測事象が表れ、かつ定常状態間は時間経過と共にマルコフ性を持つ確率過程で遷移する」という考え方をする。

  マルコフ性とは
「状態間の遷移確率は、過去の経緯とか関係なく、「現在がどの状態か?」のみで決定される」
という性質である。例えば現在が定常状態Aであれば(過去にどういう状態遷移をしたに関わらず)状態Aから、Aに自己遷移する確率は何%、Bに遷移する確率は何%、Cに遷移する確率は何%というように決定されるという性質である。

▼隠れマルコフモデルを定式化する。

  上記のような考え方を定式化すると、以下のようになる。
  定常状態(上の例ではA・B・C)が時刻\(t = 1\)~\(n\)に、時間的に連続した系列\( Q:=\{q_1,q_2, \cdot \cdot \cdot, q_n\}\)となる場合に、観測事象が系列\( Y:=\{y_1,y_2, \cdot \cdot \cdot, y_n\}\)となる確率 \(P(Y|Q)\)は
\[P(Y|Q)=\pi_{q_0}\prod_{t=1}^{n} a_{q_t q_{t+1}}b_{q_t}(y_t)\]
ここで、

  • \(b_{q_t}(y_t)\)は、時刻\(t\)の隠れた定常状態\(q_t\)から観測事象\(y_t\)が現れる確率分布。(つまり上図での青や赤や緑で表わされた確率分布)
  • \(a_{q_t q_{t+1}}\)は、時刻が\(t\)から\(t+1\)に進む際に、隠れた定常状態\(q_t\)から\(q_{t+1}\)に遷移する確率。
  • \(\pi_{q_0}\)は、状態\(q_0\)が初期定常情報源となる確率。


▼隠れマルコフモデルで何が推定できるのか?

  隠れマルコフモデルには主に2つのアルゴリズムを用いて以下の推定が可能である。
  1つは、Baum-Welchアルゴリズムを用いて、上記定式化の各パラメータ\(\pi_{q_0}\)、\(a_{q_t q_{t+1}}\)、\(b_{q_t}(y_t)\)を推定すること。
  もう1つは、Viterviアルゴリズムを用いて、観測事象の系列\( Y:=\{y_1,y_2, \cdot \cdot \cdot, y_n\}\)が観測される場合に、尤度関数を最大化する、定常状態系列\( Q:=\{q_1,q_2, \cdot \cdot \cdot, q_n\}\)を求めることだ。

▼解析用のテストデータ作成

では、実際にRで隠れマルコフモデルの解析を行っていく。まずはじめに下図のような解析用のテストデータを作成しておく。
このテストデータは、

  • 定常状態A: 平均10、分散6の正規分布で観測事象が出現する状態
  • 定常状態B: 平均12、分散7の正規分布で観測事象が出現する状態

の2つの定常状態があり、時間1~200と401~600は定常状態A、時間201~400と601~800は定常状態Bとなっているデータだ。

データ作成用のRコードは以下のとおり。
set.seed(1) #乱数シード作成
size <- 200 #データセットの大きさ
mean.a <- 10 #定常状態Aの平均
var.a <- 6 #定常状態Aの分散
mean.b <- 12 #定常状態Bの平均
var.b <- 7 #定常状態Bの分散
x.1 <- rnorm(size, mean.a, sqrt(var.a)) #データ作成
x.2 <- rnorm(size, mean.b, sqrt(var.b)) #データ作成
x.3 <- rnorm(size, mean.a, sqrt(var.a)) #データ作成
x.4 <- rnorm(size, mean.b, sqrt(var.b)) #データ作成
x <- c(x.1, x.2, x.3, x.4) #データ連結
plot(x, xlab = "time", ylab = "observed quantity")

▼Baum-Welchアルゴリズム

実際にBaum-Welchアルゴリズムを用いて、上記定式化の各パラメータ\(\pi_{q_0}\)、\(a_{q_t q_{t+1}}\)、\(b_{q_t}(y_t)\)を推定する。

Rには隠れマルコフ解析用のパッケージ「RHmm」があるので、それを使えば簡単に推定できる(パッケージは前もってインストールしとく必要あり)。実際の解析用のコードは以下のとおり。
> library("RHmm") #隠れマルコフモデルのライブラリ読み込み
> hmm.fitted <- HMMFit(x, nStates = 2) #フィッティング(ステート数は2を設定)
> print(hmm.fitted$HMM) #Baum-Welchアルゴリズムでの推定量を表示
まずRHmmパッケージを読み込み、先のテストデータ「x」、定常状態数は2(今回はAとBの2つだから)を指定してHMMFit関数を実行する。この関数の戻り値はBaum-Welchアルゴリズムの解析結果も含むので、それをプリントする・・・だけ。

実行結果は以下のとおり。
Initial probabilities:
         Pi 1 Pi 2
  3.50879e-35    1

Transition matrix:
            State 1     State 2
State 1 0.997176507 0.002823493
State 2 0.005380641 0.994619359

Conditionnal distribution parameters:

Distribution parameters:
            mean     var
State 1 11.89274 7.75078
State 2  9.99124 6.01621

ここで、結果の内容を見ていく。

まずは、Distribution parametersの項。ここは先の\(b_{q_t}(y_t)\)の推定値、すなわち隠れた定常状態の確率分布について示されている。
・「State 1」がテストデータの定常状態B
・「State 2」がテストデータの定常状態A
を表わしている。
これらの結果に表示された平均と分散は、テストデータを用意した際のパラメータと良く一致している。

次にInitial probabilitiesの項。ここは先の\(\pi_{q_0}\)の推定値を示している。「Pi 2(=State2が初期状態として現れる確率)」がほぼ1であり、定常状態Aが最初に現れているテストデータと合致している。

最後にTransition matrixの項。これは先の\(a_{q_t q_{t+1}}\)の推定値を示している。
  • 定常状態Aの時、定常状態Aに(自己)遷移する確率は0.997程度。定常状態Bに遷移する確率は0.003程度。
  • 定常状態Bの時、定常状態Bに(自己)遷移する確率は0.995程度。定常状態Aに遷移する確率は0.005程度。
と推定されていることを示している。状態A・B共に、テストデータでは200回に199回は自己遷移(確率0.995)。1回はもう一方の状態に遷移(確率0.005)しているので、その状況と合致しているの分かる。

▼Viterviアルゴリズム

次にViterviアルゴリズムを用いて、テストデータのような観測事象が現れたとき、最も尤(もっと)もらしい(尤度関数を最大化する)、定常状態の系列(ここでは状態Aと状態Bの時間系列)を求めてみる。
解析用のRコードは以下のとおり。
> #先ほどのHMMFitの戻り値とテストデータXからViterbiアルゴリズムフィッティング
> vitervi.fitted = viterbi(hmm.fitted,x)
> #Viterviアルゴリズムで求めた、最も尤もらしい状態の系列をプロットする。
> plot(vitervi.fitted$states, xlab = "time", ylab = "Most Likely Status ID")
結果は、次のグラフで、テストデータ作成時に設定した状態遷移の時系列とよく合致している結果が得られている。


以上。

2013年5月26日日曜日

中心極限定理をRでシミュレーション

中心極限定理とは、大まかに言えば、
母集団の確率変数\(X\)がどんな確率分布であっても、その平均と分散が\(\mu\)と\(\sigma^2\)であれば、その標本(サンプル数\(n\))の確率変数\(X\)の和や平均は、それぞれ正規分布 \(N(n\mu, n\sigma^2)\)、 \(N(\mu, \sigma^2/n)\)に従うということである。

それが本当かどうか確かめたかったので、Rのプログラムを書いて検証してみた。
ここでは、「指数分布に従う確率変数の平均」で検証した。

以下にコードを置いておく。
実際にCONSTANTSの部分をいろいろ変えて
  • 分布が正規分布に従い、その平均と分散が中心極限定理の予言通りか?
  • 標本数が大きくなれば、分散は実際に小さくなっていくのか?
などを確認してみるとよい。


#中心極限定理が成り立つかをシミュレーションするRスクリプト
#ここでは、指数分布の確率分布に従う確率変数Xの平均値について検証。

## CONSTANTS
SAMPLE.NUM <- 10 #1回の試行での標本数。
TEST.NUM <- 50000 #試行回数(この数の試行を繰り返して分布が正規分布になるかをみる。)
EXP.LAMBDA <- 3 # 指数関数パラメータλ
PLOT.MAX.X <- 1 #こ

#各行が指数分布に従う確率変数の一つの標本を表わす行列を生成。
data.matrix <- matrix(rexp(TEST.NUM, rate = EXP.LAMBDA), ncol = SAMPLE.NUM)

#各試行(= 各行)の平均をとる。
means.of.each.test <- apply(data.matrix,MARGIN=1,mean)

#各試行の平均の、相対度数ヒストグラムを描画
hist(means.of.each.test, breaks=seq(0, PLOT.MAX.X, by=0.05), xlim=c(0, PLOT.MAX.X), probability = TRUE)

#中心極限定理が予言する平均と分散を求める。
#ここで母集団分布がλ=EXP.LAMBDAの指数分布であり、
#その平均と分散(母平均&母分散)がそれぞれ、
#母平均=1/λ、母分散=1/λ^2なので・・・
theorem.mean <- 1/EXP.LAMBDA
print(theorem.mean)
theorem.var <- 1/EXP.LAMBDA^2/SAMPLE.NUM
print(theorem.var)

#中心極限定理が予言する正規分布を描画する。
#ヒストグラムと正規分布曲線が一致すれば、中心極限定理は正しい!
x <- seq(0, PLOT.MAX.X, by=0.01)
lines(x, dnorm(x, theorem.mean, sqrt(theorem.var)), col="red")

2013年5月18日土曜日

R言語のcut関数の使い方

R初心者として、cut関数がいまいち分かりにくかったので、ここで少しまとめておく。

■cut関数は何をする関数?
一言でいうと「数値データを、指定した分割基準でカテゴリに変換する関数」だ。
もう少し詳しくいうと、例えば英語の試験を行い各人の試験結果を
> x <- c(90, 55, 79, 80, 100)
とする。80点未満を「不合格」、80点以上を「合格」と分けるとすると、xの変数の内容を「合格、不合格、不合格, 合格、合格」と変換したfactor型のオブジェクトを返すのがcut関数だ。

■実際にcut関数を動かしてみる。
上記の例を実際にR上で行ったのが以下。
> x <- c(90, 55, 79, 80, 100)
> cut(x,breaks=c(0,80,100), labels=c("不合格","合格"), right = FALSE, include.lowest = TRUE)

[1] 合格   不合格 不合格 合格   合格  
Levels: 不合格 合格
点数が先ほどの基準に従ってカテゴリ(合格、不合格)に変換されているのが分かる。

■right = FALSEのオプションは?
先のcut使用例で「right=FALSE」のオプションをしている。この説明をしなければならない。
cutのデフォルト動作は、例えばbreaks=c(0,80,100)と指定した場合、
  • (0,80]の区間を不合格
  • (80,100]の区間を合格
とカテゴリ分けする。
ここで丸括弧は開区間、角括弧は閉区間を示す。でも今回は
80点未満を不合格、80点以上を合格としたいから、
  • [0,80)の区間を不合格
  • [80,100)の区間を合格 (注:ここで100がカテゴリ分けに入らないのは後述)
であるべき。このように区間を分けるためにright = FALSE とする。

■include.lowest = TRUEのオプションは?
先のright=FALSEだけでは「100」がカテゴリ分けに含まれない。そこでカテゴリ分けの末端の開区間を閉区間にし、今回の例では100をカテゴリに含むようにするのが、このオプション。

「right = FALSE」「include.lowest = TRUE」を指定することで、今回我々が望む
  • [0,80)の区間を不合格
  • [80,100]の区間を合格
というカテゴリ分けが実現できる。





2013年4月25日木曜日

相加平均と相乗平均の使い分け

統計学の中で「平均」というときに「相加平均」、「相乗平均」、「調和平均」という3種類がある。
この中で、「相加平均」と「相乗平均」について、その使い分けも含めて整理したいと思って、この記事をポストする(※1)。

まずは、それぞれの定義について整理し、そのあと2つの使い分けについて書く。

■相加平均とは
いわゆる小学校の時にならうもので、算術平均ともいう。
\(x_1\)から\(x_n\)までの\(n\)個のデータがあった場合、相加平均\(\bar{x}\)の求め方は
\[ \bar{x} = \frac{ x_1+ \cdots + x_n}{n}=\frac{1}{n} \sum^n_{i=1} x_i\]
となる。

■相乗平均とは
相乗平均は、幾何平均ともいう。

\(x_1\)から\(x_n\)までの\(n\)個のデータがあった場合、相乗平均\(x_G\)の求め方は
\[ x_G = \sqrt[n]{x_1\times \cdots \times x_n}= \sqrt[n]{\prod^n_{i=1}x_i}\]
となる。

余談だが、\(x_G\)の対数をとると、
\[\log x_G = \log \sqrt[n]{x_1\times \cdots \times x_n} = \frac{1}{n} (\log x_1 + \cdots \log x_n)\] 
となり、相乗平均の対数は各データの対数の相加平均になっていることが分かって面白い。

■相加平均と相乗平均の使い分け
本題の使い分けだが、
平均値が必要な場合、「基本的には相加平均を使う」で構わない。ただし、データがある基準の比のデータである場合に、その比の平均をとる場合は相乗平均を使う必要がある。
いう考え方で問題ない。相乗平均を用いる必要がある場合の例を示す。

■相乗平均を使う場合の具体例
ある会社の2年目の売り上げは初年度の4倍、3年目の売り上げは2年目の3倍でした。売り上げの伸び率の平均は?
この時、単純に算術平均で求めると平均は3.5となる。しかし上記例では、3年目は初年度に比べて4×3=12倍に延びているのに対して、上記の算術平均を用いると、3.5×3.5=12.25伸びることとなり矛盾が生じる。

そこで、相乗平均の出番である。
3年目は初年度に比べて4×3=12倍に伸びているなら、12の平方根(つまり相乗平均!)を求めて、

  • 1年目に、\(\sqrt {12}\)伸びる。
  • 2年目に、\(\sqrt {12}\)伸びる。
のように、それぞれの年で均等な伸び率で伸びると考えるほうが、実情にあう。
そのため、ここでは、相加平均より相乗平均を使うべき例になる。

■相乗平均を使った方が「いいかもしれない」例
上記例以外にも、相乗平均を使った方がいい場合がある例を1つ示す。
それは「平均をとる対象が大きく変動するような場合は、相乗平均で平均をとった方が実感覚と合致する。」というものだ。
例えば、数値群(10,1,1000,1,10)の平均をとる場合を考える。
相乗平均をとると204.4となり、一つの外れ値の1000に大きく引っ張られているのが分かる。
一方、相乗平均をとると10となる。こちらの方が相加平均の204.4より、生データの1や10が大半を占める状況の実感覚に合っているように感じられる。



(※1)調和平均については、必要があれば追記することとする。
(参考) ここと、以下の書籍を参考にした。

2013年4月23日火曜日

「オークション理論の基礎」 読書メモ

オークション理論の基礎(著:横尾真)を読んでる。説明が丁寧でわかりやすい。以下、勉強になったことの個人的メモ。重要そうなところは、後日整理して再ポストする予定。

  • オークションは不完全情報ゲーム。
    • ここの例とは異なり、相手の利得行列などの情報が分かっていない状態で行うゲーム。
    • 相手がいくらまで金を出すとか、どこまでリスクをとるとか、事前にわからないからね。
  • オークションの仕組みやルールを「オークションのプロトコル」という。
  • オークション参加者が自分の評価値を正直に入札するのが支配戦略となるプロトコルは「誘因両立性(Incentive compatibility)がある」という。(この言葉は「行動実験」を行う時にも意識されるらしい。実験する時には、アンケートなどに被験者が正直に答えるようにしてほしいから。)
  • 様々なプロトコルがある。
  • 買い手・売り手のどちらか一方だけが複数でオークションを行うものを「片方向オークション」という。
  • 片方向オークションの例
    • 単一財のオークション
      • 公開入札方式 (open bid auction)
        • 英国式
          • 支配戦略「少しずつ値を上げて、自分の評価値より大きくなると、ビッドをやめる。」
        • オランダ式
          • 戦略的に第一価格秘密入札と同値
          • 一般的な支配戦略は存在しない。(相手の戦略による。)
      • 封印入札方式 (sealed bid auction)
        • 第一価格秘密入札
          • 戦略的に、オランダ式と同値
          • 一般的な支配戦略は存在しない。(相手の戦略による。)
        • 第二価格秘密入札(ビックレー方式)
          • 支配戦略は「自分の表価値を正直に入札する」こと。
          • つまり「誘因両立性」がある。
      • 【収入同値定理】・・・ベイジアンナッシュ均衡が存在する場合、均衡点の収入の期待値は上記4つのプロトコルで等しくなる。
    • 複数財のオークション(組み合わせオークション)
      • 同時多数回オークション(英国式の一般化方式)
        • FCCの無線周波数帯域の使用権オークションで使用されている。
      • 一般化ビックレー入札
        • 誘因両立性あり。
        • 支配戦略均衡における割り当て結果はパレート効率的。
  • 買い手・売り手の両方が複数のオークションを行うものを「ダブル(両方向)オークション」という。
    • 例えば、株取引なんかがこれに相当する。

パレート効率性と囚人のジレンマ

あるゲームで各参加者に支配戦略が存在する場合、そのゲームは各参加者が支配戦略を選択する支配戦略均衡状態となることが予想される。

しかし、支配戦略均衡状態になったとしても、その状態が必ずしも「社会(集団)全体で最適な状態」となっているとは限らないというお話。

「社会全体で最適な状態」というのはどういうものかを考えるために、「パレート効率性」という考え方を導入する。

■パレート効率性とは?
ある集団が、1つの社会状態(資源配分)を選択するとき、集団内の誰かの効用(満足度)を犠牲にしなければ他の誰かの効用を高めることができない状態を、「パレート効率的(Pareto efficient)」であると表現する。また誰の効用も悪化させることなく、少なくとも一人の効用を高めることができるとき、新しい社会状態は前の社会状態をパレート改善(Pareto improvement)するという。言い換えれば、パレート効率的な社会状態とは、どのような社会状態によってもそれ以上のパレート改善ができない社会状態のことである。~Wikipediaより~

具体例として、AさんとBさんが1000円を分け合う場合を考える。この場合、AさんとBさんは自分の取り分が増えれば増えるほどうれしい(効用が大きい)。
  • AさんとBさんが300円づつ分け合う場合・・・これはパレート効率的ではない。なぜなら、例えばAさんが700円でBさんが300円を取るようにすれば、AさんもBさんも取り分を減らすことなく、配分できるからだ。
  • AさんとBさんが500円づつ分け合う場合・・・これはパレート効率的。なぜなら、この状態から配分を変更して片方の取り分を増やそうとすると、もう一人の取り分を減らさざるえないから。
  • Aさんが0円、Bさんが1000円・・・これもパレート効率的。なぜならこの状態からAさんの取り分を増やそうとするとBさんの取り分を減らさざるえないから。
最後の例のように、結果の公平性についてパレート効率性は考えない(Aさんかわいそう)。パレート効率性は、社会全体としての望ましい選択の「必要条件」ではあるが、「十分条件」ではないことに注意。

■囚人のジレンマ
パレート効率性が分かったら、本題の「支配戦略均衡はパレート効率とは限らない」というお話を囚人のジレンマを例に見る。
(例)
警察が共犯2人の身柄を拘束している。この時、
  • 2人とも自白しなければ、犯罪が立証できず、2人とも釈放(それぞれの利得 = 3)
  • 片方だけ自白した場合、自白した者は報奨金を得て釈放(利得 = 5)。自白しなかった者は通常よりも長い懲役になる。(利得=1)
  • 両方とも自白した場合は、通常の懲役(それぞれの利得 = 2)
とする。これを利得行列で表わすと以下の表になる。 

このとき、支配戦略均衡は両方とも「自白する」を選ぶことになる。
でも、これってパレート効率的ではない。
明らかにパレート効率的な状態は「両者が自白しない」状態であり、両者が合理的な判断をしたにも関わらず、パレート効率的な状況に至れない状況になっている。

結論として「支配戦略均衡状態になったとしても、その状態が必ずしも「社会(集団)全体で最適な状態」となっているとは限らない。」


2013年4月19日金曜日

ミニマックス戦略と混合戦略

前回、支配戦略均衡・反復支配戦略均衡について書いたが、それらのどちらも存在しない場合がある。この場合、なんとかして最悪の結果を避けるという考え方の「ミニマックス戦略」をとる方法がある。

下図のような利得行列を考える。ここでゲームはゼロサムゲームで、下図はプレイヤー甲の利得行列を表わしている。(プレーヤー乙は甲の利得の -1倍)
このゲームは両者に支配戦略均衡がない。そのため、プレイヤー甲は乙がどの戦略を選択しても最悪利得が最大になる戦略C(最悪利得が3で他の戦略よりも大きい)を選ぶ。一方、プレイヤー乙は、甲がどの戦略を選択しても最悪損失が最も小さくなる戦略F(最悪損失が-1で他の戦略より損失額が小さい)を選ぶ。

以上から、戦略CとFの組み合わせが均衡点となる。ここでこの組み合わせは以下のような性質がある。
プレイヤー甲が戦略Cを選んだ場合、乙は損失を最小にするために戦略Fを選ばざるを得ない。また逆に、プレイヤー2が戦略bを選んだ場合に、プレイヤ1は利益を最大にするために、戦略Cを選ばざるを得ない。
これは、戦略CとFの組み合わせが丁度、プレイヤー甲の最悪利益を極大にしプレイヤー乙の最悪損失を極小にする鞍点となっている。ゲームに鞍点があればその戦略の組み合わせが均衡点になる。

一方で、鞍点が存在しないようなケースもある。たとえば数のような利得行列の場合だ。(ゼロサムゲームで行列はプレイヤー甲側の利得)
この利得行列には支配戦略均衡が無いからミニマックス戦略で考えると戦略BとDの組み合わせとなる。しかし前述の鞍点がある例と異なり、プレイヤー甲がミニマックス戦略で戦略Bを選ぶなら乙は戦略Cを選んだ方が得。つまり鞍点が存在しない。

このような場合、画一的な戦術(純粋戦術:複数回行う場合に毎回同じ戦略を選択する)のではなく、確率的に戦略を選択(混合戦術)するのが現実的。



支配戦略と支配戦略均衡、そして反復支配戦略均衡

他のプレイヤーがとる戦略のすべてに対して最適な戦略を支配戦略という。例えば、下図のような利得行列を考える。


この利得行列の場合、プレイヤー甲の利得は乙が戦略CとDのどちらを選択しても戦略Aのほうが大きい。そのためプレイヤー甲にとって戦略Aは支配戦略となる。同様にプレイヤー乙の利得は、甲が戦略AとBのどちらを選択しても戦略Cが大きい。そのため甲と乙が合理的である場合、戦略の組み合わせは(A,C)の組み合わせに落ち着く。この状態を支配戦略均衡という。


一般には支配戦略均衡が存在しない場合もある(というかその場合の方が多い)。例えばジャンケンを考える。相手がグーを出す場合にはパーを出すのが利得が大きい一方で、相手がチョキを出す場合はグーを出すのが利得が大きく、支配戦略は存在しない。

支配戦略が無い場合にも、相手がどのような戦略をとっても、利得が大きくない戦略を削除していくことにより、最終的に選ぶべき戦略が残る場合がある。これを反復支配戦略均衡(支配される戦略の逐次消去)という。

例えば、下図のような利得行列を考える。
この利得行列は、両プレーヤーにとって先述の支配戦略は存在しない。
しかし、プレイヤー乙は、プレイヤー甲が戦略AやBをとっても戦略Eが最も利得が高くなることはないため、プレイヤー乙は戦略Eを選択することはない。そのため戦略Eを除去し、A、B、C、Dの四つだけの利得行列(下図)を考える。
この行列では、プレイヤー乙には支配戦略が存在しない一方で、プレイヤー甲は戦略Aが支配戦略である。そのためプレイヤー甲が戦略Bを選択することはない。そのため行列から戦略Bを除去すると、自動的にプレイヤー乙は戦略Dをとらざるを得ない。(戦略Aのもとでは戦略Dのほうが利得が大きいため。)最終的に戦略の組み合わせ(A、D)が均衡状態となる。

このように、相手の戦略選択に関わらず利得の少ないものを取り除いていって生まれる均衡を反復支配戦略均衡(支配される戦略の逐次消去)という。

2013年4月11日木曜日

標本分布(←大事!)

統計には大きく2つある。記述統計と推測統計だ。

記述統計は、調査対象集団の性質のデータを、有意な形に要約して記述することが目的の統計。ここでは調査者が調査対象集団についての必要な情報を全て手に入れられることが前提になっている。例えば、あるクラスの数学の試験の平均を求めたい場合などだ。クラス全員の学力の傾向を調べたいために、クラス全員の学力の平均や偏差値を計算するわけだ。

一方、推測統計は、調査者が調査対象集団についての必要な情報の全ては手に入らないが、何らかの調査をしてその結果から対象集団の性質を推測することを目的とするものだ。日本の中学3年生の学力傾向を調べたい時に、本当に日本の中学3年生全員を対象に調査を行うと非常に多くのお金と労力が必要になる。それを避けるため、全国から無作為に中学生を抽出して学力試験を行い、その結果を基に日本全体の中学3年生の学力傾向を推測しようと考える。これが推測統計だ。

推測統計を行う場合、上記に書いたとおり対象(上の例だと日本の全中学3年生)から「無作為」に標本(サンプル)を抽出し、その性質を調査するのが原則だ。

「無作為」に標本を抜き出すため、標本統計量(標本から計算される統計量:標本平均や標本分散など)は、標本の抜き出し方によって「偶然決まる量」であり、すなわち確率変数だ。

標本から母数(母集団の各統計量)を推定する際には、この確率変数である標本統計量の確率分布(=標本分布)がどのような性質があるのかを知っていないといけないし、調査に説得力が生まれない。

以下に一例を示す。

■算術平均
統計量が算術平均の場合、以下の性質がある。
  • 母集団の分布がどのような分布でも、
    • 母平均=標本平均となる。(つまり不偏性がある。)
    • 標本平均の標準誤差=標準偏差は\(\sigma/\sqrt{\mathstrut n}\)となる。(ここで\(\sigma\)は母標準偏差、\(n\)はサンプル数)
  • 母集団分布が正規分布であれば標本平均の標本分布も正規分布となる。
  • 母集団分布が正規分布でない場合は、標本平均の標本分布は正規分布とはならないが、サンプル数が多い場合の標本平均の標本分布は、正規分布に近づく。(中心極限定理)

■分散
統計量が分散の場合、以下の性質がある。
  • 母分散=不偏分散(※)の算術平均(つまり不偏性がある。不偏分散という名前もここからきている。)
  • 上記のとおり不偏分散の算術平均は母分散と一致するが、不偏分散の確率分布のピーク(最頻値)は母分散とは一致しない。

(※)以下で定義される分散。ここでn-1で割るかわりにnで割る量を標本分散と呼ぶ。
\[\sigma^2 = \frac{\sum_{i} (x_i - \bar{x})^2}{n-1}\]

2013年4月10日水曜日

共分散と相関係数

2つの変数(ここでは\(x\)と\(y\)とする)の統計値があり、その2つの統計値がどれほど密接に関連しているかを検査するには、相関係数を見ればよい。

その前に、「共分散」という量について考える。
共分散は以下の量で定義する。
\[s_{xy} = \frac{\sum_{i} (x_i - \bar{x})(y_i - \bar{y})}{n}\]
この量は、xが平均より大きい値をとるときにyも平均よりも大きい値をとる傾向にある場合(つまりは正の相関がある場合)に正の値をとる。一方、負の相関が有る場合は、負の値をとる。

でも、共分散の「大きさ」にはあまり意味がない。相関が強いからといって、大きい値になったりするとは限らない。

その理由の一つが、この共分散という量はxとyの単位の積の次元を持つから。例えば変数xが長さに関する量で、その単位を[m]にするか[cm]にするかで、共分散の大きさが変わる。

2つ目の理由が、各変数の値のバラツキ度合いで共分散の大きさも変わること。例えば変数xのばらつきが大きければ\((x_i - \bar{x})\)が大きくなるから、共分散の値も大きくなってしまう。

これらの難点を克服するために、共分散を変数xとyの標準偏差で割ってやろうという発想が生まれる。それが「相関係数 \(r_{xy}\)」だ。つまり、
\[r_{xy}=\frac{s_{xy}}{s_x s_y}\]

ここで、\(s_x\)、\(s_y\)はxとyの標準偏差。

xとyの標準偏差で割ることにより・・・
  • 相関係数は無次元量になり、変数の単位によらず一定の値をとるようになる。
  • 変数x、yの取る値のばらつきの標準偏差を1に正規化することによって、各変数のばらつきに依存しない量になる。
ということで、相関係数が、純粋に変数x、yの相関に依存する量となる。

すばらしい。

(補足1)
相関係数は変数が量的変数の場合に計算できるのだけれど、質的変数である場合は計算できない。この場合、相関度合はクロス集計表を作って相関度合を調べたり、ファイ係数(質に数値を割り当てて無理矢理に相関係数を計算する・・・ようなもの)を計算して調べたりする。

(補足2)
厳密には、上記で定義した相関係数は「ピアソンの積率相関係数」と呼ぶ。他にも相関係数の定義があって、例えば「スピアマンの順位相関係数」や「ケンドールの順位相関係数」などがあるらしい。