【发布时间】:2017-07-25 12:45:24
【问题描述】:
我编写了这些 R 代码用于模拟和估计,如下所示。
library(numDeriv)
library(Matrix)
library(LambertW)
alpha=3.5
beta=2.0
theta=0.5
lambda=4.0
n=50
#Generate a random variable from uniform distribution
u<-0
u=seq(0,0.99,0.01)
for (q in 1:n)
{
x[q]<- (lambda/beta)*
W((((beta/lambda^2)*log(1-theta*u[q]/(1-u[q]))*
exp(beta/lambda)))^(1/alpha),branch = 0)
}
BXIIWG_LL <- function(par){
-sum(log(par[1]*par[2]*x^(par[2]-1)*(1+x)+
par[3]*par[2]*x^(par[2]-1))*(1-par[4])*(1+x^par[2])^(-par[3]-1)*
exp(-par[1]*x^par[2])/(1-par[4]
(1+x^par[2])^(-par[3])*exp(-par[1]*x^par[2]))^(2))
#Maximum likelihood estimation
mle.result <- nlminb(c(alpha,beta,theta,lambda),
BXIIWG_LL,lower=0,upper=Inf)
我得到的结果如下:
(1) 错误:找不到对象“mle.result”。
(2) 警告:在 W((((beta/lambda^2) * log(1 - theta * u[q]/(1 - u[q])) 中:(((beta/lambda^2 ) * log(1 - theta * u[q]/(1 - u[q])) * exp(beta/lambda)))^(1/alpha) 是 NA 或 NaN。为这些条目返回“NA”。
我该如何解决这些问题?
【问题讨论】:
-
当我运行你的代码时,我在得到
Error: object 'x' not found之前到达for循环。请编辑您的代码以包含x的定义...
标签: r