龙空技术网

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

科研那点事儿 138

前言:

现在看官们对“lmse算法推导”大致比较珍视,小伙伴们都想要学习一些“lmse算法推导”的相关文章。那么小编也在网摘上汇集了一些关于“lmse算法推导””的相关内容,希望我们能喜欢,看官们快快来了解一下吧!

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

加载数据

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)

2)

标签: #lmse算法推导