gpt4 book ai didi

R:适合数据子集的 GAM

转载 作者:行者123 更新时间:2023-12-04 09:43:00 26 4
gpt4 key购买 nike

我使用 gam 拟合了广义加性模型来自 mgcv包裹。我有一个数据表,其中包含我的因变量 Y , 自变量 X , 其他自变量 Oth和一个两级因子 Fac .我想适合以下型号
Y ~ s(X) + Oth
但是附加的约束是 s(X)项仅适用于因子的两个水平之一,例如 Fac==1 .其他条款 Oth应该适合整个数据。

我尝试探索 s(X,by=Fac)但这会导致 Oth 的拟合偏差.换句话说,我想表达的信念是XY 有关仅当 Fac==1 , 否则建模 X 没有意义.

最佳答案

便宜的技巧:如果 Fac == 1 和 0 其他地方使用辅助变量 X。

library("mgcv")
library("ggplot2")


# simulate data

N <- 1e3

dat <- data.frame(covariate = runif(N),
predictor = runif(N),
group = factor(sample(0:1, N, TRUE)))

dat$outcome <- rnorm(N,
1 * dat$covariate +
ifelse(dat$group == 1,
.5 * dat$predictor +
1.5 * sin(dat$predictor * pi),
0), .1)

# some plots

ggplot(dat, aes(x = predictor, y = outcome,
col = group, group = group)) +
geom_point()

ggplot(dat, aes(x = covariate, y = outcome,
col = group, group = group)) +
geom_point()

# create auxiliary variable

dat$aux <- ifelse(dat$group == 1,
dat$predictor,
0)

# fit the data

fit1 <- gam(outcome ~ covariate + s(predictor, by = group),
data = dat)

fit2 <- gam(outcome ~ covariate + s(aux, by = group),
data = dat)

# compare fits

summary(fit1)

summary(fit2)

关于R:适合数据子集的 GAM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34135531/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com