20180316(從有道遷移)
基本統(tǒng)計分析
-
描述性統(tǒng)計分析
- 常用庫:
- 基礎(chǔ)方法summary;
- summary()函數(shù)提供了最小值、最大值、四分位數(shù)和數(shù)值型變量的均值,以及因子向量和邏輯型向量的頻數(shù)統(tǒng)計
- 可以使用apply()函數(shù)或sapply()函數(shù)計算所選擇的任意數(shù)據(jù)集的描述性統(tǒng)計量
- sapply()函數(shù),其使用格式為
sapply(x,FUN,otions)- x是數(shù)據(jù)框(或矩陣)
- FUN為一個任意的函數(shù), 可以插入的典型函數(shù)有mean、sd、var、min、max、median、length、range和quantile。
- 如果指定了options,它們將被傳遞給FUN
- 函數(shù)fivenum()可返回圖基五數(shù)總括(Tukey’s five-number summary,即最小值、下四分位數(shù)、中位數(shù)、上四分位數(shù)和最大值)
- Hmisc包中的describe()函數(shù)可返回變量和觀測的數(shù)量、缺失值和唯一值的數(shù)目、平均值、分位數(shù),以及五個最大的值和五個最小的值
- pastecs包中有一個名為stat.desc()的函數(shù),它可以計算種類繁多的描述性統(tǒng)計量。
- 使用格式:
stat.desc(x,basic=TRUE,desc=TRUE,norm=FALSE,p=0.95) - x是一個數(shù)據(jù)框或時間序列
- 若basic=TRUE(默認值),則計算其中所有值、空值、缺失值的數(shù)量,以及最小值、最大值、值域,還有總和
- 若desc=TRUE(同樣也是默認值),則計算中位數(shù)、平均數(shù)、平均數(shù)的標準誤、平均數(shù)置信度為95%的置信區(qū)間、方差、標準差以及變異系數(shù)
- 若norm=TRUE(不是默認的),則返回正態(tài)分布統(tǒng)計量,包括偏度和峰度(以及它們的統(tǒng)計顯著程度)和Shapiro–Wilk正態(tài)檢驗結(jié)果
- 使用格式:
- psych包擁有一個名為describe()的函數(shù),它可以計算非缺失值的數(shù)量、平均數(shù)、標準差、中位數(shù)、截尾均值、絕對中位差、最小值、最大值、值域、偏度、峰度和平均值的標準誤差
- 基礎(chǔ)方法summary;
- 分組計算描述性統(tǒng)計量
在比較多組個體或觀測時,關(guān)注的焦點經(jīng)常是各組的描述性統(tǒng)計信息,而不是樣本整體的描述性統(tǒng)計信息
-
可以使用aggregate()函數(shù)來分組獲取描述性統(tǒng)計量
- 如果有多個分組變量,可以使用by=list(name1=groupvar1, name2=groupvar2, ... , groupvarN)這樣的語句
aggregate(mtcars[vars],by=list(am=mtcars$am),mean) aggregate(mtcars[vars],by=list(am=mtcars$am),sd) -
aggregate()僅允許在每次調(diào)用中使用平均數(shù)、標準差這樣的單返回值函數(shù),無法一次返回若干個統(tǒng)計量。要完成這項任務(wù),可以使用by()函數(shù)。格式:
by(data,INDICES,FUN)- data是一個數(shù)據(jù)框或矩陣
- INDICES是一個因子或因子組成的列表,定義了分組
- FUN是任意函數(shù)
mystats <- function(x,na.omit=FALSE){ if (na.omit) x <- x[!is.na(x)] m <- mean(x) n <- length(x) s <- sd(x) skew <- sum((x-m)^3/s^3)/n kurt <- sum((x-m)^4/s^4)/n - 3 return(c(n=n, mean=m, stdev=s, skew=skew, kurtosis=kurt)) } dstats <- function(x)sapply(x, mystats) myvars <- c("mpg", "hp", "wt") by(mtcars[myvars], mtcars$am, dstats)
-
doBy包中summaryBy()函數(shù)的使用格式為:
summaryBy(formula,data=dataframe,FUN=function),其中formula接受以下的格式:var1+var2+var3+...+varN ~ group1+group2+...+groupNsummaryBy(mpg+hp+wt~am,data=mtcars,FUN=mystats) psych包中的describe.by()函數(shù)可計算和describe相同的描述性統(tǒng)計量,只是按照一個或多個分組變量分層,
describe.by(mtcars[vars],mtcars$am),describe.by()函數(shù)不允許指定任意函數(shù),若存在一個以上的分組變量,你可以使用list(groupvar1, groupvar2, ... , groupvarN)來表示它們。但這僅在分組變量交叉后不出現(xiàn)空白單元時有效.-
reshape包靈活地按組導(dǎo)出描述性統(tǒng)計量,步驟
- 融合數(shù)據(jù)框:
dfm <- melt(dataframe,measure.vars=y,id.vars=g),其中的dataframe包含著數(shù)據(jù),y是一個向量,指明了要進行概述的數(shù)值型變量(默認使用所有變量),而g是由一個或多個分組變量組成的向量 - 重鑄數(shù)據(jù): cast(dfm,groupvar1+...+groupvarN+ variable ~ .,FUN)
library(reshape) dstats <- function(x)(c(n=length(x), mean=mean(x), sd=sd(x))) dfm <- melt(mtcars, measure.vars=c("mpg", "hp", "wt"), id.vars=c("am", "cyl")) cast(dfm, am + cyl + variable ~ ., dstats)
- 融合數(shù)據(jù)框:
- 常用庫:
-
類別型變量的頻數(shù)表和列聯(lián)表
-
生成頻數(shù)表函數(shù),用于創(chuàng)建和處理列聯(lián)表的函數(shù)如下
函 數(shù) 描 述 table(var1, var2, …, varN) 使用 N 個類別型變量(因子)創(chuàng)建一個 N 維列聯(lián)表 xtabs(formula, data) 根據(jù)一個公式和一個矩陣或數(shù)據(jù)框創(chuàng)建一個 N 維列聯(lián)表 prop.table(table, margins) 依m(xù)argins定義的邊際列表將表中條目表示為分數(shù)形式 margin.table(table, margins) 依m(xù)argins定義的邊際列表計算表中條目的和 addmargins(table, margins) 將概述邊margins(默認是求和結(jié)果)放入表中 ftable(table) 創(chuàng)建一個緊湊的“平鋪”式列聯(lián)表
-
一維列聯(lián)表
- 可以使用table()函數(shù)生成簡單的頻數(shù)統(tǒng)計表
mytable <- table(Arthritis$Improved) ## 結(jié)果 ## None Some Marked ## 42 14 28 - 可以用prop.table()將這些頻數(shù)轉(zhuǎn)化為比例值
prop.table(mytable) ## 結(jié)果 ## None Some Marked ## 0.5000000 0.1666667 0.3333333
- 可以使用table()函數(shù)生成簡單的頻數(shù)統(tǒng)計表
-
二維列聯(lián)表
對于二維列聯(lián)表,table()函數(shù)的使用格式為:
mytable <- table(A,B), 其中,A是行變量,B是列變量。-
對于xtabs()函數(shù)可使用公式風格的輸入創(chuàng)建列聯(lián)表,格式為:
mytable <- xtabs(~ A+B,data=mydata),mydata是一個矩陣或數(shù)據(jù)框。要進行交叉分類的變量應(yīng)出現(xiàn)在公式的右側(cè)(即~符號的右方),以+作為分隔符。若某個變量寫在公式的左側(cè),則其為一個頻數(shù)向量(在數(shù)據(jù)已經(jīng)被表格化時很有用)。mytable <- xtabs(~ Treatment + Improved,data=Arthritis) -
margin.table()和prop.table()函數(shù)分別生成邊際頻數(shù)和比例
## 下標1指代table()語句中的第一個變量。 margin.table(mytable,1) #row sums ## 下標2指代table()語句中的第二個變量 margin.table(mytable, 2) # column sums prop.table(mytable) # cell proportions prop.table(mytable, 1) # row proportions prop.table(mytable, 2) # column proportions -
使用addmargins()函數(shù)為這些表格添加邊際和
## 在使用addmargins()時,默認行為是為表中所有的變量創(chuàng)建邊際和 addmargins(mytable) # add row and column sums to table addmargins(prop.table(mytable)) ## 僅添加了各行的和 addmargins(prop.table(mytable, 1), 2) ## 僅添加了各列的和 addmargins(prop.table(mytable, 2), 1)
==table()函數(shù)默認忽略缺失值(NA)。要在頻數(shù)統(tǒng)計中將NA視為一個有效的類別,請設(shè)定參數(shù)useNA="ifany"。==
-
使用gmodels包中的CrossTable()函數(shù)也可以創(chuàng)建二維列聯(lián)表
- CrossTable()函數(shù)有很多選項,可以做許多事情:計算(行、列、單元格)的百分比;指定小數(shù)位數(shù);進行卡方、Fisher和McNemar獨立性檢驗;計算期望和(皮爾遜、標準化、調(diào)整的標準化)殘差;將缺失值作為一種有效值;進行行和列標題的標注;生成SAS或SPSS風格的輸出。參閱help(CrossTable)以了解詳情
library(gmodels) CrossTable(Arthritis$Treatment,Arthritis$Improved) -
多維列聯(lián)表
- table()和xtabs()都可以基于三個或更多的類別型變量生成多維列聯(lián)表。margin.table()、prop.table()和addmargins()函數(shù)可以自然地推廣到高于二維的情況。另外,ftable()函數(shù)可以以一種緊湊而吸引人的方式輸出多維列聯(lián)表
-
獨立性檢驗
-
卡方獨立性檢驗
- 使用chisq.test()函數(shù)對二維表的行變量和列變量進行卡方獨立性檢驗
- 這里的p值表示從總體中抽取的樣本行變量與列變量是相互獨立的概率
mytable <- xtabs(~Treatment+Improved,data=Arthritis) chisq.test(mytable) ## result 治療情況和改善情況不獨立 Pearson's Chi-squared test data: mytable X-squared = 13.055, df = 2, p-value = 0.001463 mytable2 <- xtabs(~Sex+Improved,data=Arthritis) chisq.test(mytable2) ## result 性別和改善情況獨立 Pearson's Chi-squared test data: mytable2 X-squared = 4.8407, df = 2, p-value = 0.08889 Warning message: In chisq.test(mytable2) : Chi-squared近似算法有可能不準 ## 產(chǎn)生警告信息的原因是,mytable2中的6個單元格之一(男性 - 一定程度上的改善)有一個小于5的值,這可能會使卡方近似無效 -
Fisher精確檢驗
- 使用fisher.test()函數(shù)進行Fisher精確檢驗。
- Fisher精確檢驗的原假設(shè)是:邊界固定的列聯(lián)表中行和列是相互獨立的。
- fisher.test()函數(shù)可以在任意行列數(shù)大于等于2的二維列聯(lián)表上使用,但不能用于2×2的列聯(lián)表
- 調(diào)用格式為fisher.test(mytable),其中的mytable是一個二維列聯(lián)表
fisher.test(mytable) ## result Fisher's Exact Test for Count Data data: mytable p-value = 0.001393 alternative hypothesis: two.sided -
Cochran-Mantel–Haenszel檢驗
- mantelhaen.test()函數(shù)可用來進行Cochran—Mantel—Haenszel卡方檢驗.
- 其原假設(shè)是,兩個名義變量在第三個變量的每一層中都是條件獨立的。
- 下列代碼可以檢驗治療情況和改善情況在性別的每一水平下是否獨立。此檢驗假設(shè)不存在三階交互作用(治療情況×改善情況×性別)
mytable3 <- xtabs(~Treatment+Improved+Sex,data=Arthritis) mantelhaen.test(mytable3) ## result 結(jié)果表明,患者接受的治療與得到的改善在性別的每一水平下并不獨立 ## 即,分性別來看,用藥治療的患者較接受安慰劑的患者有了更多的改善 Cochran-Mantel-Haenszel test data: mytable3 Cochran-Mantel-Haenszel M^2 = 14.632, df = 2, p-value = 0.0006647 -
關(guān)聯(lián)資料:
-
-
相關(guān)性的度量
顯著性檢驗評估了是否存在充分的證據(jù)以拒絕變量間相互獨立的原假設(shè)。如果可以拒絕原假設(shè),那么自然而然地轉(zhuǎn)向用以衡量相關(guān)性強弱的相關(guān)性度量
-
vcd包中的assocstats()函數(shù)可以用來計算二維列聯(lián)表的phi系數(shù)、列聯(lián)系數(shù)和Cramer’s V系數(shù)
library(vcd) assocstats(mytable) X^2 df P(> X^2) Likelihood Ratio 13.530 2 0.0011536 Pearson 13.055 2 0.0014626 Phi-Coefficient : NA Contingency Coeff.: 0.367 Cramer's V : 0.394 ## 總體來說,較大的值意味著較強的相關(guān)性 -
相關(guān)資料
-
-
結(jié)果的可視化
- ca包中的對應(yīng)分析函數(shù)允許使用多種幾何表示可視地探索列聯(lián)表中行和列之間的關(guān)系
-
將表轉(zhuǎn)換為扁平格式
## 可以使用以下代碼提供的函數(shù)將R中的表轉(zhuǎn)換回扁平的數(shù)據(jù)格式 table2falt <- function(mytable){ df <- as.data.frame(table) rows <- dim(df)[1] cols <- dim(df)[2] x <- NULL for (i in 1:rows){ for (j in 1:df$Freq[i]){ row <- df[i,c(1:(cols-1))] x <- rbind(x,row) } } row.names[x] <- c(1:dim(x)[1]) return(x) }
-
相關(guān)
- 相關(guān)系數(shù)可以用來描述定量變量之間的關(guān)系。
- 相關(guān)系數(shù)的符號
(±)表明關(guān)系的方向(正相關(guān)或負相關(guān)),其值的大小表示關(guān)系的強弱程度(完全不相關(guān)時為0,完全相關(guān)時為1)。
-
相關(guān)的類型
-
Pearson、Spearman和Kendall相關(guān)
Pearson積差相關(guān)系數(shù)衡量了兩個定量變量之間的線性相關(guān)程度。
Spearman等級相關(guān)系數(shù)則衡量分級定序變量之間的相關(guān)程度。
Kendall’s Tau相關(guān)系數(shù)也是一種非參數(shù)的等級相關(guān)度量
-
cor()函數(shù)可以計算這三種相關(guān)系數(shù),而cov()函數(shù)可用來計算協(xié)方差,以下為相關(guān)系數(shù)有關(guān)的參數(shù):
參 數(shù) 描 述 x 矩陣或數(shù)據(jù)框 use 指定缺失數(shù)據(jù)的處理方式。</br>可選的方式為all.obs(假設(shè)不存在缺失數(shù)據(jù)——遇到缺失數(shù)據(jù)時將報錯)、</br>everything(遇到缺失數(shù)據(jù)時,相關(guān)系數(shù)的計算結(jié)果將被設(shè)為missing)、</br>complete.obs(行刪除)以及 pairwise.complete.obs(成對刪除,pairwise deletion)</br>默認參數(shù)為use="everything" method 指定相關(guān)系數(shù)的類型。</br>可選類型為pearson、spearman或kendall </br>默認參數(shù)為method="pearson" -
示例
states <- state.x77[,1:6] ## 計算Pearson積差相關(guān)系數(shù) cor(states) Population Income Illiteracy Life Exp Murder Population 1.00000000 0.2082276 0.1076224 -0.06805195 0.3436428 Income 0.20822756 1.0000000 -0.4370752 0.34025534 -0.2300776 Illiteracy 0.10762237 -0.4370752 1.0000000 -0.58847793 0.7029752 Life Exp -0.06805195 0.3402553 -0.5884779 1.00000000 -0.7808458 Murder 0.34364275 -0.2300776 0.7029752 -0.78084575 1.0000000 HS Grad -0.09848975 0.6199323 -0.6571886 0.58221620 -0.4879710 HS Grad Population -0.09848975 Income 0.61993232 Illiteracy -0.65718861 Life Exp 0.58221620 Murder -0.48797102 HS Grad 1.00000000 ## 計算方差和協(xié)方差 cov(states) Population Income Illiteracy Life Exp Murder Population 19931683.7588 571229.7796 292.8679592 -407.8424612 5663.523714 Income 571229.7796 377573.3061 -163.7020408 280.6631837 -521.894286 Illiteracy 292.8680 -163.7020 0.3715306 -0.4815122 1.581776 Life Exp -407.8425 280.6632 -0.4815122 1.8020204 -3.869480 Murder 5663.5237 -521.8943 1.5817755 -3.8694804 13.627465 HS Grad -3551.5096 3076.7690 -3.2354694 6.3126849 -14.549616 HS Grad Population -3551.509551 Income 3076.768980 Illiteracy -3.235469 Life Exp 6.312685 Murder -14.549616 HS Grad 65.237894 ## 計算Spearman等級相關(guān)系數(shù) cor(states,method="spearman") Population Income Illiteracy Life Exp Murder HS Grad Population 1.0000000 0.1246098 0.3130496 -0.1040171 0.3457401 -0.3833649 Income 0.1246098 1.0000000 -0.3145948 0.3241050 -0.2174623 0.5104809 Illiteracy 0.3130496 -0.3145948 1.0000000 -0.5553735 0.6723592 -0.6545396 Life Exp -0.1040171 0.3241050 -0.5553735 1.0000000 -0.7802406 0.5239410 Murder 0.3457401 -0.2174623 0.6723592 -0.7802406 1.0000000 -0.4367330 HS Grad -0.3833649 0.5104809 -0.6545396 0.5239410 -0.4367330 1.0000000
-
偏相關(guān)
- 偏相關(guān)是指在控制一個或多個定量變量時,另外兩個定量變量之間的相互關(guān)系。
- 可以使用ggm包中的pcor()函數(shù)計算偏相關(guān)系數(shù),格式
pcor(u,S),其中:- u是一個數(shù)值向量,前兩個數(shù)值表示要計算相關(guān)系數(shù)的變量下標,其余的數(shù)值為條件變量(即要排除影響的變量)的下標。
- S為變量的協(xié)方差陣
- 示例
library(ggm) ## 在控制了收入、文盲率和高中畢業(yè)率時,人口和謀殺率的偏相關(guān)系數(shù) pcor(c(1,5,2,3,6),cov(states))
-
其他類型的相關(guān)
- polycor包中的hetcor()函數(shù)可以計算一種混合的相關(guān)矩陣,其中包括數(shù)值型變量的Pearson積差相關(guān)系數(shù)、數(shù)值型變量和有序變量之間的多系列相關(guān)系數(shù)、有序變量之間的多分格相關(guān)系數(shù)以及二分變量之間的四分相關(guān)系數(shù)
-
-
相關(guān)性的顯著性檢驗
在計算好相關(guān)系數(shù)以后,可以進行統(tǒng)計顯著性檢驗。常用的原假設(shè)為變量間不相關(guān)(即總體的相關(guān)系數(shù)為0)。
-
可以使用默認包的cor.test()函數(shù)對單個的Pearson、Spearman和Kendall相關(guān)系數(shù)進行檢驗。簡化后的使用格式為:cor.test(x,y,alternative=,method=)
- x和y為要檢驗相關(guān)性的變量
- alternative則用來指定進行雙側(cè)檢驗或單側(cè)檢驗(取值為"two.side"、"less"或"greater")。當研究的假設(shè)為總體的相關(guān)系數(shù)小于0時,請使用alternative="less"。在研究的假設(shè)為總體的相關(guān)系數(shù)大于0時,應(yīng)使用alternative="greater"
- method用以指定要計算的相關(guān)類型("pearson"、"kendall"或"spearman")。
-- 示例
## 檢驗預(yù)期壽命和謀殺率的Pearson相關(guān)系數(shù)為0的原假設(shè) ## 假設(shè)總體的相關(guān)度為0,則預(yù)計在一千萬次中只會有少于一次的機會見到0.703這樣大的樣本相關(guān)度(即p = 1.258e?08)。由于這種情況幾乎不可能發(fā)生,所以你可以拒絕原假設(shè),從而支持了要研究的猜想,即預(yù)期壽命和謀殺率之間的總體相關(guān)度不為0 cor.test(states[,3],states[,5]) Pearson's product-moment correlation data: states[, 3] and states[, 5] t = 6.8479, df = 48, p-value = 1.258e-08 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: 0.5279280 0.8207295 sample estimates: cor 0.7029752 -
psych包中提供的corr.test()函數(shù)可以為Pearson、Spearman或Kendall相關(guān)計算相關(guān)矩陣和顯著性水平,格式corr.test(x,use=,method=)
- 參數(shù)use=的取值可為"pairwise"或"complete"(分別表示對缺失值執(zhí)行成對刪除或行刪除)。
- 參數(shù)method=的取值可為"pearson"(默認值)、"spearman"或"kendall"。
corr.test(states,use="complete") Call:corr.test(x = states, use = "complete") Correlation matrix Population Income Illiteracy Life Exp Murder HS Grad Population 1.00 0.21 0.11 -0.07 0.34 -0.10 Income 0.21 1.00 -0.44 0.34 -0.23 0.62 Illiteracy 0.11 -0.44 1.00 -0.59 0.70 -0.66 Life Exp -0.07 0.34 -0.59 1.00 -0.78 0.58 Murder 0.34 -0.23 0.70 -0.78 1.00 -0.49 HS Grad -0.10 0.62 -0.66 0.58 -0.49 1.00 Sample Size [1] 50 Probability values (Entries above the diagonal are adjusted for multiple tests.) Population Income Illiteracy Life Exp Murder HS Grad Population 0.00 0.59 1.00 1.0 0.10 1 Income 0.15 0.00 0.01 0.1 0.54 0 Illiteracy 0.46 0.00 0.00 0.0 0.00 0 Life Exp 0.64 0.02 0.00 0.0 0.00 0 Murder 0.01 0.11 0.00 0.0 0.00 0 HS Grad 0.50 0.00 0.00 0.0 0.00 0 To see confidence intervals of the correlations, print with the short=FALSE option
-
其他顯著性校驗
- 在多元正態(tài)性的假設(shè)下,ggm包中的pcor.test()函數(shù)可以用來檢驗在控制一個或多個額外變量時兩個變量之間的條件獨立性。
- psych包中的r.test()函數(shù)提供了多種實用的顯著性檢驗方法。此函數(shù)可用來檢驗:
- 某種相關(guān)系數(shù)的顯著性;
- 兩個獨立相關(guān)系數(shù)的差異是否顯著;
- 兩個基于一個共享變量得到的非獨立相關(guān)系數(shù)的差異是否顯著;
- 兩個基于完全不同的變量得到的非獨立相關(guān)系數(shù)的差異是否顯著。
-
t校驗
-
獨立樣本的t校驗
- 一個針對兩組的獨立樣本t檢驗可以用于檢驗兩個總體的均值相等的假設(shè)。這里假設(shè)兩組數(shù)據(jù)是獨立的,并且是從正態(tài)總體中抽得。檢驗的調(diào)用格式為:
- ```t.test( y ~ x,data)``,其中的y是一個數(shù)值型變量,x是一個二分變量??蛇x參數(shù)data的取值為一個包含了這些變量的矩陣或數(shù)據(jù)框。
-
t.test(y1,ye),其中的y1和y2為數(shù)值型向量(即各組的結(jié)果變量)。 - 此方法的t檢驗?zāi)J假定方差不相等,并使用Welsh的修正自由度。可以添加一個參數(shù)var.equal=TRUE以假定方差相等,并使用合并方差估計。
- 默認的備擇假設(shè)是雙側(cè)的(即均值不相等,但大小的方向不確定)??梢蕴砑右粋€參數(shù)alternative="less"或alternative="greater"來進行有方向的檢驗
- 示例:
## 一個假設(shè)方差不等的雙側(cè)檢驗,比較了南方(group 1)和非南方(group 0)各州的監(jiān)禁概率 library(MASS) t.test(Prob ~ So,data=UScrime) Welch Two Sample t-test data: Prob by So t = -3.8954, df = 24.925, p-value = 0.0006506 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -0.03852569 -0.01187439 sample estimates: mean in group 0 mean in group 1 0.03851265 0.06371269 ## 根據(jù)結(jié)果你可以拒絕南方各州和非南方各州擁有相同監(jiān)禁概率的假設(shè)(p < .001)。
- 一個針對兩組的獨立樣本t檢驗可以用于檢驗兩個總體的均值相等的假設(shè)。這里假設(shè)兩組數(shù)據(jù)是獨立的,并且是從正態(tài)總體中抽得。檢驗的調(diào)用格式為:
-
非獨立樣本的t檢驗
- 在兩組的觀測之間相關(guān)時,你獲得的是一個非獨立組設(shè)計(dependent groups design)。前—后測設(shè)計(pre-post design)或重復(fù)測量設(shè)計(repeated measures design)同樣也會產(chǎn)生非獨立的組
- 非獨立樣本的t檢驗假定組間的差異呈正態(tài)分布。對于本例,檢驗的調(diào)用格式為:
-
t.test(y1,y2,paired=TRUE),其中y1和y2為兩個非獨立組的數(shù)值向量
-
- 示例
sapply(UScrime[c("U1","U2")],function(x){c(mean=mean(x),sd=sd(x))}) with(UScrime,t.test(U1,U2,paired=TRUE)) Paired t-test data: U1 and U2 t = 32.407, df = 46, p-value < 2.2e-16 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: 57.67003 65.30870 sample estimates: mean of the differences 61.48936 ## 差異的均值(61.5)足夠大,可以保證拒絕年長和年輕男性的平均失業(yè)率相同的假設(shè)。年輕男性的失業(yè)率更高。事實上,若總體均值相等,獲取一個差異如此大的樣本的概率小于0.000 000 000 000 000 22(即2.2e?16)
-
多于兩組的t校驗情況
- 如果想在多于兩個的組之間進行比。如果能夠假設(shè)數(shù)據(jù)是從正態(tài)總體中獨立抽樣而得的,可以使用方差分析(ANOVA)。ANOVA是一套覆蓋了許多實驗設(shè)計和準實驗設(shè)計的綜合方法
-
-
組間差異的非參數(shù)檢驗
如果數(shù)據(jù)無法滿足t檢驗或ANOVA的參數(shù)假設(shè),可以轉(zhuǎn)而使用非參數(shù)方法
==當t檢驗的假設(shè)合理時,參數(shù)檢驗的功效更強(更容易發(fā)現(xiàn)存在的差異)。而非參數(shù)檢驗在假設(shè)非常不合理時(如對于等級有序數(shù)據(jù))更適用==
-
兩組的比較
- 若兩組數(shù)據(jù)獨立,可以使用Wilcoxon秩和檢驗(更廣為人知的名字是Mann–Whitney U檢驗)來評估觀測是否是從相同的概率分布中抽得的(即,在一個總體中獲得更高得分的概率是否比另一個總體要大)
- 格式:
wilcoxo.test(y ~ x,data),其中的y是數(shù)值型變量,而x是一個二分變量。 - 調(diào)用格式或為:
wilcoxo.test(y1,y2),其中的y1和y2為各組的結(jié)果變量。 - 可選參數(shù)data的取值為一個包含了這些變量的矩陣或數(shù)據(jù)框。
- 默認進行一個雙側(cè)檢驗。可以添加參數(shù)exact來進行精確檢驗,指定alternative="less"或alternative="greater"進行有方向的檢驗
- 示例。。。。
-
多于兩組的比較
- 單向設(shè)計(one-way design),可以使用參數(shù)或非參數(shù)的方法來解決這個問題。
- 如果無法滿足ANOVA設(shè)計的假設(shè),那么可以使用非參數(shù)方法來評估組間的差異。如果各組獨立,則Kruskal—Wallis檢驗將是一種實用的方法。如果各組不獨立(如重復(fù)測量設(shè)計或隨機區(qū)組設(shè)計),那么Friedman檢驗會更合適。
- Kruskal–Wallis檢驗的調(diào)用格式為:
kruskal.test(y ~ A,data),其中的y是一個數(shù)值型結(jié)果變量,A是一個擁有兩個或更多水平的分組變量(grouping variable)。
(若有兩個水平,則它與Mann–Whitney U檢驗等價。) - Friedman檢驗的調(diào)用格式為:
friedman.test(y ~ A|B, data),其中的y是數(shù)值型結(jié)果變量,A是一個分組變量,而B是一個用以認定匹配觀測的區(qū)組變量(blocking
variable) - 一種更為優(yōu)雅的方法是在控制犯第一類錯誤的概率(發(fā)現(xiàn)一個事實上并不存在的差異的概率)的前提下,執(zhí)行可以同步進行的多組比較,這樣可以直接完成所有組之間的成對比較。npmc包提供了所需要的非參數(shù)多組比較程序
-