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


R family 模型的族對象


R語言 family 位於 stats 包(package)。

說明

係列對象提供了一種方便的方法來指定 glm 等函數所使用的模型的詳細信息。有關如何進行此類模型擬合的詳細信息,請參閱 glm 的文檔。

用法

family(object, ...)

binomial(link = "logit")
gaussian(link = "identity")
Gamma(link = "inverse")
inverse.gaussian(link = "1/mu^2")
poisson(link = "log")
quasi(link = "identity", variance = "constant")
quasibinomial(link = "logit")
quasipoisson(link = "log")

參數

link

模型鏈接函數的規範。這可以是名稱/表達式、文字字符串、長度為 1 的字符向量或 "link-glm" 類的對象(例如由 make.link 生成),前提是未通過接下來給出的標準名稱之一指定它。

gaussian家人接受鏈接(作為名稱)identity,loginverse;這binomial家庭鏈接logit,probit,cauchit,(分別對應邏輯分布、正態分布和柯西分布函數)logcloglog(補充log-log);這Gamma家庭鏈接inverse,identitylog;這poisson家庭鏈接log,identity, 和sqrt;和inverse.gaussian家庭鏈接1/mu^2,inverse,identitylog.

quasi 係列接受鏈接 logitprobitcloglogidentityinverselog1/mu^2sqrt 以及函數power 可用於創建電源鏈接函數。

variance

對於除 quasi 之外的所有係列,方差函數由係列確定。 quasi 係列將接受文字字符串(或不帶引號的名稱/表達式)規範 "constant""mu(1-mu)""mu""mu^2""mu^3" ,一個長度為 1 的字符向量,取以下值之一這些值,或包含組件 varfunvalidmudev.residsinitializename 的列表。

object

函數 family 訪問存儲在建模函數創建的對象中的 family 對象(例如 glm )。

...

進一步的參數傳遞給方法。

細節

family 是一個通用函數,具有類 "glm""lm" 的方法(後者返回 gaussian() )。

對於 binomialquasibinomial 係列,可以通過以下三種方式之一指定響應:

  1. 作為因子:‘success’ 被解釋為不具有第一級別的因子(因此通常具有第二級別)。

  2. 作為值介於 01 之間的數值向量,解釋為成功案例的比例(案例總數由 weights 給出)。

  3. 作為一個兩列整數矩陣:第一列給出成功的次數,第二列給出失敗的次數。

quasibinomialquasipoisson 係列與 binomialpoisson 係列的不同之處僅在於色散參數不固定為 1,因此它們可以模擬過度色散。對於二項式情況,請參閱McCullagh 和 Nelder(1989 年,第 124-8 頁)。盡管它們表明(在某些限製下)存在一個模型,其方差與 quasi-binomial 模型中的均值成比例,但請注意,glm 不會計算該模型中的 maximum-likelihood 估計值。 S 的行為更接近準變體。

"family" 類的對象(具有簡潔的打印方法)。這是一個包含元素的列表

family

性格:姓氏。

link

字符:鏈接名稱。

linkfun

函數:鏈接。

linkinv

function:鏈接函數的反函數。

variance

function:方差作為均值的函數。

dev.resids

函數將每個觀測值的偏差作為 (y, mu, wt) 的函數,由 residuals 方法在計算偏差殘差時使用。

aic

函數給出 AIC 值(如果適用)(但對於準係列為 NA)。更準確地說,此函數返回 ,其中 是對數似然, 是估計的尺度參數的數量。請注意,位置參數的懲罰項(通常是 “regression coefficients”)在其他地方添加,例如在 glm.fit()AIC() 中,請參閱 glm 中的 AIC 示例。有關色散參數的假設,請參閱logLik

mu.eta

函數:inverse-link 函數相對於線性預測器的導數。如果 inverse-link 函數是 ,其中 是線性預測變量的值,則此函數返回

initialize

表達。這需要設置該係列所需的任何數據對象以及n(二項式係列中的AIC所需)和mustart(請參閱glm)。

validmu

邏輯函數。如果均值向量 mu 位於 variance 的域內,則返回 TRUE

valideta

邏輯函數。如果線性預測變量 eta 位於 linkinv 的域內,則返回 TRUE

simulate

(可選)函數 simulate(object, nsim)simulate"lm" 方法調用。它通常會返回一個包含 nsim 列和每個擬合值一行的矩陣,但它也可以返回長度為 nsim 的列表。顯然,“準”家庭將缺少這一點。

dispersion

(可選,因為R版本 4.3.0) numeric:色散參數的值(如果固定),或NA_real_如果免費的話。

注意

linkvariance 參數對於向後兼容性具有相當尷尬的語義。推薦的方法是將它們作為帶引號的字符串提供,但也可以不帶引號提供它們(作為名稱或表達式)。此外,它們可以作為長度為一的字符向量提供,給出選項之一的名稱,或者作為列表(對於 link ,屬於 "link-glm" 類)。這些限製僅適用於以名稱形式給出的鏈接:當以字符串形式給出時,接受 make.link 已知的所有鏈接。

這可能是不明確的:提供 link = logit 可能意味著鏈接的未加引號的名稱或對象 logit 的值。如果可能的話,它被解釋為允許的鏈接的名稱,然後解釋為對象。 (您可以通過 logit[1] 強製解釋始終為對象的值。)

例子

require(utils) # for str

nf <- gaussian()  # Normal family
nf
str(nf)

gf <- Gamma()
gf
str(gf)
gf$linkinv
gf$variance(-3:4) #- == (.)^2

## Binomial with default 'logit' link:  Check some properties visually:
bi <- binomial()
et <- seq(-10,10, by=1/8)
plot(et, bi$mu.eta(et), type="l")
## show that mu.eta() is derivative of linkinv() :
lines((et[-1]+et[-length(et)])/2, col=adjustcolor("red", 1/4),
      diff(bi$linkinv(et))/diff(et), type="l", lwd=4)
## which here is the logistic density:
lines(et, dlogis(et), lwd=3, col=adjustcolor("blue", 1/4))
stopifnot(exprs = {
  all.equal(bi$ mu.eta(et), dlogis(et))
  all.equal(bi$linkinv(et), plogis(et) -> m)
  all.equal(bi$linkfun(m ), qlogis(m))    #  logit(.) == qlogis(.) !
})

## Data from example(glm) :
d.AD <- data.frame(treatment = gl(3,3),
                   outcome   = gl(3,1,9),
                   counts    = c(18,17,15, 20,10,20, 25,13,12))
glm.D93 <- glm(counts ~ outcome + treatment, d.AD, family = poisson())
## Quasipoisson: compare with above / example(glm) :
glm.qD93 <- glm(counts ~ outcome + treatment, d.AD, family = quasipoisson())

glm.qD93
anova  (glm.qD93, test = "F")
summary(glm.qD93)
## for Poisson results (same as from 'glm.D93' !) use
anova  (glm.qD93, dispersion = 1, test = "Chisq")
summary(glm.qD93, dispersion = 1)



## Example of user-specified link, a logit model for p^days
## See Shaffer, T.  2004. Auk 121(2): 526-540.
logexp <- function(days = 1)
{
    linkfun <- function(mu) qlogis(mu^(1/days))
    linkinv <- function(eta) plogis(eta)^days
    mu.eta  <- function(eta) days * plogis(eta)^(days-1) *
                  binomial()$mu.eta(eta)
    valideta <- function(eta) TRUE
    link <- paste0("logexp(", days, ")")
    structure(list(linkfun = linkfun, linkinv = linkinv,
                   mu.eta = mu.eta, valideta = valideta, name = link),
              class = "link-glm")
}
(bil3 <- binomial(logexp(3)))

## in practice this would be used with a vector of 'days', in
## which case use an offset of 0 in the corresponding formula
## to get the null deviance right.

## Binomial with identity link: often not a good idea, as both
## computationally and conceptually difficult:
binomial(link = "identity")  ## is exactly the same as
binomial(link = make.link("identity"))



## tests of quasi
x <- rnorm(100)
y <- rpois(100, exp(1+x))
glm(y ~ x, family = quasi(variance = "mu", link = "log"))
# which is the same as
glm(y ~ x, family = poisson)
glm(y ~ x, family = quasi(variance = "mu^2", link = "log"))
## Not run: glm(y ~ x, family = quasi(variance = "mu^3", link = "log")) # fails
y <- rbinom(100, 1, plogis(x))
# need to set a starting value for the next fit
glm(y ~ x, family = quasi(variance = "mu(1-mu)", link = "logit"), start = c(0,1))

作者

The design was inspired by S functions of the same names described in Hastie & Pregibon (1992) (except quasibinomial and quasipoisson).

參考

McCullagh P. and Nelder, J. A. (1989) Generalized Linear Models. London: Chapman and Hall.

Dobson, A. J. (1983) An Introduction to Statistical Modelling. London: Chapman and Hall.

Cox, D. R. and Snell, E. J. (1981). Applied Statistics; Principles and Examples. London: Chapman and Hall.

Hastie, T. J. and Pregibon, D. (1992) Generalized linear models. Chapter 6 of Statistical Models in S eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole.

也可以看看

glmpowermake.link

對於二項式係數,choose ;二項式和負二項式分布 BinomialNegBinomial

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Family Objects for Models。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。