R编程:使用varfun在glm族中指定方差函数

R编程:使用varfun在glm族中指定方差函数,r,glm,R,Glm,我想使用varfun在glm的准家族中指定我自己的方差函数,但是我找不到任何关于如何使用该函数的文档。有人知道如何使用这个函数吗?在设置时,quasi()只接受自己预定义的方差函数,即“mu(1-mu)”、“mu”、“mu^2”、“mu^3”和“常量”。如果要使用其中一个参数,只需将其指定为variance=参数的字符串 如果您想指定自己的方差函数:“准系列将接受文字字符串(或不带引号的名称/表达式)规范“常量”、“mu(1-mu)”、“mu”、“mu^2”和“mu^3”,一个长度为一个字符的向

我想使用varfun在glm的准家族中指定我自己的方差函数,但是我找不到任何关于如何使用该函数的文档。有人知道如何使用这个函数吗?

在设置时,
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(),您基本上可以创建任何您想要的“族”
family=
参数。实际上,创建一个新的家族并按预期工作超出了我的理解范围,但这就是你如何做到的。请注意,莱克托。

我认为你的所有4个舒利康都是当之无愧的