У меня есть функция правдоподобия, которая входит в качестве аргумента в функцию maxLik
функции пакета maxLik. Например:Создание формулы (синтаксиса) в R для пакета
library(maxLik)
likFun <- function(param, x, y, h) {
dep <- as.matrix(x[,y])
indep <- as.matrix(x[,h])
indep <- as.matrix(cbind(cons=1, indep))
k <- dim(indep)[2]
beta <- as.matrix(param[1:k])
xbeta <- crossprod(t(indep), beta)
sig <- param[k+1]
res <- (dep-xbeta)/sig
sum( (-(1/2)*log(2*pi)) - ((1/2)*log((sig)^2)) - ((res^2)/2) )
}
model <- maxLik(likFun, start=c(0,0,0,1), grad=NULL, hess=NULL, x=mtcars,
y="mpg", h=c("cyl", "hp"))
summary(model)
В принципе, вышеуказанная функция правдоподобия использует максимальную вероятность для модели с множественной регрессией. Мой вопрос заключается в том, как создать formula
в R (для пакета), например, в lm
, чтобы пользователь мог ввести зависимую переменную и независимые переменные и данные. Я проверил model.matrix
, но я не уверен, является ли он тем, кого я должен искать. Любое предложение в этом отношении будет высоко оценено.
Не ясно мне. Ваша функция, по-видимому, принимает в качестве аргументов независимые и зависимые переменные. Где нужна «формула»? –
@ Carl: Я пытаюсь развить это (не совсем это) в виде пакета. Поэтому я не могу использовать эту версию. – Metrics
Вы хотите использовать что-то вроде 'mpg ~ cyl + hp' вместо' y = "mpg", h = c ("cyl", "hp") 'в аргументах? –