假设我有一个数据集。有一些分类变量和一些数值变量。我想估算每个类别和其他类别的模型$y=exp(X'b)$
的参数。我试图在 R 代码中执行此操作。但是有一些错误。
sex <- c("F","M","F","M","F")
age <- c(20,30,23,32,25)
dat <- data.frame(sex,age)
myfun <- function(par, data){
xx <- data
func <- exp(par[1]*xx$age+par[2]*factor(xx$sex))
return(-func)
}
optim(myfun, par=c(0.1,0.4), data=dat)
答案 0 :(得分:0)
也许这样的事情?这将进行最大似然估计。你得到错误的原因是因为optim()不适用于分类变量,你需要采用对数似然函数的负和(对于MLE)。
sex <- c("F","M","F","M","F")
age <- c(20,30,23,32,25)
dat <- data.frame(sex,age)
myfun <- function(par, x1,x2){
-sum(log(exp(par[1]*x1+par[2]*x2)))
}
optim(myfun, par=c(0.1,0.4), x1=dat$age,x2=as.numeric(dat$sex))
$par
[1] 21.916058 4.234422