政治学方法論1課題2

学籍番号:123J009J 提出者:宋ジェヒョン(SONG Jaehyun) 提出日:2014-10-13

問題2・3共通

ggplot2パッケージの呼び出しと日本語表示のためのテーマ設定

require(ggplot2) #ggplot2のローディング
## Loading required package: ggplot2
theme_set(theme_gray(base_size=12, base_family="HiraKakuProN-W3")) #ggplotに日本語を表示させるためにテーマ設定

問題2

  • 離散一様分布の標本平均について、様々な標本サイズ (n)を使って中心極限定理のシミュレーショ ンを行い(授業のウェブページにあるコードを参照)、結果を考察しなさい。

離散一様分布として6面のサイコロを想定する。また、標本数は1000個と固定し、標本サイズは1、5,10,50,100個とする。

uni.dis <- 1:6 #離散一様分布(サイコロ)
n.list <- c(1, 5, 10, 50, 100) #標本のサイズ(1, 5, 10, 50, 100)
trial <- 1000 #標本数 = 1000

次に、結果を書き込むための空のデータフレーム(sample.means)を生成し、標本サイズと標本数に対してループをして離散一様分布からランダムに値を取り出し、標本平均(算術平均)をデータフレーム内に書き込む。(シミュレーション)

sample.means <- data.frame(n_1=NA, n_5=NA, n_10=NA, n_50=NA, n_100=NA) #空のdata.frameを生成

for (i in 1:length(n.list)){ #標本サイズに対してループ
  for(j in 1:trial){ #標本数に対してループ
    saikoro <- sample(uni.dis, size=n.list[i], replace=TRUE) #ベクトル変数saikoroに標本サイズだけの1から6までをランダムに投入
    sample.means[j,i] <- mean(saikoro) #標本の平均値を書き込む
  }
}

以下は、データフレームの記述統計である。

summary(sample.means) #sample.meansの記述統計を確認
##       n_1            n_5            n_10           n_50     
##  Min.   :1.00   Min.   :1.40   Min.   :1.80   Min.   :2.68  
##  1st Qu.:2.00   1st Qu.:3.00   1st Qu.:3.10   1st Qu.:3.32  
##  Median :3.00   Median :3.60   Median :3.50   Median :3.48  
##  Mean   :3.38   Mean   :3.56   Mean   :3.52   Mean   :3.49  
##  3rd Qu.:5.00   3rd Qu.:4.00   3rd Qu.:3.90   3rd Qu.:3.66  
##  Max.   :6.00   Max.   :5.60   Max.   :5.30   Max.   :4.32  
##      n_100     
##  Min.   :3.00  
##  1st Qu.:3.38  
##  Median :3.50  
##  Mean   :3.50  
##  3rd Qu.:3.61  
##  Max.   :4.07

記述統計を見る限り、平均値は約3.5であり、大きな違いは確認できない。したがって、より直感的に分布を確認するためにヒストグラムを確認する。

prob2.hist <- ggplot(sample.means) + scale_x_continuous(limits = c(0, 7)) + xlab("標本平均") + ylab("密度")
prob2.hist + geom_histogram(aes(x=n_1, y=..density..), binwidth=0.1, color="black", fill="white") + stat_function(fun = dnorm, args = list(mean = mean(sample.means$n_1), sd = sd(sample.means$n_1)), color = "black", size = 1)

plot of chunk prob2_4

標本サイズが1(n=1)の場合、典型的な離散一様分布の形をしていることが確認できる。

続けて、標本サイズを5,10,50,100に増やした結果は以下のとおりである。

prob2.hist + geom_histogram(aes(x=n_5, y=..density..), binwidth=0.1, color="black", fill="white") + stat_function(fun = dnorm, args = list(mean = mean(sample.means$n_5), sd = sd(sample.means$n_5)), color = "black", size = 1)

plot of chunk prob2_5

prob2.hist + geom_histogram(aes(x=n_10, y=..density..), binwidth=0.1, color="black", fill="white") + stat_function(fun = dnorm, args = list(mean = mean(sample.means$n_10), sd = sd(sample.means$n_10)), color = "black", size = 1)

