close

#檢測頻率的分布是否有差異
#G-test: 比較觀測值與預期的頻率
#Exzample: 豌豆進行雙因子雜交產生四種型態,其預期比例為9:3:3:1。這個比例非由資料產生,所以取得資料後應該用G檢定將它和預期比例作比較。我們收集200株植物,以下為各型態的植物比較。

obs<- c(108,35,46,11)
expected<- c(9,3,3,1)
df<- length(expected)-1
expected_freq<- (expected/sum(expected)*sum(obs)) #樣本數的預期頻率乘以總觀察株樹
inratio<- log(obs/expected_freq)*sum(obs) #轉換為對數比值
inratio
g<- 2*abs(sum(inratio))
1-pchisq(g,df) #自由度為類別數減一

#卡方檢定: 檢定觀測值與其平均值相等、遵從poisson分布的觀測值
#Example: 紀錄成年鮭魚上的魚蝨數目。全部的觀測值都取自同一次捕捉的98隻鮭魚。若魚蝨是隨機攻擊鮭魚,他們的數目會遵從poisson分布,因此卡方檢定不會顯著。

number<- c(0:8)
obs<- c(37,32,16,9,2,0,1,1,0)
meanlice<- sum(number*obs)/sum(obs) #平均每隻魚身上的魚蝨數目
expected_freq<- sum(obs)* dpois(number,meanlice) #使用poisson分布預期觀察次數
sum(obs)-sum(expected_freq[1:4]) #使用卡方檢定時,建議所有預期值不小於1,且小於5的比例不超過1/4。
expected_freq[5]<-sum(obs)-sum(expected_freq[1:4]) #將小於1的類別(0-3次)合併作為第五個類別
obs[5]<- sum(obs)-sum(obs[1:4]) #觀察值也需要將類別合併乘五個
v<- (obs-expected_freq)^2/expected_freq
chisquare<- sum(v[1:5]) #卡方統計量
1-pchisq(chisquare,3) #由於進行類別合併,自由度是3不是4

#Kolmogorov-Smirnov檢定: 在大樣本的連續性資料裡用途很廣。主要分為"單樣本檢定"與雙樣本檢定。兩者都是比較兩組資料,決定他們是否來自同一個分布。
#Example: 有48隻老鼠的體重被記錄下來(g)。這群樣本是實驗的一部分,而研究者希望在使用母數分析前,先知道體重是否為常態分佈。

mouse<- c(12.5,13.5,13.2,12.5,12.1,12.6,12.1,12.8,
          14.2,13.2,13.8,12.0,12.5,12.1,12.8,12.9,
          12.6,12.8,12.5,13.1,12.4,13.5,13.4,13.6,
          13.0,14.1,12.6,13.2,13.8,13.8,13.9,14.0,
          14.1,12.1,12.9,14.5,13.2,14.1,12.5,12.5,
          15.0,12.6,13.0,13.5,14.0,12.9,12.4,12.8)
ks.test(mouse, "pnorm",mean=mean(mouse),sd= sqrt(var(mouse))) #結果輸出結果統計量D值與其相關的P值。底下有個警告,通常在樣本取值相同時出現,除非有太多值相等或是P值很接近0.05,否則不太需要擔心。

#Shapiro-Wilk檢定
shapiro.test(mouse) #虛無假設瀕臨被拒絕邊緣,相較Kolmogorov-Smirnov test的P值離顯著性還有很大距離。

#測試常態分佈的圖形檢定(Graphical tests for normality)
qqnorm(mouse)
qqline(mouse)
#累積分配曲線
x<- seq(11.5,15.5,0.1)
plot(ecdf(mouse),do.points=F, verticals=T)
lines(x, pnorm(x,mean=mean(mouse),sd= sqrt(var(mouse))),lty=3)

 

提供R script參考

參考來源: 生物統計學:如何選擇與應用

arrow
arrow

    猛犬 發表在 痞客邦 留言(0) 人氣()