文章目录
1. 描述性统计分析
描述性统计量分析:包括平均数,方差,极差,最大值,最小值等,属于概率论与数理统计的简单内容。
# 每加仑汽油行驶英里数(mpg) 、马力(hp)和车重(wt)
# 变速箱类型(am) 汽缸数(cyl)
mtcars # 所用数据
summary(mtcars[c("mpg","hp","wt")]) # summmary() 得到数据的统计量
# length()、 range()、quantile()/mean()、sd()、var()、min()、max()、median()
# fivenum()
# 用函数
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))
}
# 分布呈现右偏(偏右+0.610655) 峰度(-0.372766)
myvars <- c("mpg", "hp", "wt")
sapply(mtcars[myvars], mystats, na.omit=FALSE)
# psych包也拥有一个名为describe()的函数,它可以计算非缺失值的数量、平均数、标准差、中位数、截尾均值、绝对中位差、最小值、最大值、值域、偏度、峰度和平均值的标准误
install.packages("psych")
library(psych)
a = describe(mtcars[myvars])
# psych包的describeBy() 分组描述统计量 (各种统计量)
# describeBy(data, )
describeBy(mtcars[myvars], list(am=mtcars$am, cyl=mtcars$cyl))
# by() 函数的使用 分组统计函数的描述性统计量,可以使用自定义的函数。
# 而reshape2中的aggregate 只能使用简单的mean和sd等函数
# by(data, INDICES, FUN) INDICES 是因子货因子组成的列表
dstats = function(x){sapply(x, mystats)}
by(mtcars[myvars], mtcars$am, dstats)
# 生成频数表
a = table(mtcars$am, mtcars$cyl)
###############################
# 独立性检验
# 一个方差的同质性检验用卡方检验, 两个方差同质性的用F检验
# 卡方检验 chisq.test() 同质性,适合性,独立性检验
# 这里的p值表示从总体中抽取的样本行变量与列变量是相互独立的概率
# install.packages("vcd")
library(vcd)
my = xtabs(~Treatment+Improved+Sex, data=Arthritis)
mytable = xtabs(~Treatment+Improved, data=Arthritis)
# 卡房检验用的是频数表
chisq.test(mytable)
mytable_2 = xtabs(~Improved+Sex, data=Arthritis)
chisq.test(mytable_2)
# fisher 精确检验---F 检验 (方差齐性)
fisher.test(mytable)
################################
# 相关性的衡量 (vcd包中的assocstats()函数可以计算二维列联表的phi系数、列联系数和Cramer’s V系数)
assocstats(mytable) #相关性的值越大代表关系越近
# R可以计算多种相关系数,包括Pearson相关系数、Spearman相关系数、Kendall相关系数、
# 偏相关系数、多分格(polychoric)相关系数和多系列(polyserial)相关系数。
# Pearson积差相关系数衡量了两个定量变量之间的线性相关程度。 Spearman等级相关系数则衡量分级定序变量之间的相关程度。Kendall’s Tau相关系数也是一种非参数的等级相关度量
options(digits = 2)
states<- state.x77[,1:6]
# 关于use和method的参数可以在r中获得。
cor(states,use = "everything", method = "pearson")
cov(states) # 计算协方差
x = states[,3:6]
y = states[,1:2]
cor(x,y)
# 偏相关是指在控制一个或多个定量变量时,另外两个定量变量之间的相互关系
install.packages("ggm")
library(ggm)
colnames(states)# "Population" "Income","Illiteracy","Life Exp","Murder","HS Grad"
pcor(c(1,5,2,3,6), cov(states))
# 在控制了收入、文盲率和高中毕业率的影响时,人口和谋杀率之间的相关系数为 0.35。
#####################
# 相关性的显著性检验
# 这些已经这之前的文章介绍过了,大家可以看之前的文章