来自具有样条随机效应的线性混合自然样条模型的峰值速度下的受试者特定年龄

问题描述

我正在使用带有年龄的自然样条函数的线性混合效应模型来描述结果y(以克为单位测量)随时间(age 以年为单位)的轨迹个人。我的模型包括样条的随机效应(比固定效应样条具有更少的自由度)。

我想从这个模型中估计峰值速度下的特定主题(特定人)年龄。

A previous thread 描述了当模型包含二次随机效应年龄项时,如何在峰值速度下估计特定于受试者的年龄。

下面的代码提供了示例数据集,并显示了模型的拟合方式、平均轨迹的绘制方式以及平均速度曲线和峰值速度下的平均年龄的计算方式。

我如何从这个模型中估计每个人在峰值速度下的年龄?

# LOAD DATASET
library(RCurl)
dat <- read.csv(("https://raw.githubusercontent.com/aelhak/data/main/data.csv"))

# FIT MODEL
library(nlme)
library(splines)
model <- lme( # linear mixed-effects model
  y ~ ns(age,df = 7),# FE: natural spline function for age with 6 knots
  random = ~ ns(age,df = 3) | id,# RE: natural spline function for age with 2 knot
  method = "ML",data = dat)

# PLOT MEAN FITTED TRAJECTORY CURVE
pred <- data.frame(age = seq(min(dat$age),max(dat$age),length = 100))
pred$pred <- predict(model,pred,level = 0)

library(tidyverse)
ggplot(data = pred,aes(x = age,y = pred)) + geom_line()

Plot of mean trajectory

# PLOT MEAN VELociTY CURVE
library(SplinesUtils)
spl_population <- RegSplineAsPiecepoly(model,"ns(age,df = 7)")
plot(spl_population,deriv = 1)

Plot of mean velocity curve

# ESTIMATE MEAN AGE AT PEAK VELociTY AND PEAK VELociTY
(apv_mean <- solve(spl_population,b = 0,deriv = 2)) 
(pv_mean <- predict(spl_population,apv_mean,deriv = 1))
(apv_pv_mean <- as.data.frame(cbind(apv_mean,pv_mean)))
(apv_pv_mean <- apv_pv_mean %>% top_n(1,pv_mean))

# apv_mean = 14.09897 years
# pv_mean = 317.1267 grams

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)