當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。