前言
非參數(shù)檢驗(卡方檢驗)扒秸,參數(shù)檢驗(F檢驗蕴掏,T檢驗,Z檢驗)缚窿,方差分析(ANOVA)
非參數(shù)檢驗與參數(shù)檢驗區(qū)別:主要差異在于棘幸,非參數(shù)檢驗不需要假定總體分布形式,直接對數(shù)據(jù)的分布進行檢驗倦零。由于不涉及總體分布的參數(shù)误续,故名「非參數(shù)」檢驗。比如扫茅,卡方檢驗蹋嵌。而參數(shù)檢驗一般需要正太性(符合正太分布)、方差齊次等假設诞帐,并已知總體均值欣尼,方差等值,或者從樣本估計停蕉。
p value
一般在做假設檢驗的時候愕鼓,我們可以通過如下步驟:
1、設定alpha
2慧起、計算統(tǒng)計量t
3菇晃、根據(jù)alpha查統(tǒng)計量閾值來確定拒絕還是接受(這里是比較統(tǒng)計量t即可,t>t閾)
第二種方法蚓挤,直接計算p value(對于不同假設分布有不同計算pvalue的公式)
p value的含義是:
在H0成立的情況下磺送,Data產(chǎn)生的概率
非常好理解,p值為在H0假設下灿意,最終會產(chǎn)生得到當前數(shù)據(jù)的概率估灿。
如果p < alpha(比如0.05)則在H0的假設下,Data產(chǎn)生概率非常戌途纭(小于顯著水平alpha)馅袁,則應該拒絕H0
(注:顯著性水平alpha與p值pval不是一回事,不要搞混荒辕。alpha為我們設定的顯著性水平汗销,pval為計算出來概率。alpha是我們主觀去設定的值抵窒,pvalue為伴隨數(shù)據(jù)客觀得到的值)
第一類和第二類錯誤
第一類錯誤:H0為真弛针,但是拒絕了H0(棄真)。概率為alpha(常用的顯著性水平李皇,即是達到5%概率犯第一類錯誤的水平【即很大概率不會錯誤地拒絕H0】)
一般我們計算時削茁,p值就是真實情況下,犯第一類錯誤的概率。
第二類錯誤:H0為假付材,但是接受了H0(取偽)朦拖。當我們設定了alpha后,如果顯著性水平?jīng)]有達到alpha的值厌衔,那么我們會接受假設H0。在這種情況下捍岳,仍然有一定概率H0為假富寿。這個概率為Beta。
1-β即為statistical power
通常锣夹,alpha設置的比較大页徐,則beta也會比較大,如下圖:
在統(tǒng)計量為藍色豎線的時候银萍,根據(jù)H0假設的分布变勇,可以得到alpha,同時beta由H1的分布計算得來贴唇,但是通常我們不知道H1的真實分布搀绣,所以也無法精確計算beta
實踐中,由于beta無法精確計算戳气,但是我們還是想要降低第二類錯誤的概率链患,所以要做有如下的認知,beta的大小取決于兩個因素:
1瓶您、H1假設與H0的距離麻捻,距離越大,beta越小呀袱。
2贸毕、alpha的值。alpha越大夜赵,beta越小明棍。(更傾向于拒絕H0,一類錯誤概率增加油吭,則二類錯誤率減少)击蹲。
通常在固定alpha,H1假設的情況下婉宰,要縮小beta需要增加樣本量歌豺。
置信度和置信區(qū)間
置信水平(置信度)=1-顯著性水平(alpha)
置信區(qū)間:U,V心包。指在一定的置信水平下(1-alpha)类咧,被觀測參數(shù)的真實值會落在區(qū)間(U,V)之內(nèi)。
PS:什么是統(tǒng)計量痕惋,統(tǒng)計量是樣本的函數(shù)区宇,且不依賴于任何未知的參數(shù)。比如樣本均值就是個常用的統(tǒng)計量值戳,mean(sample)议谷,它只依賴于所有樣本的值。
PSS:一般來說堕虹,主要用于做區(qū)間估計卧晓。
自由度
統(tǒng)計學上,自由度是指當以樣本的統(tǒng)計量來估計總體的參數(shù)時赴捞,樣本中獨立或能自由變化的數(shù)據(jù)的個數(shù)逼裆,稱為該統(tǒng)計量的自由度。一般來說赦政,自由度等于獨立變量減掉其衍生量數(shù)胜宇。舉例來說,變異數(shù)的定義是樣本減平均值(一個由樣本決定的衍生量)恢着,因此對N個隨機樣本而言桐愉,其自由度為N-1。
如何選擇一個合適的統(tǒng)計檢驗:(參考https://rpubs.com/Argaadya/bayesian_ab)
連續(xù)型數(shù)據(jù)
基于正態(tài)分布的檢驗
均值檢驗(T檢驗)
主要用于小樣本(樣本容量小于30)的兩個平均值差異程度的檢驗方法(主要適用與總體方差未知的情況:即要用小樣本的方差預估總體方差)
T檢驗也是一種參數(shù)檢驗然评。(對方差齊性敏感仅财,需要先檢驗方差齊性【F檢驗】)
- 對于與總體配對的T檢驗,要求滿足方差齊性碗淌,才能反應其均值的差異盏求。【不齊性有特殊處理方法】
- 適用于已知總體均值(單樣本配對時需要總體均值亿眠,雙樣本不需要)碎罚,樣本均值,樣本方差(即樣本少總體方差未知)纳像,且大致來自于正太分布(一般除非明顯的長尾多峰等分布以外荆烈,都大致可以檢驗)
基礎延伸:
H0假設 :u與u0沒有差異,u0其實就是一個comparison value竟趾,u=u0
H1假設(單邊):樣本A均值大于B(或者小于)u>u0
H1假設(雙邊):兩個樣本均值有差異u>u0 or u<u0
使用單邊雙邊檢驗的區(qū)別:看你拒絕假設在兩邊憔购,或者一邊
均值檢驗中統(tǒng)計量
服從d=n-1的T分布。n為樣本量
其泛化形式為
其中E(x0)為H0假設的對比值(comparison value)岔帽,S(x)為對應變量x的標準差(一般總體參數(shù)未知)所以都是用樣本標準差S,當我們對比的是均值時玫鸟,均值的標準差用
-
單總體樣本:
H0:樣本均值與總體均值相同
ˉx為樣本均值,u為總體均值犀勒,Sx為樣本標準差屎飘,
Sx/根號n 為樣本均值的標準差 -
雙總體配對樣本:(形式與上述一致)
u0為0假設下差異值的均值妥曲。s為配對樣本差值的標準差,s/根號n 為配對樣本差值的均值的標準差 -
雙總體非配對樣本:
注:兩個獨立樣本的差的variance是:
這個公式是一個比值钦购。一個普通的比喻是檐盟,t值為信噪比。
配對t檢驗除了自由度有所差異押桃,其實本身也差不多葵萎。
上述公式本質(zhì):分子都是均值,分母都是方差(均值的方差)怨规。所以和z score本質(zhì)也一樣陌宿。
1)根據(jù)待檢驗的實驗,計算出t值
2)根據(jù)t值查表獲取p值波丰,借此判斷是否有統(tǒng)計學上的差異(不過通常做法是根據(jù)想要的p值【比如0.05】來查表獲得臨界的t值,再比較t值的大小來判斷是否達到一定的顯著性舶得,p>臨界t值掰烟,則效果顯著)PS:p值代表原假設為真時,此事件發(fā)生的概率沐批∪移铮【如果很小的話,則證明不太可能發(fā)生這樣的情況九孩,應該拒絕原假設先馆,當然,拒絕也是有錯誤的可能性的躺彬,錯誤的概率也為p值煤墙,即有顯著差異其誤判的概率是p】
用于正態(tài)總體均值假設檢驗,單樣本宪拥,雙樣本都可以仿野。
結果意義:P值小于顯著性水平時拒絕原假設,否則她君,接受原假設脚作。具體的假設要看所選擇的是雙邊假設還是單邊假設(又分小于和大于)
單樣本t檢驗
t.test(extra ~ 1, data = sleep)
#>
#> One Sample t-test
#>
#> data: extra
#> t = 3.413, df = 19, p-value = 0.002918
#> alternative hypothesis: true mean is not equal to 0
#> 95 percent confidence interval:
#> 0.5955845 2.4844155
#> sample estimates:
#> mean of x
#> 1.54
p=0.002918 < 0.05,拒絕原假設缔刹,接受備擇假設球涛,樣本均值不等于0
雙樣本t檢驗
t.test(1:10, 10:20)
#>
#> Welch Two Sample t-test
#>
#> data: 1:10 and 10:20
#> t = -7, df = 19, p-value = 2e-06
#> alternative hypothesis: true difference in means is not equal to 0
#> 95 percent confidence interval:
#> -12.4 -6.6
#> sample estimates:
#> mean of x mean of y
#> 5.5 15.0
p=2e-06 < 0.05,則拒絕原假設,接受備擇假設校镐。說明兩樣本存在均值差異(兩樣本的均值差不等于0)
配對 t 檢驗
## 使用公式進行配對t檢驗
## The sleep data are actually paired, so could have been in wide format:
sleep2 <- reshape(sleep, direction = "wide",
idvar = "ID", timevar = "group")
t.test(Pair(extra.1, extra.2) ~ 1, data = sleep2)
#>
#> Paired t-test
#>
#> data: sleep2$extra.1 and sleep2$extra.2
#> t = -4.0621, df = 9, p-value = 0.002833
#> alternative hypothesis: true mean difference is not equal to 0
#> 95 percent confidence interval:
#> -2.4598858 -0.7001142
#> sample estimates:
#> mean difference
#> -1.58
## 不使用公式進行配對t檢驗
t.test(sleep2$extra.1,sleep2$extra.2,paired=T)
#>
#> Paired t-test
#>
#> data: sleep2$extra.1 and sleep2$extra.2
#> t = -4.0621, df = 9, p-value = 0.002833
#> alternative hypothesis: true mean difference is not equal to 0
#> 95 percent confidence interval:
#> -2.4598858 -0.7001142
#> sample estimates:
#> mean difference
#> -1.58
方差檢驗(F檢驗-方差齊性檢驗)
檢測兩個及以上的樣本總體方差差異是否顯著的檢驗亿扁。(對正太性敏感,需要前提為正太分布)
基礎延伸:
H0假設:兩個樣本的方差沒有差異(齊次)σ1 = σ2
H1對立假設:兩個樣本的方差有差異σ1 > σ2
描述統(tǒng)計量F=σ1/σ2 服從 d1=n1-1, d2=n2-1 的F分布
服從正態(tài)分布的兩組樣本總體方差比較
df <- data.frame(
value = c(rnorm(10), rnorm(10, mean = 1)),
group = c(rep("control", 10), rep("test", 10))
)
# 進行的是 F 檢驗
var.test(value ~ group, data = df)
#>
#> F test to compare two variances
#>
#> data: value by group
#> F = 0.4, num df = 9, denom df = 9, p-value = 0.2
#> alternative hypothesis: true ratio of variances is not equal to 1
#> 95 percent confidence interval:
#> 0.103 1.671
#> sample estimates:
#> ratio of variances
#> 0.415
多組樣本方差比較
使用 Bartlett 檢驗比較每個組(樣本)數(shù)據(jù)的方差是否一致灭翔。
bartlett.test(count ~ spray, data = InsectSprays)
#>
#> Bartlett test of homogeneity of variances
#>
#> data: count by spray
#> Bartlett's K-squared = 25.96, df = 5, p-value = 9.085e-05
# k-squared檢驗統(tǒng)計量的近似卡方分布的自由度
多樣本均值比較
對于兩組以上數(shù)據(jù)間均值的比較魏烫,使用方差分析 ANOVA
aov(wt ~ factor(cyl), data = mtcars)
#> Call:
#> aov(formula = wt ~ factor(cyl), data = mtcars)
#>
#> Terms:
#> factor(cyl) Residuals
#> Sum of Squares 18.2 11.5
#> Deg. of Freedom 2 29
#>
#> Residual standard error: 0.63
#> Estimated effects may be unbalanced
查看詳細信息
model.tables(aov(wt ~ factor(cyl), data = mtcars))
#> Tables of effects
#>
#> factor(cyl)
#> 4 6 8
#> -0.9315 -0.1001 0.782
#> rep 11.0000 7.0000 14.000
通常先用 lm() 函數(shù)對數(shù)據(jù)建立線性模型巷疼,再用 anova() 函數(shù)提取方差分析的信息更方便颂暇。
md <- lm(wt ~ factor(cyl), data = mtcars)
anova(md)
#> Analysis of Variance Table
#>
#> Response: wt
#> Df Sum Sq Mean Sq F value Pr(>F)
#> factor(cyl) 2 18.2 9.09 22.9 1.1e-06 ***
#> Residuals 29 11.5 0.40
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ANOVA 分析假設各組樣本數(shù)據(jù)的方差是相等的,如果知道(或懷疑)不相等,可以使用 oneway.test() 函數(shù)公壤。
oneway.test(wt ~ cyl, data = mtcars)
#>
#> One-way analysis of means (not assuming equal variances)
#>
#> data: wt and cyl
#> F = 20, num df = 2, denom df = 19, p-value = 2e-05
多組樣本的配對 t 檢驗
計算組間水平的兩兩比較,并進行多次檢驗校正
pairwise.t.test(mtcars$wt, mtcars$cyl)
#>
#> Pairwise comparisons using t tests with pooled SD
#>
#> data: mtcars$wt and mtcars$cyl
#>
#> 4 6
#> 6 0.01 -
#> 8 6e-07 0.01
#>
#> P value adjustment method: holm
p.adjust.methods # 可以自定義 p 值校正方法
# c("holm", "hochberg", "hommel", "bonferroni", "BH", "BY", "fdr", "none")
正態(tài)性檢驗
Shapiro-Wilk 檢驗:
檢驗數(shù)據(jù)是否符合正態(tài)分布倾芝,R函數(shù):shapiro.test()焚虱。
結果含義:當p值小于某個顯著性水平α(比如0.05)時,則認為樣本不是來自正態(tài)分布的總體链嘀,否則則承認樣本來自正態(tài)分布的總體萌狂。
shapiro.test(rnorm(30))
#>
#> Shapiro-Wilk normality test
#>
#> data: rnorm(30)
#> W = 1, p-value = 1
分布的對稱性檢驗
用 Kolmogorov-Smirnov 檢驗查看一個向量是否來自對稱的概率分布(不限于正態(tài)分布)。
函數(shù)第 1 個參數(shù)指定待檢驗的數(shù)據(jù)怀泊,第 2 個參數(shù)指定對稱分布的類型茫藏,可以是數(shù)值型向量、指定概率分布函數(shù)的字符串或一個分布函數(shù)霹琼。
ks.test(rnorm(10), "pnorm")
#>
#> One-sample Kolmogorov-Smirnov test
#>
#> data: rnorm(10)
#> D = 0.4, p-value = 0.09
#> alternative hypothesis: two-sided
ks.test(rpois(10, lambda = 1), "pnorm")
#> Warning in ks.test(rpois(10, lambda = 1), "pnorm"): ties should not be present
#> for the Kolmogorov-Smirnov test
#>
#> One-sample Kolmogorov-Smirnov test
#>
#> data: rpois(10, lambda = 1)
#> D = 0.5, p-value = 0.01
#> alternative hypothesis: two-sided
檢驗兩個向量是否服從同一分布
ks.test(rnorm(20), rnorm(30))
#>
#> Two-sample Kolmogorov-Smirnov test
#>
#> data: rnorm(20) and rnorm(30)
#> D = 0.1, p-value = 1
#> alternative hypothesis: two-sided
相關性檢驗
cor.test(mtcars$mpg, mtcars$wt)
#>
#> Pearson's product-moment correlation
#>
#> data: mtcars$mpg and mtcars$wt
#> t = -10, df = 30, p-value = 1e-10
#> alternative hypothesis: true correlation is not equal to 0
#> 95 percent confidence interval:
#> -0.934 -0.744
#> sample estimates:
#> cor
#> -0.868
一共有 3 種方法("pearson", "kendall", "spearman")
cor.test(mtcars$mpg, mtcars$wt, method = "spearman", exact = F)
#>
#> Spearman's rank correlation rho
#>
#> data: mtcars$mpg and mtcars$wt
#> S = 10292, p-value = 1e-11
#> alternative hypothesis: true rho is not equal to 0
#> sample estimates:
#> rho
#> -0.886
不依賴分布的檢驗
均值檢驗
Wilcoxon 檢驗是 t 檢驗的非參數(shù)版本务傲。
單樣本秩和檢驗
x <- c(1.83, 0.50, 1.62, 2.48, 1.68, 1.88, 1.55, 3.06, 1.30)
y <- c(0.878, 0.647, 0.598, 2.05, 1.06, 1.29, 1.06, 3.14, 1.29)
wilcox.test(x, y, paired = TRUE, alternative = "greater")
#>
#> Wilcoxon signed rank exact test
#>
#> data: x and y
#> V = 40, p-value = 0.01953
#> alternative hypothesis: true location shift is greater than 0
wilcox.test(y - x, alternative = "less") # The same.
#>
#> Wilcoxon signed rank exact test
#>
#> data: y - x
#> V = 5, p-value = 0.01953
#> alternative hypothesis: true location is less than 0
## 使用公式進行單樣本檢驗
depression <- data.frame(first = x, second = y, change = y - x)
wilcox.test(change ~ 1, data = depression)
#>
#> Wilcoxon signed rank exact test
#>
#> data: change
#> V = 5, p-value = 0.03906
#> alternative hypothesis: true location is not equal to 0
wilcox.test(Pair(first, second) ~ 1, data = depression)
#>
#> Wilcoxon signed rank exact test
#>
#> data: Pair(first, second)
#> V = 40, p-value = 0.03906
#> alternative hypothesis: true location shift is not equal to 0
雙樣本秩和檢驗
x <- c(0.80, 0.83, 1.89, 1.04, 1.45, 1.38, 1.91, 1.64, 0.73, 1.46)
y <- c(1.15, 0.88, 0.90, 0.74, 1.21)
wilcox.test(x, y, alternative = "g") # greater
#>
#> Wilcoxon rank sum exact test
#>
#> data: x and y
#> W = 35, p-value = 0.1272
#> alternative hypothesis: true location shift is greater than 0
wilcox.test(x, y, alternative = "greater",
+ exact = FALSE, correct = FALSE) # H&W large sample
#>
#> Wilcoxon rank sum test
#>
#> data: x and y
#> W = 35, p-value = 0.1103
#> alternative hypothesis: true location shift is greater than 0
wilcox.test(rnorm(10), rnorm(10, 2), conf.int = TRUE)
#>
#> Wilcoxon rank sum exact test
#>
#> data: rnorm(10) and rnorm(10, 2)
#> W = 2, p-value = 4.33e-05
#> alternative hypothesis: true location shift is not equal to 0
#> 95 percent confidence interval:
#> -4.072355 -1.718803
#> sample estimates:
#> difference in location
#> -2.906765
多均值比較
多均值比較使 Kruskal-Wallis 秩和檢驗。
x <- c(2.9, 3.0, 2.5, 2.6, 3.2) # normal subjects
y <- c(3.8, 2.7, 4.0, 2.4) # with obstructive airway disease
z <- c(2.8, 3.4, 3.7, 2.2, 2.0) # with asbestosis
kruskal.test(list(x, y, z))
#>
#> Kruskal-Wallis rank sum test
#>
#> data: list(x, y, z)
#> Kruskal-Wallis chi-squared = 0.77143, df = 2, p-value = 0.68
## 相同的結果
x <- c(x, y, z)
g <- factor(rep(1:3, c(5, 4, 5)),
+ labels = c("Normal subjects",
+ "Subjects with obstructive airway disease",
+ "Subjects with asbestosis"))
kruskal.test(x, g)
#>
#> Kruskal-Wallis rank sum test
#>
#> data: x and g
#> Kruskal-Wallis chi-squared = 0.77143, df = 2, p-value = 0.68
## 使用公式
require(graphics)
boxplot(Ozone ~ Month, data = airquality)
kruskal.test(Ozone ~ Month, data = airquality)
#>
#> Kruskal-Wallis rank sum test
#>
#> data: Ozone by Month
#> Kruskal-Wallis chi-squared = 29.267, df = 4, p-value = 6.901e-06
方差檢驗
使用Fligner-Killeen(中位數(shù))檢驗完成不同組別的方差比較
fligner.test(InsectSprays$count, InsectSprays$spray)
#>
#> Fligner-Killeen test of homogeneity of variances
#>
#> data: InsectSprays$count and InsectSprays$spray
#> Fligner-Killeen:med chi-squared = 14.483, df = 5, p-value = 0.01282
fligner.test(count ~ spray, data = InsectSprays)
#>
#> Fligner-Killeen test of homogeneity of variances
#>
#> data: count by spray
#> Fligner-Killeen:med chi-squared = 14.483, df = 5, p-value = 0.01282
scale參數(shù)差異
R 有一些檢驗可以用來確定scale參數(shù)的差異枣申。分布的scale參數(shù)確定分布函數(shù)的尺度售葡,如 t 分布的自由度。
Ansari-Bradley 檢驗(兩樣本)
## Serum iron determination using Hyland control sera
ramsay <- c(111, 107, 100, 99, 102, 106, 109, 108, 104, 99,
101, 96, 97, 102, 107, 113, 116, 113, 110, 98)
jung.parekh <- c(107, 108, 106, 98, 105, 103, 110, 105, 104,
100, 96, 108, 103, 104, 114, 114, 113, 108, 106, 99)
ansari.test(ramsay, jung.parekh)
#>
#> Ansari-Bradley test
#>
#> data: ramsay and jung.parekh
#> AB = 185.5, p-value = 0.1815
#> alternative hypothesis: true ratio of scales is not equal to 1
#>
#> Warning message:
#> In ansari.test.default(ramsay, jung.parekh) : 無法精確計算帶連結的p值
Mood 檢驗(兩樣本)
mood.test(rnorm(10), rnorm(10, 0, 2), conf.int = TRUE)
#>
#> Mood two-sample test of scale
#>
#> data: rnorm(10) and rnorm(10, 0, 2)
#> Z = -1.5595, p-value = 0.1189
#> alternative hypothesis: two.sided
離散數(shù)據(jù)
比例檢驗
未給定概率
使用 prop.test() 比較兩組觀測值發(fā)生的概率是否有差異忠藤。
heads <- rbinom(1, size = 100, prob = .5) # 二項分布:隨機生成一個概率為0.5挟伙,在100次試驗中能成功發(fā)生的的次數(shù)
prop.test(heads, 100) # continuity correction TRUE by default
#>
#> 1-sample proportions test with continuity correction
#>
#> data: heads out of 100, null probability 0.5
#> X-squared = 0.25, df = 1, p-value = 0.6171
#> alternative hypothesis: true p is not equal to 0.5
#> 95 percent confidence interval:
#> 0.3703535 0.5719775
#> sample estimates:
#> p
#> 0.47
prop.test(heads, 100, correct = FALSE)
#>
#> 1-sample proportions test without continuity correction
#>
#> data: heads out of 100, null probability 0.5
#> X-squared = 0.36, df = 1, p-value = 0.5485
#> alternative hypothesis: true p is not equal to 0.5
#> 95 percent confidence interval:
#> 0.3751082 0.5671114
#> sample estimates:
#> p
#> 0.47
## H0原假設:從患者中抽取的四個人,在人群中吸煙者的真實比例相同模孩。
## H1備擇假設:抽取的這個比例在至少一個群體中是不同的尖阔。
smokers <- c( 83, 90, 129, 70 )
patients <- c( 86, 93, 136, 82 )
prop.test(smokers, patients)
#>
#> 4-sample test for equality of proportions without continuity correction
#>
#> data: smokers out of patients
#> X-squared = 12.6, df = 3, p-value = 0.005585
#> alternative hypothesis: two.sided
#> sample estimates:
#> prop 1 prop 2 prop 3 prop 4
#> 0.9651163 0.9677419 0.9485294 0.8536585
給定概率值
prop.test(heads, 100, p = 0.3, correct = FALSE)
#>
#> 1-sample proportions test without continuity correction
#>
#> data: heads out of 100, null probability 0.3
#> X-squared = 13.762, df = 1, p-value = 0.0002075
#> alternative hypothesis: true p is not equal to 0.3
#> 95 percent confidence interval:
#> 0.3751082 0.5671114
#> sample estimates:
#> p
#> 0.47
二項式檢驗
在伯努利實驗中對一個簡單的原假設成功的概率進行精確檢驗。
## 在孟德爾遺傳的假設下瓜贾,兩種特定基因型植物的雜交產(chǎn)生的后代中诺祸,1/4是“矮稈”,3/4是“高稈”祭芦。為了確定這個假設是否合理筷笨,一個雜交的結果是后代有243個矮稈植株和682個高稈植株。如果“高稈”被視為成功龟劲,原假設是p = 3/4胃夏,備擇假設是p != 3/4。
binom.test(c(682, 243), p = 3/4)
#>
#> Exact binomial test
#>
#> data: c(682, 243)
#> number of successes = 682, number of trials = 925, p-value = 0.4
#> alternative hypothesis: true probability of success is not equal to 0.75
#> 95 percent confidence interval:
#> 0.708 0.765
#> sample estimates:
#> probability of success
#> 0.737
binom.test(682, 682 + 243, p = 3/4) # The same
#>
#> Exact binomial test
#>
#> data: 682 and 682 + 243
#> number of successes = 682, number of trials = 925, p-value = 0.4
#> alternative hypothesis: true probability of success is not equal to 0.75
#> 95 percent confidence interval:
#> 0.708 0.765
#> sample estimates:
#> probability of success
#> 0.737
與其他的檢驗函數(shù)不同昌跌,這里的 p 值表示試驗成功率與假設值的最小差值仰禀。
列聯(lián)表檢驗
用來確定兩個分類變量是否相關。
小的列聯(lián)表
當列聯(lián)表較小時蚕愤,F(xiàn)isher 精確檢驗有較好的檢驗結果答恶。
## 一個關于喝茶的故事
## 有一位英國婦女饺蚊,她聲稱能分辨出是先往杯子里倒牛奶還是先往杯子里倒茶。為了測試悬嗓,她喝了8杯茶污呼,其中4杯先加了牛奶。為了確定倒酒的順序和女士的猜測結果是否有關聯(lián)包竹?可作出如下假設:
## 原假設是真實的倒酒順序和女士的猜測之間沒有關聯(lián)燕酷,備擇假設是有正關聯(lián)(比值比大于1)。
TeaTasting <-
matrix(c(3, 1, 1, 3),
nrow = 2,
dimnames = list(Guess = c("Milk", "Tea"),
Truth = c("Milk", "Tea")))
fisher.test(TeaTasting, alternative = "greater")
#>
#> Fisher's Exact Test for Count Data
#>
#> data: TeaTasting
#> p-value = 0.2429
#> alternative hypothesis: true odds ratio is greater than 1
#> 95 percent confidence interval:
#> 0.3135693 Inf
#> sample estimates:
#> odds ratio
#> 6.408309
大的列聯(lián)表
當列聯(lián)表較大時周瞎,F(xiàn)isher 計算量很大苗缩,可以使用卡方檢驗替代。
chisq.test(TeaTasting)
#> Warning in chisq.test(TeaTasting): Chi-squared approximation may be incorrect
#>
#> Pearson's Chi-squared test with Yates' continuity correction
#>
#> data: TeaTasting
#> X-squared = 0.5, df = 1, p-value = 0.5
對于三變量的混合影響声诸,使用 Cochran-Mantel-Haenszel 檢驗酱讶。
在三變量沒有相互作用的情況下,進行Cochran-Mantel-Haenszel卡方檢驗彼乌,即每個層面中有兩個變量是條件獨立的浴麻。
## 青霉素和兔子:立即注射或1.5小時延遲注射青霉素對家兔抗-溶血性鏈球菌致死效果的研究。
Rabbits <- # 生成5個2*2的三維數(shù)組
array(c(0, 0, 6, 5,
3, 0, 3, 6,
6, 2, 0, 4,
5, 6, 1, 0,
2, 5, 0, 0),
dim = c(2, 2, 5),
dimnames = list(
Delay = c("None", "1.5h"),
Response = c("Cured", "Died"),
Penicillin.Level = c("1/8", "1/4", "1/2", "1", "4")))
## 經(jīng)典Mantel-Haenszel檢驗
mantelhaen.test(Rabbits)
#>
#> Mantel-Haenszel chi-squared test with continuity correction
#>
#> data: Rabbits
#> Mantel-Haenszel X-squared = 3.9286, df = 1, p-value = 0.04747
#> alternative hypothesis: true common odds ratio is not equal to 1
#> 95 percent confidence interval:
#> 1.026713 47.725133
#> sample estimates:
#> common odds ratio
#> 7
# P = 0.047囤攀,證據(jù)表明立即注射治愈率較高
## 精確條件檢驗
mantelhaen.test(Rabbits, exact = TRUE)
#>
#> Exact conditional test of independence in 2 x 2 x k tables
#>
#> data: Rabbits
#> S = 16, p-value = 0.03994
#> alternative hypothesis: true common odds ratio is not equal to 1
#> 95 percent confidence interval:
#> 1.077401 529.837399
#> sample estimates:
#> common odds ratio
#> 10.36102
# p = 0.040 選擇的精確條件檢驗,直接注射治愈率較高宫纬。
用 McNemar 卡方檢驗-檢驗二維列聯(lián)表的對稱性
## 總統(tǒng)支持率:在相隔一個月的兩項調(diào)查中焚挠,總統(tǒng)的執(zhí)政表現(xiàn)得到了認可,該調(diào)查對1600名處于投票年齡的美國人進行了隨機抽樣調(diào)查漓骚。
Performance <-
matrix(c(794, 86, 150, 570),
nrow = 2,
dimnames = list("1st Survey" = c("Approve", "Disapprove"),
"2nd Survey" = c("Approve", "Disapprove")))
mcnemar.test(Performance)
#>
#> McNemar's Chi-squared test with continuity correction
#>
#> data: Performance
#> McNemar's chi-squared = 16.818, df = 1, p-value = 4.115e-05
# p-value = 4.115e-05 說明支持率有明顯變化(實際上是下降)
列聯(lián)表非參數(shù)檢驗
Friedman 秩和檢驗是一個非參數(shù)版本的雙邊 ANOVA 檢驗蝌衔。(應用于未重復的塊數(shù)據(jù))
## 通過對三種方法(“四舍五入”、“窄角”和“廣角”)蝌蹂,來比較速度的差異噩斟,18名球員中,每一個人從距離本壘35英尺的一壘線上的一個點到距離二壘15英尺的一個點的兩次跑壘的平均時間被記錄下來孤个。
RoundingTimes <-
matrix(c(5.40, 5.50, 5.55,
5.85, 5.70, 5.75,
5.20, 5.60, 5.50,
5.55, 5.50, 5.40,
5.90, 5.85, 5.70,
5.45, 5.55, 5.60,
5.40, 5.40, 5.35,
5.45, 5.50, 5.35,
5.25, 5.15, 5.00,
5.85, 5.80, 5.70,
5.25, 5.20, 5.10,
5.65, 5.55, 5.45,
5.60, 5.35, 5.45,
5.05, 5.00, 4.95,
5.50, 5.50, 5.40,
5.45, 5.55, 5.50,
5.55, 5.55, 5.35,
5.45, 5.50, 5.55,
5.50, 5.45, 5.25,
5.65, 5.60, 5.40,
5.70, 5.65, 5.55,
6.30, 6.30, 6.25),
nrow = 22,
byrow = TRUE,
dimnames = list(1 : 22,
c("Round Out", "Narrow Angle", "Wide Angle")))
friedman.test(RoundingTimes)
#>
#> Friedman rank sum test
#>
#> data: RoundingTimes
#> Friedman chi-squared = 11.143, df = 2, p-value = 0.003805
# p-value = 0.003805 強有力的證據(jù)證明這些方法在速度方面是等價的