当前位置: 首页 > news >正文

从0开始学习R语言--Day62--RE插补

对于会有多次测量值的数据,用普通的回归去插补,往往会忽略掉数据个体本身的特点,毕竟多次的测量值其实就代表了数据个体的不稳定性,存在额外的干扰。

而RE的插补原理是结合个体本身的随机效应和群体的固体效应再加上截距进行插补的,比如学生A参加了月考,期中考,但是缺席了期末考,如果要插补期末考的成绩,除了班级的教学质量之外,学生个体的学习能力也很关键,可能存在学生本身是学霸,成很稳定,也可能存在学生是中游水平,期中考试超常发挥,需要综合考量。

以下是一个例子:

library(nlme)
library(ggplot2)
# 生成模拟数据:10个患者,每个患者测量3-5次
set.seed(123)n_patients <- 10
time_points <- 5# 创建数据框
data <- data.frame(patient_id = rep(1:n_patients, each = time_points),time = rep(1:time_points, times = n_patients),treatment = rep(rbinom(n_patients, 1, 0.5), each = time_points)  # 治疗组(0/1)
)# 生成因变量y(含随机效应和噪声)
data$y <- 2 * data$treatment + rep(rnorm(n_patients, sd = 1.5), each = time_points) + rnorm(nrow(data), sd = 1)# 人为制造缺失值(MAR:缺失概率与时间相关)
data$y[data$time > 3 & runif(nrow(data)) > 0.7] <- NA
head(data, 15)# 拟合线性混合模型(LMM)
model <- lme(y ~ treatment + time, random = ~ 1 | patient_id, data = data, na.action = na.exclude)# 预测缺失值(插补)
data$y_imputed <- ifelse(is.na(data$y), predict(model, newdata = data), data$y)# 查看插补结果
head(data[is.na(data$y), c("patient_id", "time", "y", "y_imputed")], 10)ggplot(data, aes(x = time, y = y_imputed, group = patient_id, color = factor(treatment))) +geom_line(alpha = 0.6) +geom_point(aes(y = y), size = 2, na.rm = TRUE) +  # 原始观测点(含缺失)labs(title = "RE插补效果(红色点为原始观测值)", x = "时间", y = "观测值", color = "治疗组") +theme_minimal()

输出:

从图中可以看到,尽管RE能考虑随机效应加固体效应,但是如果样本本身存在离散值或者波动比较大的话,那么不管用什么方法去插补效果都比较差。

http://www.dtcms.com/a/305751.html

相关文章:

  • STL学习(?、常用的算数算法和集合算法)
  • 跳跃表可视化深度解析:动态演示数据结构核心原理
  • 数据结构第3问:什么是线性表?
  • 数据结构-Set集合(一)Set集合介绍、优缺点
  • 基于 Rust 和土木工程、设备故障诊断、混凝土养护、GPS追踪、供应链物流跟踪系统、地下水监测等领域的实例
  • CouchDB 从入门到精通:构建高效的分布式文档数据库
  • cpp实现音频重采样8k->16k及16k->8k
  • 2025年华为HCIA-AI认证是否值得考?还是直接冲击HCIP?
  • c++函数返回值完整总结
  • GaussDB 数据库架构师(十二) 数据库对象修改审计设置
  • (RedmiBook)上禁用触摸板或自带键盘
  • 【LangGraph技术深度解析】构建下一代AI工作流的革命性框架
  • 数据赋能(358)——数据分析——可解释性原则
  • ZKMall商城开源本地部署指南
  • 【Rust多进程】征服CPU的艺术:Rust多进程实战指南
  • 2419. 按位与最大的最长子数组
  • web服务器nginx
  • 新零售“实—虚—合”逻辑下的技术赋能与模式革新:基于开源AI大模型、AI智能名片与S2B2C商城小程序源码的研究
  • 标准七层网络协议和TCP/IP四层协议的区别
  • uni-app webview 的message无法触发的解决方案
  • 在 Elasticsearch 8.19 和 9.1 中引入更强大、更具弹性和可观测性的 ES|QL
  • jenkins连接docker失败【还是没解决】
  • 关于MyBatis 的懒加载(Lazy Loading)机制
  • Hutool 的 WordTree(敏感词检测)
  • 阿里云AI代码助手通义灵码开发指导
  • Javaweb————什么是OPTIONS预检请求
  • 2025年6月数据挖掘顶刊TKDE研究热点有哪些?
  • 磁悬浮技术原理
  • 自动化与配置管理工具 ——Ansible
  • spark入门-helloword