用R语言生成指定品种与对照的一元回归直线(含置信区间)

在对品种的产量数据进行分析时,常用的、且比较简单的分析方法就是一元线性回归分析方法。我们可以用excel进行作图并生成回归曲线和方程,但无法绘制回归方程的置信区间。回归方程执行曲线可以让我们更直观看到品种在整个生态区不同环境条件下的产量稳定性。

我们通常以某一点所有参试品种产量的平均值作为该测试点的环境值(即x值,也是下面代码中展示的env),我们分析的品种和对照品种自身产量均值就是y(也就是下面代码中展示的yield),我们的品种和对照品种名称放在一列,成为group列。

R 复制代码
library(ggplot2)
library(broom)

#导入数据
data1<-read.csv("lm.csv")
# 查看数据
data1

ggplot(data1,aes(x=env,y=yield,color=group))+
  # 添加点图以查看原始数据
  geom_point()+
  # 添加回归线及置信区间,se=TRUE表示显示置信区间
  geom_smooth(method="lm", se=TRUE,aes(fill=hue),alpha=0.2)+
  # 自定义颜色
  scale_color_manual(values=c("VAR"="#FC4E07", "CK"="#00AFBB"))+  
  # 自定义填充颜色(置信区间)
  scale_fill_manual(values=c("VAR"="#FC4E07", "CK"="#00AFBB"))  


data2<-data1[data1$hue=="VAR",]
model2<-lm(yield ~ env,data=data2)
tidied_model <- tidy(model2)  # 获取模型参数的tidy格式
glanced_model <- glance(model2)  # 获取模型统计摘要的tidy格式
print(paste("y =", round(tidied_model$estimate[2], 4), "* x +", round(tidied_model$estimate[1], 4)))
print(paste("R^2 =", round(glanced_model$r.squared, 4)))

data3<-data1[data1$hue=="CK",]
model3<-lm(yield ~ env,data=data3)
tidied_model <- tidy(model3)  # 获取模型参数的tidy格式
glanced_model <- glance(model3)  # 获取模型统计摘要的tidy格式
print(paste("y =", round(tidied_model$estimate[2], 4), "* x +", round(tidied_model$estimate[1], 4)))
print(paste("R^2 =", round(glanced_model$r.squared, 4)))

运行结果如下:

相关推荐
ghie90907 分钟前
基于MATLAB GUI的伏安法测电阻实现方案
开发语言·matlab·电阻
Gao_xu_sheng12 分钟前
Inno Setup(专业安装/更新 EXE)
开发语言
吴声子夜歌1 小时前
Java数据结构与算法——基本数学问题
java·开发语言·windows
wanglei2007082 小时前
生产者消费者
开发语言·python
leo__5202 小时前
基于菲涅耳衍射积分的空心高斯光束传输数值模拟(MATLAB实现)
开发语言·matlab
昵称已被吞噬~‘(*@﹏@*)’~2 小时前
【RL+空战】学习记录03:基于JSBSim构造简易空空导弹模型,并结合python接口调用测试
开发语言·人工智能·python·学习·深度强化学习·jsbsim·空战
短剑重铸之日2 小时前
《SpringBoot4.0初识》第一篇:前瞻与思想
java·开发语言·后端·spring·springboot4.0
2501_941877982 小时前
从配置热更新到运行时自适应的互联网工程语法演进与多语言实践随笔分享
开发语言·前端·python
lsx2024062 小时前
Python 运算符详解
开发语言
程序炼丹师3 小时前
CMakeLists中 get_filename_component详解
开发语言