参数估计
矩法估计和极大似然估计
矩法估计
无固定的函数,矩估计需自行构造统计量,并计算相关数据
例:
1 | X<-sample(c(1,0), 20, replace = T, prob = c(0.6, 0.4)) |
极大似然估计
需自行求解出(对数)极大似然函数,可以使用optimize()
函数求解极大值和极大值点。多参数时可使用optim()
或nlm()
optimize(f = , interval = ,lower = min(interval), upper = max(interval), maximum = T, tol = .Machine$dobule.eps^{0.25}, \cdots
例:
1 | f <- function(p)(p^517)*(1-p)^483 |
单正态总体参数的区间估计
均值的区间估计
方差已知时的置信区间
这种情况下R语言中没有相关内置函数,以下给出方差已知时的置信区间估计的R语言函数。
1 | z.test <- function(x, n, sigma, alpha=0.05, u0=0, alternative="two.side"){ |
验证一个例子
1 | x <- c(175, 176, 173, 175, 174, 173, 173, 176, 173, 179) |
方差未知时的置信区间
此时R语言中有内置函数t.test()
例:
1 | x <- c(175, 176, 173, 175, 174, 173, 173, 176, 173, 179) |
方差的区间估计
讨论未知,此种情况R语言中依然没有内置函数求解方差的区间估计,给出函数chisq.var.test
如下
1 | chisq.var.test <- function(x, var, alpha, alternative = "two.side"){ |
给出一个验证
1 | x <- c(175, 176, 173, 175, 174, 173, 173, 176, 173, 179) |
正态总体参数的区间估计
均值差的置信区间
两方差都已知时两均值差的置信区间
依然没有内置函数,需给出函数two.sample.ci()
,求解双侧置信区间
1 | two.sample.ci <- function(x, y, conf.int = 0.95, sigma1, sagma2){ |
看一个例子:
1 | x <- c(628, 583, 510, 554, 612, 523, 530, 615) |
两方差都未知但相等时两均值差的置信区间
此时可以直接利用t.test()
函数
1 | x <- c(628, 583, 510, 554, 612, 523, 530, 615) |
均值差的置信区间
此时,在R中var.test()
可以直接用于求两正态总体方差比的置信区间
例子:
1 | x <- c(20.5, 19.8, 19.7, 20.4, 20.1, 20.0, 19.0, 19.9) |
单总体比率的区间估计
假设估计在总体中具有某种特性的个体站总体的比例,设为。例如整个学校中女生占全校人数的比例,产品的不合格率,电视的收视率,政策的支持率等。这里采用一种求的近似区间估计的方法,
称在样本中具有某种特征的个体站样本总数的比例为样本比例。设为容量为n的样本中具有某种特征的个体数量,则样本比例为。当总体中的样品数足够多时,近似服从二项分布(实际上它是超几何分布),这时总体比例可用样本比例来估计,及,且为极大似然估计。
可直接使用prop.test()
对进行估计与检验,这时用正态分布来近似
一个例子 :矫正
1 | prop.test(38, 200, correct = T) |
不矫正:
1 | prop.test(38, 200, correct = F) |
用二项分布来近似binom.test()
1 | binom.test(38, 200) |
两总体比率差的区间估计
这里仍可使用函数prop.test()
,这里给出的是经过连续性修正之后的结果
1 | like <- c(478, 246) |
可自行给出函数ratio.ci()
计算没有修正的两比例之间的区间估计
1 | ratio.ci <- function(x,y,n1,n2,conf.level){ |
给一个例子
1 | ratio.ci(478, 246, 1000, 750, conf.level = 0.95) |
估计正态总体均值时样本容量的确定
总体方差已知
给出自定义函数size.norm1
:
1 | size.norm1 <- function(d, var, conf.level=0.95){ |
给一个例子:某地区1000户,拟抽取一个简单的样本调查一个月的评价开始,要求置信水平95%,允许最大误差为2,根据经验,家庭间开支的方差为500,应抽取多少户进行调查
1 | size.norm1(2, 500, conf.level = 0.95) |
总体方差未知
给出函数size.norm2()
1 | size.norm2 <- function(s, alpha, d, m){ |
给一个例子:
某公司生产了一批新产品,产品总体服从正态分布,现要估计这批产品的平均重量,最大允许误差2,样本标准差,试问下要抽多少样本
1 | size.norm2(10, 0.01, 2, 100) |
估计比例时样本容量的确定
同样给出自定义函数size.bin <- f()
1 | size.bin <- function(d, p, conf.level = 0.95){ |
例 :某市一所重点大学历届毕业生就业率为90%,估计应用毕业生就业率,要求估计误差不超过3%,试问下要抽取应届毕业生多少人?
1 | size.bin(0.03, 0.9, 0.95) |