R语言如何计算样本量?

您所在的位置:网站首页 如何用r语言计算均值 R语言如何计算样本量?

R语言如何计算样本量?

#R语言如何计算样本量?| 来源: 网络整理| 查看: 265

最近在学习统计学,并且试着用R语言解决习题,然而出师不利,在开始不久的一道样本量计算上就卡住了:

《商务统计学》(人大出版社,第5版)P232,第8章。题目如下:

一家公司调查员工的医疗费用,希望样本均值(这里我理解为均值差)在正负50元以内,置信度95%。研究结果表明标准差为400元。

问题:样本容量必须有多大?

按照手算算法,答案是n=Z^2*sd^2/e^2,Z取1.96,得到1.96^2 * 400^2 / 50^2,答案是246.

本来按照R语言的强大功能,要做这样的计算还不是小菜一碟,但是大概道行太浅,上面这个答案我在R语言用了两种方法,都算不到...

1 按照P226页的pwr.t.test做检验。

pwr.t.test(d=.8,power=.99,type="two.sample",alternative="two.sided")

这里d为标准化的均差之值,就是50/400=0.8

power为功效水平,我取0.99;type为单样本或双样本检验;缺省值为双侧检验。但是结果差好远。

方法2,在网上搜到一个计算器,可以算出样本量,并附有R代码

Test 1 Mean 1-Sample, 2-Sided Equality

按照网页的算法,结合习题条件,修改代码如下:

sd=400

alpha=0.05 #1类错误

beta=0.20 #2类错误

(n=(sd*(qnorm(1-alpha/2)+qnorm(1-beta))/50)^2)

ceiling(n)

z=0.8*sqrt(n)

(Power=pnorm(z-qnorm(1-alpha/2))+pnorm(-z-qnorm(1-alpha/2)))

还是算不出来...是不是条件设定有错?请大牛解惑!

找到一个相关文献,里面举的例子和习题很像,虽然没有代码,但是大概可以套用公式。有时间要研读一下!

Sample Size and Power Determination

————————————————我是分隔线———————————————

后来我请教了一位在大学教统计的朋友,她让会R的研究生回答了我的问题:

1. 50不是均值mu,而是均值的置信宽度(ciwidth),所以pwr这个包不适用

2. 这个是近似的正态分布,但其实应该是t分布

因为现成的package不太适合这种已知标准差和置信区间宽度,但均值未知的问题,所以还是手动写程序比较好。

程序如下,两个方法算出的值比较相近:

虽然还不能完全理解,不过这应该是比较完整的答案了。就酱。

转自: https://zhuanlan.zhihu.com/p/25811195 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3