我想将下面的模型设置为仅考虑响应变量“Pres”的高25%,而不是整个数据集。我想xmin和xmax线需要改变吗?
aa2<-gam(Pres~s(Mud,bs="ps", k=15),family=Gamma(link=log),data=Antho)
xmin <- ceiling(min(Antho$Mud[Antho$Bin==1]))
xmax <- floor(max(Antho$Mud[Antho$Bin==1]))
Mudnew <- seq(from=xmin, to=xmax, by=0.1)
pred.dat <- data.frame(Mudnew)
names(pred.dat) <- "Mud"
pred.aa2 <- data.frame(predict.gam(aa2, pred.dat, se.fit=TRUE, type="response"))
pred.aa2.comb <- data.frame(pred.dat, pred.aa2)
names(pred.aa2.comb)
plot(fit ~ Mud, data=pred.aa2.comb, type="l", lwd=2, col=1, ylab="Density per 0.0132 m2", xlab="Mud content (%)")
感谢您的帮助
-
谢谢,但是我想做后者,那就是“明确的上四分位数”的模型......这是合情合理的吗?我正在使用mgcv fyi。
答案 0 :(得分:1)
取决于你的意思只有高25%?您是否希望在响应的四分位数中期望数据,或者您是否希望明确地对上四分位进行建模?
前者的一个选择是仅采取上限25%
take <- with(Antho, Pres >= quantile(Pres, probs = 0.75)
Antho2 <- Antho[take, ]
然后使用Antho2
进行建模。
您可能更喜欢的另一种方法是通过 quantreg 包中的rqss()
函数明确地对该分位数进行建模。我不认为它具有 mgcv 所做的相同范围的样条选项(假设您正在使用mgcv::gam()
?),但它的功能很好。
另一种选择是使用 gamlss 包和附加组件,尽管我的知识或套件包含较少。