このテキストは、第40回 Tokyo.R で発表した「チェビシェフの不等式」の補足資料です。
スライド11ページのグラフは次のように描いています。
library(ggplot2)
data <- data.frame(Quality=c(10,9,10,8,9,10,6,10,10,9))
ggplot(data, aes(x=Quality)) + geom_bar(width=.5) + theme(axis.text=element_text(size=28), axis.title=element_text(size=24,face="bold")) + scale_x_continuous(breaks=0:10, lim=c(0,10.1))
スライド中ではデータが二項分布に従うかどうかを調べるために、コルモゴロフ・スミノフ検定を行っていますが、実際は検定のみに頼るのではなく、グラフを描くことをお勧めします。
まずは分布の形を比べてみます。
size = 10
prob <- mean(data$Quality) / size
b <- rbinom(10000, size=size, prob=prob)
data2 <- rbind(cbind(data, Type="Real"), data.frame(Quality=b, Type="Binom"))
ggplot(data2, aes(x=Quality, y=..density.., fill=Type)) + geom_bar(position="dodge") + scale_x_continuous(lim=c(0,10.1), breaks=0:10)
次に、経験分布関数を描いてみます。
ggplot(data2, aes(x=Quality, color=Type)) + stat_ecdf(size=2)
Q-Q plot も描いてみましょう。
library(lattice)
qqmath(~Quality, data=data, distribution=function(p) qbinom(p, size=size, prob=prob), pch=19, cex=2, panel=function(x, ...) {panel.qqmathline(x, lwd=3, col=2, ...);panel.qqmath(x, ...)}, xlim=c(5.7,10.3), xlab="Binomial dist.")
こうやってグラフ化することで、二項分布にあてはまりそうにないことがはっきりと視覚化されます。
また、「6 は異常値なのでは?」などという議論もこれらのグラフから行うことができるでしょう。
ここでは、離散分布に対して証明してみましょう。
確率変数 \(X\) に対して、\(P(X = x_k) = p_k\) と表すことにすると、分散 \(\sigma^2\) に対して次が成り立ちます。
\[ \begin{eqnarray} \sigma^2 &=& E[(X - \mu)^2] \\ &=& \sum_k (x_k - \mu)^2 p_k \\ &=& \sum_{|x_k-\mu| < k\sigma} (x_k - \mu)^2 p_k + \sum_{|x_k-\mu| \geq k\sigma} (x_k - \mu)^2 p_k \\ &\geq& \sum_{|x_k-\mu| \geq k\sigma} (x_k - \mu)^2 p_k \\ &=& \sum_{|x_k-\mu| \geq k\sigma} |x_k - \mu|^2 p_k \\ &\geq& \sum_{|x_k-\mu| \geq k\sigma} k^2 \sigma^2 p_k \\ &=& k^2 \sigma^2 \sum_{|x_k-\mu| \geq k\sigma} p_k \\ &=& k^2 \sigma^2 P(|X-\mu| \geq k \sigma) \end{eqnarray} \]
すなわち、
\[\sigma^2 \geq k^2 \sigma^2 P(|X-\mu| \geq k \sigma)\]
が言えたので、これにより
\[P(|X-\mu| \geq k \sigma) \leq \frac{1}{k^2}\]
が成り立ちます。