2017-04-10 309 views
1

您好我试图找到一个非参数回归更平滑对控制和治疗组之间的差异,以确定随着时间的推移食欲抑制剂的有效性。那么我需要使用我的模型来估计治疗组和对照组之间的差异:t = 0t = 50P样条平滑

我想用P-样条平滑,但我没有关于它的 足够的背景这是我的数据:

牛逼

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 - 治疗组的中位食量。

任何人都可以帮忙吗?

回答

1

只有给你一个开始。 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) 

mgcv: how to specify interaction between smooth and factor?交互的规范。 bs = 'ps'设置P样条基础。默认情况下,选择10个(均匀间隔的内部)结。如果需要,您可以更改k

更多关于P样条在mgcv,阅读mgcv: how to extract knots, basis, coefficients and predictions for P-splines in adaptive smooth?

+0

是的,所以我把我的dat改为dat = data.frame(time = rep(C8 $ t,2),y = c(C8 $ con,C8 $ trt),grp = gl(2,39, = c(“con”,“trt”))) –

+0

是的,我得到了这个高R平方值,我正在读你建议我做的p-样条的链接。 –