Help us understand the problem. What is going on with this article?

統計検定の対策をしてみる with R

More than 1 year has passed since last update.

1. 条件付き確率

■ 問題文

1 から 3 の目が赤色で塗られており、
4 から 6 の目は青色で塗られているサイコロがある。
このサイコロを投げて青色の目が出た時、
出た目が偶数である 確率 を求めよ。

dice

■ 解答

青色の目が出る 事象A
偶数の目が出る 事象B
とすると、青色の目が偶数の 確率P(B|A)
P(B|A) の確率は、P(A ∩ B) / P(A)

R-計算編
# P(A ∩ B) を P(A) で除算 → P(B|A)
> U <- c(1,2,3,4,5,6) # 全事象
> A <- c(4,5,6) # 青色
> B <- c(2,4,6) # 偶数
> length(A) / length(U)
[1] 0.5 # P(A) ≈ 1/2
> length(intersect(A,B)) / length(U)
[1] 0.3333333 # P(A ∪ B) ≈ 1/3
> (length(intersect(A,B)) / length(U)) / (length(A) / length(U))
[1] 0.6666667 # P(B|A) ≈ 2/3

http://www.r-fiddle.org/#/fiddle?id=SyEpd1Xx

R-ベン図作成編
install.packages("VennDiagram", repos="http://cran.ism.ac.jp/")
library(VennDiagram)
A <- c(4,5,6) # 青色
B <- c(2,4,6) # 偶数
data <- list(A=A,B=B)
venn.diagram(data, filename="conditional_probability_01.svg", imagetype="svg", height=5, width=5, fill=c(4,7), lty=2, scaled=F, cex=c(2,2,2), cat.pos=c(330,30), cat.dist=c(0.05,0.05), cat.cex=c(1.2,1.2))

venn

2. 二項分布

■ 問題文

サイコロを 10 回振るとき、6 の目が 6 回出る 確率 を求めよ。

gamble

■ 解答

二項分布 を用いて算出する。
6 の目が出る 確率 は 1/6 のため、
6 の目が出る回数を x とすると、
xB(10, 1/6) に従う。

R-計算編
# dbinom(成功回数, 試行回数, 成功確率)
> dbinom(6, 10, 1/6)
[1] 0.002170635 # 約0.2% 

http://www.r-fiddle.org/#/fiddle?id=w0I5EhOz

R-グラフ描画編
x<-0:10
plot(x,dbinom(x,10,1/6), type="h", lwd=5, col="tomato1", cex.lab=1, cex.main=1.7)

http://www.r-fiddle.org/#/fiddle?id=bYmsIshk
graph

3. 正規分布の再現性

■ 問題文

日本人男性2人をランダムに選んで肩車をしてもらった時、
身長はどのような分布となるか求めよ。
ただし、日本人男性の肩までの身長は 正規分布 N(140cm, 20)
座高は 正規分布 N(100cm, 10) に従うとし、
肩車した時の身長は 肩までの身長 + 座高 で計算できるものとする。

a shoulder ride

■ 解答

上側の男性の座高を X、下側の男性の肩までの身長を Y とすると、
肩車全体の身長は、X + Y の分布に従います。
XY はどちらも 正規分布 に従うことから、
X + Y もまた 正規分布 に従います。

R
> # 座高 : 平均100cmと分散10の正規分布 - N(100, 10)
> curve(dnorm(x, 100, sqrt(10)), 80, 270, col="blue")
> # 肩までの身長 : 平均140cmと分散20の正規分布 - N(140, 20)
> curve(dnorm(x, 140, sqrt(20)), 80, 270, col="red", add=TRUE)
> # 座高 + 肩までの身長 : 平均240cm(100cm + 140cm)と分散30(10 + 20)の正規分布 - N(240, 30)
> curve(dnorm(x, 240, sqrt(30)), 80, 270, col="purple", add=TRUE)

http://www.r-fiddle.org/#/fiddle?id=YJnBukwh
graph

4. 標準正規分布

■ 問題 A

確率変数 Z標準正規分布 N(0, 1) に従うとき、
Z が 2 以上となる 確率 P(Z ≥ 2) を求めよ。

graph

■ 解答 A

z値 ( 観測統計量母平均 の差 ) から、
上側確率 を求めます。

R-計算編
# z 値が 2 の場合の上側確率を算出する
> pnorm(2, lower.tail=F)
[1] 0.02275013 # → 約 2.3%

http://www.r-fiddle.org/#/fiddle?id=YPEq5QVp

R-グラフ描画編
# z 値が 2 の場合の上側確率を赤色にする
curve( dnorm(x, mean=0, sd=1), from=-5, to=5 )
n  <- 100
xs <- seq(2, 5, length=n)
ys <- dnorm(xs, mean=0, sd=1)
polygon(c(xs, rev(xs)), c(rep(0,n), rev(ys)), col="red")

http://www.r-fiddle.org/#/fiddle?id=v4J6xaVe
graph2

■ 問題 B

確率変数 Z標準正規分布 N(0, 1) に従うとき、
Zz 以上となる 確率 P(Z ≧ z) が 10% となるような z を求めよ

graph

■ 解答 B

上側確率 から、
z値 ( 観測統計量母平均 の差 ) を求めます。

R-計算編
# 上側確率が 10% の場合の z 値を算出する
> qnorm(0.1, lower.tail=F)
[1] 1.281552 # → 約 1.28

http://www.r-fiddle.org/#/fiddle?id=Qy5arCR1

R-グラフ描画編
# 上側確率 10% を青色にし、z 値にオレンジ色の垂線を引く
curve( dnorm(x, mean=0, sd=1), from=-5, to=5 )
z  <- qnorm(0.1, lower.tail=F)
n  <- 100
xs <- seq(z, 5, length=n)
ys <- dnorm(xs, mean=0, sd=1)
polygon(c(xs, rev(xs)), c(rep(0,n), rev(ys)), col="blue")
abline(v = z, col="orange")

http://www.r-fiddle.org/#/fiddle?id=pMTXKQgu
upper-probability-10

関連

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした