Я хочу сделать регрессию отрицательного бинома вручную и определить функцию, которую можно использовать для оценки произвольного числа коэффициентов.У меня есть
Как мне получить матрицу бета-значений и p-значений, и мне не нужно записывать каждую бета-экспликацию.
Для пуассоновской регрессии мне это удалось, как показано в приведенном ниже коде:
daten<-warpbreaks
LogLike <- function(y,x, par) {
beta <- par
lambda <- exp(beta%*%t(x))
LL <- -sum(dpois(y, lambda, log = TRUE))
return(LL)
}
PoisMod<-function(formula, data){
form <- formula(formula)
model <- model.frame(formula, data = data)
x <- model.matrix(formula,data = data)
y <- model.response(model)
par <- rep(0,ncol(x))
erg <- list(optim(par=par,fn=LogLike,x=x,y=y)$par)
return(erg)
}
PoisMod(breaks~wool+tension, as.data.frame(daten))
glm(breaks~wool+tension, family = "poisson", data = as.data.frame(daten))
В случае отрицательного бинома, как написать эту часть
daten<-warpbreaks
LogLike <- function(y,x, par) {
beta <- par
lambda <- exp(beta%*%t(x))
LL <- -sum(dpois(y, lambda, log = TRUE))
return(LL)
}