基本統計分析

描述性統計分析

關注於連續性變量的中心趨勢、變化性和分佈形狀

> summary(object,...)
> # 返回最小值、最大值、四分位數和平均值
> sapply(x,FUN,options)
> library(Hmisc)
> describe(x,...)
> # 返回變量和觀測的數量、缺失值和唯一值得數目、平均值、分位數,以及
  # 五個最大和五個最小的值
> library(pastecs)
> stat.desc(x,basic=TRUE,desc=TRUE,norm=FALSE,p=0.95)
> # basic=TRUE:
  #    所有值、空值、缺失值的數量, 最小值、最大值、值域、總和
  # desc=TRUE:
  #    中位數、平均值、平均值的標準誤、平均值置信度爲95%的置信區間、
  #    方差、標準差以及變異係數
  # norm=TRUE:
  #    偏度、峯度以及它們的統計顯著程度和Shapiro-Wilk正態檢驗結果

分組聚合

> library(doBy)
> summaryBy(var1+var2~group1+group2,data,FUN)
> library(psych)
> describe.by(y,g)
> library(reshape)
> dfm <- melt(dataframe,measure.vars=y,id.vars=g)
> cast(dfm,group1+group2+...+variable~.,FUN)

頻數統計

> table(var1,var2,var3)
> xtab(~var1+var2+var3,data)
> prop.table(table,margins)
> margin.table(table,margins)
> addmargins(table,margins)
> ftable(table)

列聯分析

兩個標稱變量之間的相關性

卡方獨立性檢驗

H0 : x 和 y 獨立

> mytable <- xtabs(~x+y,data)
> chisq.test(mytable)
> ##p_value < 0.05 => x和y不獨立

Fisher精確檢驗

解決卡方檢驗由於有頻數<5時算法不精確問題

> fisher.test(mytable)

Cochran-Mantel-Haenszel檢驗

H0 : 兩個名義變量在第三個變量的每一層中都是條件獨立的

> mytable <- xtabs(~x+y+z,data)
> chisq.test(mytable)
> ##p_value < 0.05 => x和y在z的每一水平下並不獨立

相關性度量

度量相關性強弱

> assocstats(mytable)

相關

相關係數

pearson相關係數:衡量兩個定量變量之間的線性相關程度
spearman相關係數:衡量兩個定序變量之間的線性相關程度
kendall相關係數:衡量兩個定序變量之間的線性相關程度的非參數方法

> cor(x,y=NULL,use="everything",method = c("pearson", "kendall", "spearman"))

相關性的顯著性檢驗

H0 : 相關係數爲0

> cor.test(x,y)
> library(psych)
> corr.test(x, y = NULL, use = "pairwise", method = "pearson")

兩組間差異

H0 : 兩組間差異不明顯

t.test

獨立樣本

> t.test(y~x,data)
> t.test(y1,y2) 

匹配樣本,假定組間差異呈正態分佈

> t.test(y1,y2,paired=TRUE) 

非參數檢驗

曼-惠特尼-威爾科克森檢驗

獨立樣本

> wilcox.test(y~x,data)
> wilcox.test(y1,y2) 

威爾科克森符號秩檢驗

匹配樣本,重複測量設計

> wilcox.test(y1,y2,paired=TRUE)

多組間差異

H0 : 多組間差異不明顯

ANOVA

單因素方差分析

比較分類因子定義的兩個或多個組別中的因變量均值

> library(doBy)
> summaryBy(y~A,data,FUN=function(x)(c(mean=mean(x),sd=sd(x)))
> fit <- aov(y~A,data)
> summary(fit)
> library(gplots)
> plotmeans(y~A,data,main='Mean Plot\nwith 95%CI')
> TukeyHSD(fit)   #多重比較
> par(las=2,mar=c(5,8,4,2))
> plot(TukeyHSD(fit))
> library(multcomp)
> par(mar=c(5,4,6,2))
> tuk <- glht(fit,linfct=mcp(trt="Tukey"))
> plot(cld(tuk,level=.05),col='lightgrey') ##相同字母,均值差異不明顯

待續

非參數方法

克魯斯卡爾-沃利斯檢驗

獨立樣本

> kruskal.test(y~A,data)

Friedman檢驗

不獨立,重複測量設計,隨機區組設計

> friedman.test(y~A|B,data) ##y是結果變量,A是分組變量,B是區組變量

多組比較

> library(npmc)
> mydata <- df[c('y','A')]
> summary(npmc(mydata),type="BF")
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章