使用数据集的R代码估算参数

时间:2014-03-06 02:32:54

标签: r parameters dataset

假设我有一个数据集。有一些分类变量和一些数值变量。我想估算每个类别和其他类别的模型$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)

1 个答案:

答案 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