有限母集団からの標本サイズ Last modified: Apr 13, 2004
目的
有限母集団の割合の推定に必要な標本サイズを決める。
使用法
finite(n=NULL, N=NULL, p=NULL, epsilon=NULL, conf.level=NULL)
n, N, epsiron, conf.level の何れか一つを NULL にして関数を呼び出すと,その値を計算して返す。
引数
n 標本サイズ
N 母集団サイズ
p 母比率
epsilon 精度
conf.level 信頼度(信頼係数)
ソース
インストールは,以下の 1 行をコピーし,R コンソールにペーストする
source("http://aoki2.si.gunma-u.ac.jp/R/src/finite.R", encoding="euc-jp")
# 有限母集団の割合の推定に必要な標本サイズを決める
finite <- function( n=NULL, # 標本サイズ
N=NULL, # 母集団サイズ
p=NULL, # 母比率
epsilon=NULL, # 精度
conf.level=NULL) # 信頼度(信頼係数)
{
if (sum(sapply(list(n, N, p, epsilon, conf.level), is.null)) != 1) {
stop("n, N, p, epsilon, conf.level のうちの,どれか一つだけが NULLでなければならない")
}
n.function <- quote(N/((epsilon/qnorm(0.5-conf.level/2, lower.tail=FALSE))^2*((N-1)/(p*(1-p)))+1))
if (is.null(n)) {
n <- eval(n.function)
}
else if (is.null(epsilon)) {
epsilon <- uniroot(function(epsilon) eval(n.function)-n, c(1e-7, 0.9999999))$root
}
else if (is.null(N)) {
N <- uniroot(function(N) eval(n.function)-n, c(1, 1e7))$root
}
else if (is.null(p)) {
p <- uniroot(function(p) eval(n.function)-n, c(1e-7, 0.9999999))$root
}
else if (is.null(conf.level)) {
conf.level <- uniroot(function(conf.level) eval(n.function)-n, c(1e-7, 0.9999999))$root
}
METHOD <- "有限母集団の割合の推定に必要な標本サイズ"
structure(list(n=n, N=N, p=p, epsilon=epsilon, conf.level=conf.level, method=METHOD), class="power.htest")
}
使用例と出力結果例
# 標本サイズを求める
> finite(N=100, p=0.5, epsilon=0.05, conf.level=0.95) # n=80
required sample size from finite population.
n = 79.5093
N = 100
p = 0.5
epsilon = 0.05
conf.level = 0.95
# 母集団のサイズを求める
> finite(n=80, p=0.5, epsilon=0.05, conf.level=0.95) # N=100
required sample size from finite population.
n = 80
N = 100.7795
p = 0.5
epsilon = 0.05
conf.level = 0.95
# 精度を求める
> finite(n=80, N=100, p=0.5, conf.level=0.95) # epsilon=0.05
required sample size from finite population.
n = 80
N = 100
p = 0.5
epsilon = 0.04924529
conf.level = 0.95
# 信頼度を求める
> finite(n=80, N=100, p=0.5, epsilon=0.05) # conf.level=0.95
required sample size from finite population.
n = 80
N = 100
p = 0.5
epsilon = 0.05
conf.level = 0.953404
# 母比率を求める…はずだが,このプログラムでは求まらない
> finite(n=80, N=100, epsilon=0.05, conf.level=0.95) # p=0.5
Error in uniroot(function(p) eval(n.function) - n, c(1e-07, 0.9999999)) :
f() values at end points not of opposite sign
参考文献
東京大学教養学部統計学教室編「基礎統計学II 人文・社会科学の統計学」東京大学出版会
直前のページへ戻る
E-mail to Shigenobu AOKI ( @si.gunma-u.ac.jp )