R语言绘图:实现数据点的线性拟合,进行显著性分析(R-squared、p-value)、添加公式到图像

最近在做关于数据点线性拟合相关的研究,感觉R语言在这方面很方便,而且生成的图片很漂亮,所以在这里和大家分享一下代码。
在这里插入图片描述
这是别人所绘制的拟合图像,很漂亮,自己也用iris鸢尾花数据集进行一个线性拟合看看:
拟合线性模型最基本的函数就是lm(),格式为:myfit<-lm(formula,data)
formula指要拟合的模型形式,data是一个数据框,包含了用于拟合模型的数据
formula形式如下: Y~X1+X2+……+Xk (~左边为响应变量,右边为各个预测变量,预测变量之间用+符号分隔)

library(rio)
library(ggplot2)
library(ggsignif)
library(reshape2)
library(ggpubr)
library(readxl)
library(tidyverse)
data("iris")

model.lm <- lm(iris$Sepal.Length ~ iris$Petal.Length, data = iris)
summary(model.lm)

l <- list(a = format(coef(model.lm)[1], digits = 4),
          b = format(abs(coef(model.lm)[2]), digits = 4),
          r2 = format(summary(model.lm)$r.squared, digits = 4),
          p = format(summary(model.lm)$coefficients[2,4], digits = 4))
l

eq <- substitute(italic(y) == 4.307~italic(x)+0.4089~","~italic(R)^2~"="~r2~","~italic(P)~"="~p, l)

ggplot(iris, aes(x = Petal.Length,y = Sepal.Length))+
  geom_smooth(method = "lm", se=FALSE, color="black", formula = y ~ x) +
  geom_point(color = "blue",size=3,shape=21)+
  theme_bw()+
  theme(text=element_text(size=12,  family="serif"))+
  theme(panel.grid = element_blank())+
  geom_text(aes(x = 5.5, y = 4.3, label = as.character(as.expression(eq))), parse = TRUE)

显著性分析结果:
在这里插入图片描述

线性拟合的结果:
在这里插入图片描述

结果展示:
在这里插入图片描述
希望对大家有帮助!

猜你喜欢

转载自blog.csdn.net/amyniez/article/details/129229179