R语言实战 第7章


# 01 描述性统计分析 --------------------------------------------------------------
#针对总体的
mycavs = mtcars[,c(1,4,6)]
names(mtcars)
#"mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear" "carb"
#关注的焦点没加仑汽车行驶的mpg 英里数 hp 马力 wt车重
summary(mycavs)

library(psych)
describe(mycavs)
detach(psych)
#针对分组的
aggregate(mycavs,by=list(mtcars$am),mean)
#可以调用的函数只有平均数、标准差这样的单返回值函数

describeBy(mycavs,list(mtcars$am))
##多个分组的话就是 list(name1=groupvar1,name2=groupvar2....)

#分类跟分类的频数表
#一维
library(vcd)
names(Arthritis)
sapply(head(Arthritis),class)
##"ID" "Treatment" "Sex" "Age" "Improved"
#一项风湿性关节炎新疗法的双盲临床实验

mytable = table(Arthritis$Improved)
mytable
#None Some Marked
#42 14 28

prop.table(mytable) ##转换成比例
prop.table(mytable)*100 ##转换成百分比
#二维
table(Arthritis$Improved,Arthritis$Treatment)
xtabs(~Treatment+Improved,data =Arthritis ) ->mytable
# Improved
#Treatment None Some Marked
#Placebo 29 7 7
#Treated 13 7 21
prop.table(mytable,1) ##转换成行比例
prop.table(mytable,2) ##转换成列比例

##多维度
table(Arthritis$Improved,Arthritis$Treatment,Arthritis$Sex)
xtabs(~Treatment+Improved+Sex,data =Arthritis ) ->mytable
ftable(mytable)
##ftable,让三维分组更加紧凑
ftable(prop.table(mytable,c(1,2)))


# 02 独立性检验 ----------------------------------------------------------------
#H0数据独立 数据之间没什么关系
mytabls = xtabs(~Treatment+Improved,data =Arthritis )
chisq.test(mytabls)
#p-value = 0.001463 数据之间不独立,存在关系

mytabls = xtabs(~Sex+Improved,data =Arthritis )
chisq.test(mytabls)
#p-value = 0.08889 数据之间独立,不存在什么关系

fisher.test(mytabls)
##fisher.test Fisher精确检验,比chisq.test更加严谨一点

xtabs(~Treatment+Improved+Sex,data =Arthritis ) ->mytable
mantelhaen.test(mytable)
##H0 两个名义变量在第三个变量中的每一层都是条件独立
# p-value = 0.0006647 结果表明患者接受的治疗得到的改善在性别的每一水平并不独立


# 03 相关性的度量 ---------------------------------------------------------------
#二维列联表的相关

mytabls = xtabs(~Treatment+Improved,data =Arthritis )
assocstats(mytabls)


colnames(state.x77)
#[1] "Population" "Income" "Illiteracy" "Life Exp" "Murder" "HS Grad"
[7] "Frost" "Area"

state = state.x77[,1:6]

cov(state)
##协方差

cor(state)
#采用皮尔逊的相关系数
##function (x, y = NULL, use = "everything", method = c("pearson",
"kendall", "spearman"))

#偏相关
library(ggm)
colnames(state)
#[1] "Population" "Income" "Illiteracy" "Life Exp" "Murder" "HS Grad"
pcor(c(1,5,2,3,6),state)


# 04 相关显著性的检验 -------------------------------------------------------------

cor.test(state[,3],state[,5])
#H0 不相关

cor.test(state[,1],state[,6])

#cor.test只能是一个一个的对其进行显著性检验

##corr.test 一个进行矩阵的相关
library(psych)
corr.test(state)
##人口跟高中毕业是相关系数是-0.1 ,但是不能拒绝显著性为0

pcor(c(1,5,2,3,6),state)->r
c(1,5,2,3,6)->q
pcor.test(r,q,state)

# 05 t检验 ------------------------------------------------------------------
##服从正态分布的 独立两组、不独立两组、多组
##不服从正态分的 两组 多组的 均值比较
## HO 都是均值相等 独立
install.packages("MASS")