【數據分析 R語言實戰】學習筆記 第六章 參數估計與R實現(下)


6.3兩正態總體的區間估計

(1)兩個總體的方差已知

 

在R中編寫計算置信區間的函數twosample.ci()如下,輸入參數為樣本x, y,置信度α和兩個樣本的標准差。

> twosample.ci=function(x,y,alpha,sigma1,sigma2){
+   n1=length(x);n2=length(y)

+ xbar=mean(x)-mean(y)

+   z=qnorm(1-alpha/2)*sqrt(sigma1^2/n1+sigma2^2/n2)

+ c(xbar-z,xbar+z)

+ }

  

 

前面介紹的Z檢驗函數z.test()可以在兩總體方差已知的情況下,計算兩總體均值差的置信區間,分別用參數sigma.x和sigma.y來說明已知的標准差數值即可。

例:

Bamberger's是一家為社區提供大眾性商品的零傳商店,為了努力維持商店的良好聲譽,公司實施了將營業時間延長至夜間的計划。以Bamberger's延長營業時間前后27個典型周的銷售額數據為例(以萬元為單位),計算這兩個樣本均值差的區間估計,從而可以看出計划實施后的效果。首先查看數據的基本類型,並繪制直方圖對比。

> sales=read.table("D:/Program Files/RStudio/sales.txt",header=T)

> head(sales)

  prior   post

1 67.90  86.10

2 76.12  71.13

3 68.64 116.25

4 74.94 102.60

5 63.32  97.51

6 50.43  65.39

> attach(sales)

> par(mfrow=c(1,2))

> hist(prior)  #分別繪制計划前后銷售額的直方圖

> hist(post)

  

 

從直方圖可以看出,銷售額樣本大致呈正態分布,假設已知計划實施前后的總體標准差分別為8和12,調用上面寫好的函數,計算樣本均值差在置信水平為1-a下的置信區間

> twosample.ci(post,prior,alpha=0.05,8,12)

[1] 19.10298 29.98295

> z.test(post,prior,sigma.x=8,sigma.y=12)$conf.int

[1] 19.10298 29.98295

attr(,"conf.level")

[1] 0.95

  

區間估計的結果是,Bamberger's公司延長營業時間后周營業額明顯增加,增加額的范圍是[19.10, 29.98]

(2)兩個總體的方差未知但相等

 

正如計算單.正態總體均值的置信區間,R中的函數t.test()還可以用來求兩總體均值差的置信區間,山於總體方差相等,需要將其中的參數var.equal設為TRUE。

> t.test(post,prior,var.equal=TRUE)$conf.int

[1] 18.66541 30.42051

attr(,"conf.level")

[1] 0.95

  

由計算結果同樣可以得到結論:Barnberger's公司延長營業時間后周營業額明顯增加,在0.95的置信水平下,營業額增加的置信區間是[18.67,30.42]

(3) 兩個總體的方差未知且不等

 

R中也沒有直接的函數可用,仍需要手動寫出一個函數twasarnple.ci2()

> twosample.ci2=function(x,y,alpha){

+   n1=length(x);n2=length(y)

+   xbar=mean(x)-mean(y)

+   S1=var(x);S2=var(y)

+   nu=(S1/n1+S2/n2)^2/(S1^2/n1^2/(n1-1)+S2^2/n2^2/(n2-1))

+   z=qt(1-alpha/2,nu)*sqrt(S1/n1+S2/n2)

+   c(xbar-z,xbar+z)

+ }

  

在實際分析中,兩總體的方差未知且不等是最常見的情況,在Bamberger's公司的案例中如果延長營業時間前后的方差未知並且不相等,就要通過上面編寫的函數計算樣本均位差的置信區間:

> twosample.ci2(post,prior,0.05)

[1] 18.63821 30.44771

  

相比之前,營業時間延長后的樣本均值明顯增加,兩樣本均值差的置信區問為[18.64, 30.45]由於方差未知,在做區間估計時可利用的信息更少,因此在相同置信水平下,這時估計得到的置信區間相對更寬一些。

6.3.2兩方差比的區間估計

 

方差比的區問估計與方差的假設檢驗密不可分,所以R中的函數var.test()可以用來直接計算兩正態總體方拾比的置信區間,調用格式如下:

var.test(x, y, ratio = 1,

         alternative = c("two.sided", "less", "greater"),

         conf.level = 0.95, ...)

> var.test(prior,post)$conf.int

[1] 0.1772458 0.8534348

attr(,"conf.level")

[1] 0.95

  

通過函數var.test()計算后的結果可以看出,兩樣本方差比在95%置信水平下的區間估計為[0.1772, 0.8534],這說明延長營業額后,周營業額的波動性變大。

6.4關於比率的區間估計

 

比率的估計在R中實現起來也比較簡單,函數prop.test()可以直接完成對P的估計和檢驗,其調用格式為

prop.test(x, n, p = NULL,

          alternative = c("two.sided", "less", "greater"),

          conf.level = 0.95, correct = TRUE)

其中,參數x為具有某種特征的樣本個數;n為樣本量;P設置假設檢驗時原假設的比率值;correct是邏輯值,設置是否應用Yates連續性修正,默認為TRUE

例:

某市為了解居民住房情況,抽查了n=2000戶家庭,其中人均不足5平米的困難戶有x=214個,通過樣本信息計算該市困難戶比率P的置信區間(置信度為0.95)

> prop.test(214,2000)

 

        1-sample proportions test with continuity

        correction

 

data:  214 out of 2000, null probability 0.5

X-squared = 1234, df = 1, p-value < 2.2e-16

alternative hypothesis: true p is not equal to 0.5

95 percent confidence interval:

 0.09396256 0.12157198

sample estimates:

    p

0.107

  

比率檢驗函數的計算結果表明,在95%的置信水平下,困難戶比率的區間估計為[0.0940,0.1216],而最后一行的P值給出的是點估計,該市困難戶比率為0.107

事實上,當樣本數足夠多時,x服從超兒何分布,上面我們用的是正態分布近似,但當抽樣比很小時還可以用二項分布來近似,這時用到的函數是二項式檢驗binom.test(),其調用格式如下,內部參數與prop.test()一致。在上例中,如果該市的總人口數較大,那么抽樣比很小,就應當用二項分布近似:

> binom.test(214,2000)

 

        Exact binomial test

 

data:  214 and 2000

number of successes = 214, number of trials =

2000, p-value < 2.2e-16

alternative hypothesis: true probability of success is not equal to 0.5

95 percent confidence interval:

 0.09378632 0.12137786

sample estimates:

probability of success

                 0.107

  

二項式檢驗的結果表明,在95%的置信水平下,困難戶比率的區間估計為[0.0938, 0.1214],這與修正正態近似的結果非常接近,點估計值仍為0.107

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM