【发布时间】:2020-09-10 03:29:02
【问题描述】:
您好,我的代码中出现 x 和 y 长度不同的错误。 datasim 是一个大小为 1000 的模拟样本。请帮助我。
x <- datasim
loglik <- function(theta){
k<- theta[1]
lambda<- theta[2]
out <- sum(dweibull(x,shape = k, scale=lambda, log = TRUE) )
return(out)
}
theta<- c(0.5,1.5)
plot(theta, loglik(theta), type="l", lwd=3, main="logliklihood_Weibull, n=1000")
【问题讨论】:
-
为了使您的问题可重现并因此可回答,我们需要最少的自包含代码和数据,以便我们能够在我们的机器上重现您的问题,请遵循以下简单指南:@987654321 @.
-
在您显示的情况下,您的函数采用长度为 2 的向量并返回长度为 1 的向量,因为求和只为您提供一个值。因此,通过使用
plot(theta, loglik(theta), type="l", lwd=3, main="logliklihood_Weibull, n=1000"),您试图绘制长度为 2 (theta) 的 x 与长度为 1 (loglik(theta)) 的 y。 -
theta是一个长度为 2 的向量,因此最好在 xy 平面上绘制一个曲面的 3-D 图,其中 x 轴是形状参数,y 轴是Weibull 分布的尺度参数。这样,您可以轻松地观察 MLE。 -
@MartinGal 哦,谢谢你的提示。我有一个类似的例子,使用 optim() 来查找带有 loglik 的 2 参数 dsn 的 mles。所以我不知道尺寸差异。
标签: r statistics mle log-likelihood