【问题标题】:Extracting individual growth constants using population growth curve model in R使用 R 中的人口增长曲线模型提取个体增长常数
【发布时间】:2022-02-09 23:54:14
【问题描述】:

我想直接从我们的增长模型中得出个人增长率,类似于这个OP 和这个OP

我正在使用一个数据集,其中包含大约 2000 个人的 age 和体重 (wt) 测量值。每个人都由一个唯一的id 号码表示。

可以在here 找到数据样本。以下是数据的样子:

          id   age    wt
        1615     6      15  
        3468     32     61  
        1615     27     50  
        1615     60     145    
        6071     109    209  
        6071     125    207  
       10645     56     170   
       10645     118    200

我已经开发了一个非线性增长曲线来模拟这个数据集的增长(在人口层面)。它看起来像这样:

wt~ A*atan(k*age - t0) + m

预测给定 age 的权重 (wt),并具有可修改的参数 At0m。我已使用nlme 回归拟合将此模型拟合到人口级别的数据集,其中我将个体id 指定为随机效应,并使用pdDiag 将每个参数指定为不相关。 (注意:看个人关卡时需要去掉随机效应。)

代码如下:

nlme.k = nlme(wt~ A*atan(k*age - t0) + m, 
data = df, 
fixed = A+k+t0+m~1, 
random = list(id = pdDiag(A+t0+k+m~1)), #cannot include when looking at the individual level
start = c(A = 99.31,k = 0.02667, t0 = 1.249, m = 103.8), #these values are what we are using at the population level # might need to be changed for individual models
na.action = na.omit,
control = nlmeControl(maxIter = 200, pnlsMaxIter = 10, msMaxIter = 100))

我有我们的人口水平增长模型 (nlme.k),但我想用它来导出/提取每个增长常数的个体值。

如何使用我的人口水平增长模型 (nlme.k) 为每个 id 提取个体增长常数? 请注意,我不需要它是使用 @987654341 的解决方案@,这只是我用于人口增长模型的模型。

任何建议将不胜感激!

【问题讨论】:

    标签: r derivative nlme


    【解决方案1】:

    我认为这是不可能的,因为随机效果是如何设计的。根据this post,效果大小(您的增长常数)是使用部分池估计的。这涉及使用来自其他组的数据点。因此,您无法估计每个组的效果大小(您的个人 ID)。 严格来说(参见here)随机效应根本不是模型的一部分,而是误差的一部分。

    但是,您可以一起估算所有组的 R2。如果您希望在个人级别上使用它(例如,id 1 的参数 estiamtes),那么只需在该特定个人的所有数据点上运行相同的模型。这为您提供了 n 个模型,具有 n 个个体的 n 个参数集。

    【讨论】:

    • 对,需要排除随机效应(我在问题中澄清了这一点)。
    • 为什么不将患者建模为虚拟编码的固定效应?例如y ~ x + is_patient1 + is_pantient_2 with is_patient1 = 1 and is_patient2=0
    猜你喜欢
    • 2016-11-23
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-26
    • 2015-03-02
    • 2021-04-12
    • 2020-07-21
    相关资源
    最近更新 更多