我想使用varfun在glm的准系列中指定我自己的方差函数,但是我找不到任何关于如何使用该函数的文档。有没有人知道如何使用这个功能?
答案 0 :(得分:2)
在设置时,quasi()
只采用自己的预定义方差函数,即“mu(1-mu)”,“mu”,“mu ^ 2”,“mu ^ 3”和“不变”。如果你想使用其中一个,你只需要将它指定为variance =
参数的字符串。
如果要指定自己的方差函数:“准家族将接受文字字符串(或未加引号作为名称/表达式)规范”常量“,”mu(1-mu)“,”mu “,”mu ^ 2“和”mu ^ 3“,长度为一的字符向量,其中包含其中一个值,或包含组件varfun,validmu,dev.resids,initialize和name 的列表。 “
这是来自帮助文件!我以前怎么想念?无论如何,查看quasi
函数本身以查看它如何为其预设的方差函数指定每个组件可能仍然有用。
如果要指定自己创建的方差函数,则需要查看 quasi()
函数返回的内容:
structure(list(family = "quasi", link = linktemp, linkfun = stats$linkfun,
linkinv = stats$linkinv, variance = varfun, dev.resids = dev.resids,
aic = aic, mu.eta = stats$mu.eta, initialize = initialize,
validmu = validmu, valideta = stats$valideta, varfun = variance_nm),
class = "family")
如果在控制台中键入 quasi
(没有括号),则可以看到该函数如何创建此结构。您可以通过修改此结构并将其传递给glm()
的{{1}}参数,基本上创建您想要的“家庭”。实际上创建一个按照需要工作的新家庭是我的深度,但这就是你怎么做的。警告lector。