plot of chunk prob2_5

prob2.hist + geom_histogram(aes(x=n_50, y=..density..), binwidth=0.1, color="black", fill="white") + stat_function(fun = dnorm, args = list(mean = mean(sample.means$n_50), sd = sd(sample.means$n_50)), color = "black", size = 1)

plot of chunk prob2_5

prob2.hist + geom_histogram(aes(x=n_100, y=..density..), binwidth=0.1, color="black", fill="white") + stat_function(fun = dnorm, args = list(mean = mean(sample.means$n_100), sd = sd(sample.means$n_100)), color = "black", size = 1)

plot of chunk prob2_5

考察:ヒストグラムと正規分布曲線を比較してみると標本サイズが10以上である時から正規分布に近似することが確認できる。また標本サイズが多くなるにつれて分散が小さくなり(各1.680, 0.788, 0.522, 0.243, 0.173)、分布の形がより尖った形に変化した。これにより標本サイズを増やすことによって標本分布は正規分布に近似するという中心極限定理が経験的に証明される。

問題3

  • 問題2と同様のシミュレーションを離散一様分布以外で行い、結果を考察しなさい。

本問題において用いる確率分布はλ=3のポアソン分布である。シミュレーションは問題2と同様に標本数は1000と固定し、標本サイズを1から100まで変化させた。

## Problem 3 (λ=3のポアソン分布を用いた中心極限定理のシミュレーション)
## 標本サイズ(n.list)と標本数(trial)はProblem2と同様
sample.means2 <- data.frame(n_1=NA, n_5=NA, n_10=NA, n_50=NA, n_100=NA) #空のdata.frameを生成

for (i in 1:length(n.list)){ #標本サイズに対してループ
  for(j in 1:trial){ #標本数に対してループ
    poisson <- rpois(n=n.list[i], lambda=3) # λ = 3のポアソン分布から
    sample.means2[j,i] <- mean(poisson) #標本の平均値を書き込む
  }
}

summary(sample.means2) #sample.means2の記述統計を確認
##       n_1             n_5            n_10          n_50     
##  Min.   : 0.00   Min.   :1.00   Min.   :1.5   Min.   :2.20  
##  1st Qu.: 2.00   1st Qu.:2.40   1st Qu.:2.6   1st Qu.:2.80  
##  Median : 3.00   Median :3.00   Median :3.0   Median :2.98  
##  Mean   : 2.86   Mean   :2.99   Mean   :3.0   Mean   :2.99  
##  3rd Qu.: 4.00   3rd Qu.:3.60   3rd Qu.:3.4   3rd Qu.:3.15  
##  Max.   :10.00   Max.   :5.60   Max.   :4.5   Max.   :3.78  
##      n_100     
##  Min.   :2.45  
##  1st Qu.:2.88  
##  Median :3.00  
##  Mean   :3.00  
##  3rd Qu.:3.11  
##  Max.   :3.55
prob3.hist <- ggplot(sample.means2) + scale_x_continuous(limits = c(0, 10)) + xlab("標本平均") + ylab("密度")
prob3.hist + geom_histogram(aes(x=n_1, y=..density..), binwidth=0.1, color="black", fill="white") + stat_function(fun = dnorm, args = list(mean = mean(sample.means2$n_1), sd = sd(sample.means2$n_1)), color = "black", size = 1)

plot of chunk prob3_1

標本サイズ1のシミュレーションは一般的なポアソン分布の形(mean=var=λ)を表すことを確認することができる。続けて標本サイズを増やして同様のシミュレーションを行った。

prob3.hist + geom_histogram(aes(x=n_5, y=..density..), binwidth=0.1, color="black", fill="white") + stat_function(fun = dnorm, args = list(mean = mean(sample.means2$n_5), sd = sd(sample.means2$n_5)), color = "black", size = 1)

plot of chunk prob3_2

prob3.hist + geom_histogram(aes(x=n_10, y=..density..), binwidth=0.1, color="black", fill="white") + stat_function(fun = dnorm, args = list(mean = mean(sample.means2$n_10), sd = sd(sample.means2$n_10)), color = "black", size = 1)