#变量间的相关性
#连续变量间的相关性
library(dplyr)
data(birthwt,package = "MASS" )
data1 <-dplyr::select(birthwt,age,lwt,bwt,)
str(data1)
library(psych)
cov(data1)#计算协方差
cor(data1,method ="pearson")#计算pearson相关系数
corr.test(data1,method ="pearson")
corr.test(data1,method ="spearman")
corr.test(data1,method ="kendall")
print(corr.test(data1,method ="pearson"),short=FALSE)#相关系数置信区间
#偏相关(数值型变量)
install.packages("ggm")
library(ggm)
names(data1)
cov(data1)
pcor(c(2,3,1),cov(data1))
#偏相关系数显著性检验
r <- pcor(c(2,3,1),cov(data1))
nrow(data1)
pcor.test(r,q=1,n=189)
#分类变量间的相关性
library(vcd)
mytable <- table(Arthritis$Treatment,Arthritis$Improved)
mytable
assocstats(mytable)#Phi系数适用于二分类变量
#配对列联表
library(epiDisplay)
my.matrix <- matrix(c(11,2,12,33),nrow=2)
my.matrix
kap(my.matrix)#计算Kappa值
#散点图
pairs(data1,main = "Variable Pairs",
col = "blue", pch = 16)#散点图
install.packages("car")
library(car)
scatterplotMatrix(data1, col = "red", # 设置点的颜色为蓝色
pch = 16, # 设置点的形状为实心圆
main = "Scatterplot Matrix") # 设置主标题
#相关系数矩阵可视化
#可视化1
install.packages("corrplot")
library(corrplot)
cor(data1)
corrplot(cor(data1),method = "circle", type = "full",
tl.col = "red", tl.srt = 0)
corrplot(cor(data1),method = "ellipse", type = "lower",
tl.col = "black", tl.srt = 45)#蓝色正相关,红色反之;面积大小颜色深浅代表相关程度强弱;
#可视化2
install.packages("corrgram")
library(corrgram)
corrgram(data1,
upper.panel=panel.pie)#斜杠表示对应两个变量的相关方向,颜色越深相关程度越高
corrgram(birthwt, order=TRUE, lower.panel=panel.ellipse,
upper.panel=panel.pts,
text.panel=panel.txt, diag.panel=panel.minmax,
main="Car Milage Data")
corrgram(birthwt, order=TRUE, lower.panel=panel.shade,
upper.panel=panel.pie,
text.panel=panel.txt, main="Car Milage Data")
library(vcd) #用关联图或马赛克图展示分类变量之间的关系
mytable<-table(Arthritis$Treatment,Arthritis$Improved)
mytable
chisq.test(mytable)
assocplot(mytable)#展示二维列联表。
mosaicplot(mytable, main = "Mosaic Plot",
color = c("red", "blue"))#展示多维列联表数据
#同时展示数值型变量和分类变量的关联
install.packages("GGally")
library(ggplot2)
library(GGally)
data2<- dplyr::select(birthwt,age,lwt,race,smoke)
for (i in names(data2)[c(3:4)]){data2[,i] <- as.factor(data2[,i])}#定义分类变量
str(data2)
ggpairs(data2,title="ggpairs")
# 创建数据集
data3 <- iris[, 1:4] # 使用鸢尾花数据的前四列作为示例
data3
# 绘制默认散点图矩阵
ggpairs(data3)
# 绘制散点图矩阵,上三角显示相关系数,下三角显示低于0.3的相关系数,对角线显示直方图
ggpairs(data3, upper = list(continuous = "density"),#三维密度曲线
lower = list(continuous = "points")) #散点图
ggpairs(data3,upper =list(continuous="cor"), # 相关性系数
lower = list(continuous="smooth"),#带回归线的散点图
diag = NULL ,# 不显示diag部分
xlab = "X axis",
ylab = "Y axis",
axisLabels = "show")# 设置轴标签,“show"表示展示轴标签,
#"internal"展示在对角线(轴标签和分面标题都会展示在diag),"none"不展示轴标签。