我正在对一些数据进行GLM拟合,采用准似然方法(family=quasi(...)
)。
我想要在方差规格化中使用一个变量p
,就像这样:
family = quasi(link=log, variance=mu^p)
然而,这种方法不起作用(它不再识别mu
)。
有没有办法让R在表达式评估之前插入p
的值,这样我就可以使用p
代替数字了?
以下是一个不起作用的示例:
set.seed(1)
x <- runif(100)
y <- x^2+2*x+sin(2*pi*x) + rnorm(100)
fitModel <- function(x,y, p) {
model <- glm(y~x, family=quasi(link=log, variance=mu^p))
return(model)
}
fitModel(x,y,2)
谢谢!
varfun
、validmu
、dev.resids
、initialize
和name
的列表(请参见?family
)。 - Rolandglm
的函数中使用variance = paste0("mu^", p)
。但是这会导致错误:'variance' "NA"无效:可能的值为"mu(1-mu)", "mu", "mu^2", "mu^3"和"constant" - 可能是因为此时p为NA。给它一个默认值似乎也没有帮助。有什么想法吗? - user2249626