P样条更平滑

P spline smoother

您好,我正在尝试找到 一个非参数回归平滑器 到对照组和治疗组之间的差异,以便确定食欲抑制剂随着时间的推移的有效性。然后我需要使用我的模型来估计治疗组和对照组在 t=0t=50.[=16= 时的差异]

我想使用 P 样条平滑器,但我没有足够的背景知识 这是我的数据:

t

0 1 3 7 8 10 14 15 17 21 22 24 28 29 31 35 36 38 42 43 45 49 50 52 56 57 59 63 64 70 73 77 80 84 87 91 94 98 105 

con

20.5 19.399 22.25 17.949 19.899 21.449 16.899 21.5 22.8 24.699 26.2 28.5 24.35 24.399 26.6 26.2 26.649 29.25 27.55 29.6 24.899 27.6 28.1 27.85 26.899 27.8 30.25 27.6 27.449 27.199 27.8 28.199 28 27.3 27.899 28.699 27.6 28.6 27.5  

trt

21.3 16.35 19.25 16.6 14.75 18.149 14.649 16.7 15.05 15.5 13.949 16.949 15.6 14.699 14.15 14.899 12.449 14.85 16.75 14.3 16 16.85 15.65 17.149 18.05 15.699 18.25 18.149 16.149 16.899 18.95 22 23.6 23.75 27.149 28.449 25.85 29.7  29.449

其中:

t - 自实验开始以来的天数。
con - 对照组食物摄入量的中位数。
trt - 治疗组的食物摄入量中位数。

有人可以帮忙吗?

只是给你一个开始。 mgcv 包实现了各种回归样条基础,包括 P 样条(具有差异惩罚的惩罚 B 样条)。

首先,您需要设置数据:

dat <- data.frame(time = rep(t, 2), y = c(con, trt), 
                  grp = gl(2, 39, labels = c("con", "trt")))

然后调用gam进行非参数回归:

library(mgcv)  # no need to install; it comes with R
fit <- gam(y ~ s(time, bs = 'ps', by = grp) + grp, data = dat)

阅读 以了解交互规范。 bs = 'ps' 设置 P 样条基础。默认情况下,选择 10 个(均匀分布的内部)结。如果需要,您可以更改 k

有关 mgcv 中 P 样条的更多信息,请阅读