我想创建一个可用于不同数据集的函数。这是我的功能(我把它作为源代码):
#Log-likelihood function
likfunc<-function(para,dat){
alpha<-para[1]
lambda<-para[2]
a<-log(para[1])+log(para[2])+(para[1]-1)*log(dat$z)
b<-para[2]*(dat$z)^para[1]
return((dat$d*a)+b)
}
然后我尝试运行以下代码(这是第一组数据):
library(maxLik)
set.seed(201)
u<-runif(20,min=0,max=1) #to simulate t
c<-rexp(20,rate=0.05)
t<-(-log(u)/0.5)^(1/2) #initial vale alpha=2,lambda=0.5
z<-pmin(t,c)
d<-as.numeric(c>t)
samp<-cbind(t,c,z,d)
data<-as.data.frame(samp)
mle<-maxLik(logLik=likfunc(para,data),start=c(alpha=2,lambda=0.5))
mle
但是R返回:likfunc(para,data)中的错误:找不到对象'para'
我在做模拟。以前我每次有新数据集时都会运行该函数。然后我得到一个建议,因为我的代码将使R工作更多,并且完成模拟需要很长时间。有人可以帮忙吗?谢谢。