戻る

統計学入門 第6章の問題 6.2 急患用ベッド数

はじめに

この記事は統計学入門1のを読んだことをまとめた振り返り記事です。

問題

東京都内のA医大病院は、救急患者のために常時4床の空ベッドを確保しているという。ここへ収容される救急患者数XXλ=2.5\lambda = 2.5の ポアソン分布Po(2.5){\cal Po}(2.5)に従うとき、ベッドが不足する確率を計算せよ。

※ポアソン分布は

Po(λ)=λxx!eλ {\cal Po}(\lambda) = \frac{\lambda^x}{x!} e^{-\lambda}

を満たす確率分布です。

解答

ベッドが不足するということは患者が4人以上いるときですので、その確率はP(X4)P(X \geq 4)に対応します。つまりP(X>4)=1P(X4)P(X > 4) = 1 - P(X \leq 4)となります。P(X4)P(X \leq 4)はまさに累積分布関数F(x)F(x)です。結局やっていることは

P(X4)=1P(X4)=1F(4)=1e2.5(2.500!+2.511!+2.522!+2.533!+2.544!)0.1088\begin{align*} P(X \geq 4) &= 1 - P(X \leq 4) \\ &= 1 - F(4) \\ &= 1 - e^{-2.5} \left( \frac{2.5^0}{0!} + \frac{2.5^1}{1!} + \frac{2.5^2}{2!} + \frac{2.5^3}{3!} + \frac{2.5^4}{4!} \right) \simeq 0.1088 \end{align*}

の計算になります。プログラミングで計算すると下記のようになります。

import kotlin.math.exp import kotlin.math.pow fun factorial(n: Int, acc: Int = 1): Int { if (n == 0) return acc return factorial(n - 1, n * acc) } fun poissonDistribution(lambda: Double, x: Int): Double { return exp(- lambda) * lambda.pow(x.toDouble()) / factorial(x).toDouble() } fun main() { val x = 4 val lambda = 2.5 var sum = 0.0 for (k in 0..x) { sum += exp(-lambda) * lambda.pow(k) / factorial(k) } println("F(x) = $sum") println("P(X <= 4) = ${1.0 - sum}") // 0.1088 }

参考文献

リポジトリ

Footnotes

  1. 統計学入門 東京大学教養学部統計学教室編 東京大学出版会

戻る