查看原文
其他

R可视化——线性相关性分析及可视化

王志山 科研后花园 2023-09-08


今天,我们继续来讲相关性分析方面的内容——线性相关性分析!线性相关性方面的概念性内容这里不做过多赘述,大家自行上网检索,我们直接进入正文。


加载数据

1)设置工作目录

rm(list=ls())#clear Global Environmentsetwd('D:\\桌面\\线性相关性分析')#设置工作路径2)加载数据
####数据这里我们自己编写一段数据##水稻株高A<-c(55,58,62,75,69,59,55,66,88,69,47,58,75,68,64)##水稻根毛数量B<-c(100,102,105,115,109,105,101,110,125,104,95,102,120,116,109)data <- data.frame(A,B)head(data)

线性相关性分析

1)计算相关性

cor.test(A,B,data=data)df_cor<-lm(B~A,data=data)summary(df_cor)###根据结果可以知道株高与根毛数量之间的相关性系数为0.936734,且呈正相关,P值为2.72e-07<0.05###回归方程为B=0.76*A+58.96###拟合优度R^2=0.88,即拟合度很好###回归系数的置信区间为[0.82,0.98]


2)简单展示

#最简单展示——plot函数 plot(A, B, xlab = "株高", ylab = "根毛数量", pch = 16, frame = T)# 添加回归线abline(lm(B ~ A), col = "red")

3)使用ggplot2包进行绘制

#加载包library(ggplot2)library(ggprism)
p1<-ggplot(data,aes(x=A,y=B,color="orange"))+#指定数据、X轴、Y轴,颜色 theme_bw()+#主题设置 geom_point(size=3,shape=16)+#绘制点图并设定大小 theme(panel.grid = element_blank())+ labs(x="株高",y="根毛数量")+#x、y轴标题 geom_smooth(method='lm', se=FALSE, color='turquoise4')+#添加回归线 geom_text(aes(x=55,y=124,label="R^2=0.88\ny=0.75x+58.96"), color="red",family = "serif",fontface = "plain",size = 5)+ theme_prism(palette = "candy_bright", base_fontface = "plain", # 字体样式,可选 bold, plain, italic base_family = "serif", # 字体格式,可选 serif, sans, mono, Arial等 base_size = 16, # 图形的字体大小 base_line_size = 0.8, # 坐标轴的粗细 axis_text_angle = 45)+ # 可选值有 0,45,90,270 scale_fill_prism(palette = "candy_bright")+ theme(legend.position = 'none')#去除图例p1

回归诊断以剔除离群点

#回归诊断par(mfrow=c(2,2))plot(df_cor) #绘制回归诊断图# 图1是残差拟合,越没有趋势越好,有趋势说明可能需要二次项;# 图2是残差正态性检验,越落在虚线上越好(理想的残差服从0附件的正态分布,否则说明模型不够充分还有趋势没有提取出来);# 图3检验残差是否等方差;# 图4检验离群点,第6个样本点偏离较远,应该剔除掉重新做回归。

##根据图可以看出第10、13,14个点偏离较远,需要剔除重新进行分析data2<-data[c(-10,-13,-14),] cor.test(A,B,data=data2)df_cor2<-lm(B~A,data=data2)summary(df_cor2)##P值为6.284e-10<0.5,R^2=0.98,线性回归方程为y=0.73x+60.47

重新绘图

1)重新绘图

p2<-ggplot(data2,aes(x=A,y=B,color="orange"))+#指定数据、X轴、Y轴,颜色 theme_bw()+#主题设置 geom_point(size=3,shape=16)+#绘制点图并设定大小 theme(panel.grid = element_blank())+ labs(x="株高",y="根毛数量")+#x、y轴标题 geom_smooth(method='lm', se=FALSE, color='turquoise4')+#添加回归线 geom_text(aes(x=55,y=124,label="R^2=0.98\ny=0.73x+60.47"), color="red",family = "serif",fontface = "plain",size = 5)+ theme_prism(palette = "candy_bright", base_fontface = "plain", # 字体样式,可选 bold, plain, italic base_family = "serif", # 字体格式,可选 serif, sans, mono, Arial等 base_size = 16, # 图形的字体大小 base_line_size = 0.8, # 坐标轴的粗细 axis_text_angle = 45)+ # 可选值有 0,45,90,270 scale_fill_prism(palette = "candy_bright")+ theme(legend.position = 'none')#去除图例
p2

2)显示已经剔除的三个点

p2+geom_point(aes(x=69,y=104),shape=8,color="red",size=3)+ geom_point(aes(x=75,y=120),shape=8,color="red",size=3)+ geom_point(aes(x=68,y=116),shape=8,color="red",size=3)

参考:
1)https://blog.csdn.net/zhutele/article/details/115803242
2)https://zhuanlan.zhihu.com/p/31668592/

我就知道你“在看”


更多推荐

基于R语言的微生物群落组成多样性分析——CCA分析

文献检索网站知多少

R可视化——相关性计算及展示

电子课本及书籍下载网址汇总!

R可视化——ggplot2绘制柱状图

基于origin绘图软件的显著性计算及字母标记

基于R语言的微生物群落组成多样性分析——RDA分析

还在靠截图?Excel导出高清图片教程来了!

R可视化——气球图

origin如何绘制带字母标记的箱线图?

基于R语言如何实现偏最小二乘法判别分析(PLS-DA)?

生物绘图素材哪里找?这一个网站就够!
       

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存