我有一些高维重复测量数据,我对拟合随机森林模型感兴趣,以研究此类模型的适用性和预测效用。具体来说,我正在尝试实现LongituRF包中的方法。此处详细介绍了此包背后的方法:
Capitaine, L. 等。用于高维纵向数据的随机森林。Stat Methods Med Res (2020) doi:10.1177/0962280220946080。
方便地,作者提供了一些有用的数据生成功能进行测试。所以我们有
install.packages("LongituRF")
library(LongituRF)
Run Code Online (Sandbox Code Playgroud)
让我们生成一些数据,DataLongGenerator()其中 n=样本大小,p=预测变量的数量和 G=具有时间行为的预测变量的数量。
my_data <- DataLongGenerator(n=50,p=6,G=6)
Run Code Online (Sandbox Code Playgroud)
my_data是您期望的 Y(响应向量)、X(固定效应预测变量矩阵)、Z(随机效应预测变量矩阵)、id(样本标识符向量)和时间(时间测量向量)的列表。简单地拟合随机森林模型
model <- REEMforest(X=my_data$X,Y=my_data$Y,Z=my_data$Z,time=my_data$time,
id=my_data$id,sto="BM",mtry=2)
Run Code Online (Sandbox Code Playgroud)
这里大约需要 50 秒,所以请耐心等待
到目前为止,一切都很好。现在我清楚这里的所有参数,除了Z. 什么 Z 时候我要在我的实际数据上拟合这个模型?
看着my_data$Z。
dim(my_data$Z)
[1] 471 2
head(my_data$Z)
[,1] [,2]
[1,] 1 1.1128914
[2,] 1 1.0349287
[3,] 1 0.7308948
[4,] 1 1.0976203
[5,] 1 1.3739856
[6,] 1 0.6840415
Run Code Online (Sandbox Code Playgroud)
每行看起来像一个截距项(即 1)和从均匀分布中得出的值runif()。
的文档REEMforest()表明“Z [矩阵]:包含随机效应的 q 预测变量的 Nxq 矩阵。” 使用实际数据时如何指定这个矩阵?
我的理解是,传统Z是简单地一热(二进制)组变量(例如编码 …
我有一个数据集,其中包含 30 个人的观察结果,每个人都做了 20 次实验。假设我的数据如下所示:
ID trial reaction response prop_1 prop_2
"s1" 1 2.12 0 0.52 0.48
"s1" 2 1.32 1 0.12 0.88
"s1" 3 NA 1 NA NA
"s2" 1 2.33 1 0.65 0.35
"s2" 2 2.56 0 0.43 0.57
"s2" 3 NA 1 NA NA
Run Code Online (Sandbox Code Playgroud)
我想使用这些变量对参与者进行聚类。我研究了 traj、latrend 和 kml 包,但它们都只使用一个变量来对数据进行聚类。如何使用多个变量对这样的纵向数据进行聚类?
任何简单的帮助或指导将不胜感激。
我拥有多组鸟类超过 10 天的观察行为数据。我想调查某些行为是否存在时间模式(例如,配偶竞争是否会随着时间的推移而增加?)并且我被告知必须考虑数据的自相关性,因为行为不可能每天都是独立的。
不过我想知道两件事:
由于我对 y 之间的差异不感兴趣,而是对 y 随天变化的趋势感兴趣,所以我还需要校正自相关吗?
如果是,我如何控制自相关,以便只留下信号(当然还有噪声)?
对于第二个问题,请记住,我将使用 R 中的混合模型来分析时间对行为的影响(因为存在伪复制等随机效应),但我还没有找到任何纠正自相关的直接方法对响应进行建模时的数据。
在这篇文章中:https://www.nature.com/articles/s41591-022-01744-z.epdf 我注意到一个有趣的情节:
在 R 中是否有一种简单的方法可以做到这一点?
编辑:我知道有类似的问题,但没有涉及标记改进/恶化情况的颜色编码方案。
longitudinal ×4
r ×4
mixed-models ×2
ggplot2 ×1
plot ×1
regression ×1
temporal ×1
time-series ×1