当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R ocat GAM 有序分类族


R语言 ocat 位于 mgcv 包(package)。

说明

系列与 gambam 一起使用,实现有序分类数据的回归。线性预测器提供遵循逻辑分布的潜在变量的预期值。该潜在变量位于某些切点之间的概率提供了有序分类变量属于相应类别的概率。沿着模型平滑参数估计切点(使用相同的标准)。观察到的类别被编码为 1, 2, 3, ... 直至类别数。

用法

ocat(theta=NULL,link="identity",R=NULL)

参数

theta

割点参数向量(维度R-2)。如果提供且全部为正,则视为切割点增量(第一个切割点固定为 -1)。如果有任何负数,则将绝对值作为分割点增量的起始值。

link

链接函数:目前仅允许"identity"(可能永远)。

R

类别的数量。

细节

这种累积阈值模型只能识别到截距或切点之一。 ocat 没有删除截距,而是简单地将第一个截点设置为 -1。使用 predict.gamtype="response" 来获取每个类别的预测概率。

extended.family 的对象。

例子

library(mgcv)
## Simulate some ordered categorical data...
set.seed(3);n<-400
dat <- gamSim(1,n=n)
dat$f <- dat$f - mean(dat$f)

alpha <- c(-Inf,-1,0,5,Inf)
R <- length(alpha)-1
y <- dat$f
u <- runif(n)
u <- dat$f + log(u/(1-u)) 
for (i in 1:R) {
  y[u > alpha[i]&u <= alpha[i+1]] <- i
}
dat$y <- y

## plot the data...
par(mfrow=c(2,2))
with(dat,plot(x0,y));with(dat,plot(x1,y))
with(dat,plot(x2,y));with(dat,plot(x3,y))

## fit ocat model to data...
b <- gam(y~s(x0)+s(x1)+s(x2)+s(x3),family=ocat(R=R),data=dat)
b
plot(b,pages=1)
gam.check(b)
summary(b)
b$family$getTheta(TRUE) ## the estimated cut points

## predict probabilities of being in each category
predict(b,dat[1:2,],type="response",se=TRUE)

作者

Simon N. Wood simon.wood@r-project.org

参考

Wood, S.N., N. Pya and B. Saefken (2016), Smoothing parameter and model selection for general smooth models. Journal of the American Statistical Association 111, 1548-1575 doi:10.1080/01621459.2016.1180986

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 GAM ordered categorical family。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。