一 同分布檢驗
1.1 判斷數據是否來自於某種分布
#產生100個標准正態分布隨機數 x <- rnorm(100) #用kolmogorov-Smirnov檢驗數據是否符合正態分布 ks.test(x, "pnorm", 0, 1)
p值大於0.05,接受原假設,即原數據符合正態分布。
1.2 判斷兩組數據是否同分布
#產生100個標准正態分布隨機數 x <- rnorm(100) #產生60個均勻分布隨機數 y <- runif(60) #用kolmogorov-Smirnov檢驗數據x與y是否同分布 ks.test(x, y)
p值小於0.05,所以x與y分布不一樣。
非參數檢驗,kolmogorov-Smirnov檢驗是通過經驗分布於假設分布的上確界來構造統計量,因此理論上可以檢驗任何分布,即原假設
H0: X具有分布F
H1:X不具有分布F
類似的檢驗統計方法有Pearson擬合優度x^2(卡方)檢驗。兩個檢驗相比,ks檢驗不需要將樣本分組,少了一個任意性。缺點是只用在理論分布為一維
連續分布且完全已知的情形,試用面比Pearson檢驗小。研究顯示,在ks檢驗可用的情況下,其功效一般來說略優於Pearson檢驗。
1.3 判斷一組數據是否同分布
#檢驗樣本的參數是否是隨機變量 test <- function(x, alpha=0.05){
t <- mean(x) n <- length(x) y <- var(x) za <- 1.64 if(alpha==0.1){ za <- 1.28 }else if(alpha == 0.01){ za <- 2.33 } if(y >= t*(1+sqrt(2/n)*za)){ ret <- 1 }else{ ret <- 0 } return (ret) }
二 獨立性檢驗
2.1 列聯表數據的獨立性檢驗
設兩個隨機變量X,Y是離散型的,X取值於{a1,a2,a3....,an},Y取值於{b1,b2,b3....,bn}.
設(X1,Y1),(X2,Y2),(X3,Y3),....,為簡單樣本,記nij為(X1,Y1),(X2,Y2),(X3,Y3)...,中等於(ai,bj)的個數,
要據此檢驗假設 H0:X與Y獨立
為了研究吸煙是否與患肺癌有關,對63位肺癌患者及43名非患癌患者(對照組)調查了其中的吸煙人數,得到2X2列聯表
患肺癌 未患肺癌 合計
吸煙 60 32 92
不吸煙 3 11 14
合計 63 43 106
#輸入數據,用chisq.test()檢驗 x <- c(60, 3, 32, 11) dim(x) <- c(2, 2) chisq.test(x, correct=FALSE)
p值小於0.05,拒絕原假設,也就是吸煙與肺癌有關。類似的檢驗還有Fisher檢驗,McNemar檢驗等。
2.2 一組數據的獨立性檢驗
獨立性檢驗主要檢驗數據r1,r2,...rn中前后的統計相關性是否顯著。我們知道,兩個隨機變量的相關系數反應了他們之間的
線性相關程度,若兩個隨機變量相互獨立,則他們的相關系數必為0(反之不一定)。因此,可以用相關系數來檢驗隨機變量的獨立性。
給定隨機數r1.r2.r3,...rk,計算前后相距k的樣本的相關系數
對若干不同的k值做檢驗,提出原假設.若假設成立,則當n-k充分大是,統計量
漸進與標准正態分布N(0,1).
在給定顯著性水平下,若拒絕原假設,則可認為r1.r2.r3,...rk有一定的線性相關性,則他們不是獨立的。
mylag <- function(obj, k=1){ ret <- vector(length=length(obj)-k) for(i in ((k+1):length(obj))){ ret[i-k] = obj[i] } return (ret) } Indtest <- function(x){ n <- length(x) s <- var(x) me <-mean(x) ret <- vector(length=n-1) for(i in (1:(n-1))){ ret[i] = ((1/(n-i))*sum(x[1:(n-i)]*mylag(x,k=i))-me**2)/s } return (ret) } #檢驗數據獨立性 x <- rnorm(100) y <- Indtest(x) ks.test(y, "pnorm", 0, 1)
參考資料
1 《統計建模與R軟件》 薛毅等 2007
2 《非壽險精算》 韓天雄 2011
3 R幫助文檔 help(Distributions) http://127.0.0.1:20350/library/stats/html/Distributions.html
4 Kolmogorov-Smirnov Test http://www.physics.csbsju.edu/stats/KS-test.html