0

我想将以下模型设置为仅考虑响应变量“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 仅供参考。

4

1 回答 1

1

取决于你所说的只有上层的 25% 是什么意思?您想要响应四分位数中数据的期望值,还是希望明确地对上四分位数建模?

前者的一种选择是只占上层的 25%

take <- with(Antho, Pres >= quantile(Pres, probs = 0.75)
Antho2 <- Antho[take, ]

然后使用模型Antho2代替。

您可能更喜欢的另一种方法是通过quantregrqss()中的函数显式建模该分位数。我不认为它具有与mgcv一样广泛的样条选项(假设您正在使用?),但它的功能很好。mgcv::gam()

另一种选择是使用gamlss包和附加组件,尽管我对那套包的了解较少。

于 2013-08-14T02:45:38.343 回答