摘要: 本文由digging4发表于:http://www.cnblogs.com/digging4/p/5054594.html
统计建模与R软件-第四章 参数估计
4.1设总体的分布密度为
f(x;α)={(α+1)xα0,x∈(0,1),other
X1,X2,⋯,Xn 为其样本,求参数 α 的矩估计量 α1ˆ 和极大似然估计量 α2ˆ .现测得样本观测值为
0.1,0.2,0.9,0.8,0.7,0.7
求参数 α 的估计值。
矩估计:用样本的一阶原点矩估计总体均值;用样本的二阶中心矩估计总体方差。
如果总体的分布已知,那么总体的均值和方差就可以用分布中的参数表示,再等于样本的一阶原点矩和二阶中心矩,可以计算出总体分布中的参数。
矩估计优点:在其能用的情况下,计算往往简单
矩估计缺点:相对其他估计方法,如极大似然法,其效率往往较低。
已知分布密度,求随机变量的期望(均值)如下,该期望值等于样本的均值:
∫∞−∞xf(x;α)dx=∫10x(α+1)xαdx=α+1α+2xα+2∣10=α+1α+2=mean(x)
x <- c(0.1, 0.2, 0.9, 0.8, 0.7, 0.7)
(2 * mean(x) - 1)/(1 - mean(x))
## [1] 0.3077
极大似然估计:我们所估计的模型参数,要使得产生这个给定样本的可能性最大。似然函数如下:
L(x;α)=∏i=1nf(x;α)=(α+1)n∏i=1nxαi
取对数得:
lnL(x;α)=nln(α+1)+α∑i=1nlnxi
在对对数似然函数求倒,可得到
∂lnL(x;α)∂α=nα+1+∑i=1nlnxi
即为求上述偏导数等于0的 α 值,此例中 n=3
x <- c(0.1, 0.2, 0.9, 0.8, 0.7, 0.7)
f <- function(a) 6/(a + 1) + sum(log(x))
uniroot(f, c(0, 1))
## $root
## [1] 0.2112
##
## $f.root
## [1] -3.845e-05
##
## $iter
## [1] 5
##
## $estim.prec
## [1] 6.104e-05
root为估计值,iter为迭代次数,optimize函数也可以用来求解方程。
4.2设元件无故障工作时间 X 具有指数分布,取1000个元件工作时间的记录数据,经分组后得到它的频数分布为
组中值 xi 5 15 25 35 45 55 65
频数 vi 365 245 150 100 70 45 25
如果各组中数据都取为组中值,试用极大似然估计求 λ 的点估计。
指数分布
λ
的估计量为
λ^=n∑ni=1xi
x <- c(rep(5, 365), rep(15, 245), rep(25, 150), rep(35, 100), rep(45, 70), rep(55,
45), rep(65, 25))
1000/sum(x)
## [1] 0.05
4.3为检验某自来水消毒设备的效果,现从消毒后的水中随机抽取50升,化验每升水中大肠杆菌的个数(假设一升水中大肠杆菌个数服从 Poisson 分布),其化验结果如下:
大肠杆菌数/升 0 1 2 3 4 5 6
升数 17 20 10 2 1 0 0
试问平均每升水中大肠杆菌个数为多少时,才能使上述情况的概率为最大?
本题实际上是求泊松分布的 λ 估计,泊松分布的均值和方差均为 λ ,使用点估计即可
x <- c(rep(0, 17), rep(1, 20), rep(2, 10), rep(3, 2), rep(4, 1), rep(5, 0),
rep(6, 0))
## 得到$\lambda$的估计值
mean(x)
## [1] 1
4.4利用R软件中的nlm()函数求解无约束优化问题
minf(x)=(−13+x1+((5−x2)x2−2)x2)2+(−29+x1+((x2+1)x2−14)x2)2
取初始点 x(0)=(0.5,−2)T .
# 目标函数
obj <- function(x) {
f <- c(-13 + x[1] + ((5 - x[2]) * x[2] - 2) * x[2], -29 + x[1] + ((x[2] +
1) * x[2] - 14) * x[2])
sum(f^2)
}
x0 <- c(0.5, -2)
nlm(obj, x0)
## $minimum
## [1] 48.98
##
## $estimate
## [1] 11.4128 -0.8968
##
## $gradient
## [1] 1.415e-08 -1.435e-07
##
## $code
## [1] 1
##
## $iterations
## [1] 16
# 最优目标值为 $minimum 48.98
4.5正常人的脉搏平均每分钟72次,某医生测得10例四乙基铅中毒患者的脉搏数(次/分)如下:
54 67 68 78 70 66 67 70 65 69
已知人的脉搏次数服从正态分布,试计算这10名患者平均脉搏次数的点估计和 95 的区间估计。并做单侧区间估计,试分析这10名患者的平均脉搏次数是否低于正常人的平均脉搏次数。
x <- c(54, 67, 68, 78, 70, 66, 67, 70, 65, 69)
# 由于人的脉搏次数服从正态分布,因此平均次数的点估计为样本均值
mean(x)
## [1] 67.4
# t.test 可以进行区间估计
t.test(x)
##
## One Sample t-test
##
## data: x
## t = 35.95, df = 9, p-value = 4.938e-11
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 63.16 71.64
## sample estimates:
## mean of x
## 67.4
#
# 得到95%置信度下的区间估计为[63.16,71.64],可认为患者低于常人每分钟72次的正常水平。
4.6甲、乙两种稻种分布播种在10块试验田中,每块试验田甲、乙稻种各种一半,假设两稻种产量 X,Y 均服从正态分布,且方差相等,收获后10块试验田的产量如下所示(单位:千克)
甲种 140 137 136 140 145 148 140 135 144 141
乙种 135 118 115 140 128 131 130 115 131 125
求出两稻种产量的期望差 μ1−μ2 的置信区间( α=0.05 ).
# 两个正态总体,方差未知但相等情况下的均值差估计
x <- c(140, 137, 136, 140, 145, 148, 140, 135, 144, 141)
y <- c(135, 118, 115, 140, 128, 131, 130, 115, 131, 125)
t.test(x, y, var.equal = TRUE)
##
## Two Sample t-test
##
## data: x and y
## t = 4.629, df = 18, p-value = 0.0002087
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## 7.536 20.064
## sample estimates:
## mean of x mean of y
## 140.6 126.8
# 得到95%置信度下的区间估计为[7.36,20.24]
4.7甲、乙两组生产同种导线,现从甲组生产的导线中随机抽取4根,从乙组生产的导线中随机抽取5根,它们的电阻值(单位: Ω )
甲组 0.143 0.142 0.143 0.137
乙组 0.140 0.142 0.136 0.138 0.140
假设两组电阻值分别服从正态分布 N(μ1,α2) 和 N(μ2,α2) , α2 未知,试求 μ1−μ2 的置信系数为0.95的区间估计。
# 两个正态总体,方差未知但相等情况下的均值差估计
x <- c(0.143, 0.142, 0.143, 0.137)
y <- c(0.14, 0.142, 0.136, 0.138, 0.14)
t.test(x, y)
##
## Welch Two Sample t-test
##
## data: x and y
## t = 1.164, df = 5.701, p-value = 0.2909
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.002315 0.006415
## sample estimates:
## mean of x mean of y
## 0.1412 0.1392
4.8对习题4.6中甲乙两种稻种的数据作方差比的区间估计,并用其估计值来判定两数据是否等方差,若两数据方差不相等,试重新计算两稻种产量的期望差 μ1−μ2 的置信区间( α=0.05 )。
# var.test() 双样本方差比的区间估计
x <- c(140, 137, 136, 140, 145, 148, 140, 135, 144, 141)
y <- c(135, 118, 115, 140, 128, 131, 130, 115, 131, 125)
var.test(x, y)
##
## F test to compare two variances
##
## data: x and y
## F = 0.2353, num df = 9, denom df = 9, p-value = 0.04229
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
## 0.05845 0.94744
## sample estimates:
## ratio of variances
## 0.2353
#
# 得到方差比的区间估计为[0.05845,0.94744],区间中不包含1,所以可认为两个样本的方差不等
# 重新计算两样本的期望差
t.test(x, y, var.equal = FALSE)
##
## Welch Two Sample t-test
##
## data: x and y
## t = 4.629, df = 13.01, p-value = 0.0004712
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## 7.36 20.24
## sample estimates:
## mean of x mean of y
## 140.6 126.8
4.9设电话总机在某段时间内接到的呼唤的次数服从参数未知的 Poisson 分布 P(λ) ,现搜集了42个数据
接到呼唤的次数 0 1 2 3 4 5 6
出现的频数 7 10 12 8 3 2 0
试求出平均呼唤次数 λ 的估计值和它的置信系数为0.95的置信区间。
# 由于分布不是正态分布,需要样本量比较大,利用中心极限定理进行分析
# 按书P190的公式进行计算
x <- c(rep(0, 7), rep(1, 10), rep(2, 12), rep(3, 8), rep(4, 3), rep(5, 2))
n <- length(x)
tmp <- sd(x)/sqrt(n) * qnorm(1 - 0.05/2)
mean(x) - tmp #估计区间下限
## [1] 1.494
mean(x) + tmp #估计区间上限
## [1] 2.315
4.10已知某种灯泡寿命服从正态分布,在某星期所生产的该灯泡中随机抽取10只,测得其寿命(单位:小时)为:1067,919,1196,785,1126,936,918,1156,920,948,求灯泡寿命平均值的置信度为0.95的单侧置信下限。
# t.test()可完成单侧区间估计
x <- c(1067, 919, 1196, 785, 1126, 936, 918, 1156, 920, 948)
t.test(x, alternative = "greater")
##
## One Sample t-test
##
## data: x
## t = 23.97, df = 9, p-value = 9.148e-10
## alternative hypothesis: true mean is greater than 0
## 95 percent confidence interval:
## 920.8 Inf
## sample estimates:
## mean of x
## 997.1
# 单侧区间估计的下限为920.8