R语言如何计算样本量? |
您所在的位置:网站首页 › 如何用r语言计算均值 › R语言如何计算样本量? |
最近在学习统计学,并且试着用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为单样本或双样本检验;缺省值为双侧检验。但是结果差好远。
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 |