Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么R中的3D曲线显示了sigma^2的清晰最大值,而不是mu?_R_3d_Curve_Mle_Natural Logarithm - Fatal编程技术网

为什么R中的3D曲线显示了sigma^2的清晰最大值,而不是mu?

为什么R中的3D曲线显示了sigma^2的清晰最大值,而不是mu?,r,3d,curve,mle,natural-logarithm,R,3d,Curve,Mle,Natural Logarithm,因此,我使用了rgl软件包并创建了自己的似然函数,以从正态分布输出样本的对数似然。我这样做真的只是为了学习如何自己编程,这样我就可以更好地理解可能性是如何工作的,以及MLE是如何工作的。不管怎样,我注意到了一些特别奇怪的事情,我想知道这里是否有人知道答案。当我绘制图形时,它是一个折叠的曲线形状,但我想我期望的是更多的锥形形状。基本上,我好奇的是为什么当曲线在这个轴上的σ^2值处达到峰值时,峰值两侧都有很好的下降,μ值保持大致相同?这就好像一旦sigma^2参数达到最佳水平,mu值之间的可能性差异

因此,我使用了rgl软件包并创建了自己的似然函数,以从正态分布输出样本的对数似然。我这样做真的只是为了学习如何自己编程,这样我就可以更好地理解可能性是如何工作的,以及MLE是如何工作的。不管怎样,我注意到了一些特别奇怪的事情,我想知道这里是否有人知道答案。当我绘制图形时,它是一个折叠的曲线形状,但我想我期望的是更多的锥形形状。基本上,我好奇的是为什么当曲线在这个轴上的σ^2值处达到峰值时,峰值两侧都有很好的下降,μ值保持大致相同?这就好像一旦sigma^2参数达到最佳水平,mu值之间的可能性差异就非常小。例如,当我检查sigma最大点保持恒定的可能性的方差时,它是11.5。相反,当我检查同一点上mu的方差时,方差是23402。因为我没有足够的声誉,所以我还不能发布图片,所以我只发布生成图形的R代码

#Define LL function
LL <- function(X, theta)
{
  mu <- theta[1]
  sigma2 <- theta[2]
  log.likelihood <- 0
  n <- length(X)
  for (i in 1:length(X))
  {
      log.likelihood <- log.likelihood - (((X[i]-mu)^2)/(2*sigma2)) - 

log(sqrt(2*pi*sigma2))
  }

  return(log.likelihood)
}

#Parameters
Mu <- 100
Sigma2 <- 50

#Sample
N <- 100
set.seed(1)
IQs <- rnorm(N, mean=Mu, sd=sqrt(Sigma2))

#Possible values to test
x <- posMu <- seq(80, 120, length.out=200)
y <- posSig <- seq(20, 60, length.out=200)
#x1 <- sort(x, decreasing=T)


#Produce LLs for plotting
LLlist <- NULL
for (m in 1:length(posMu)){
  LLs <- NULL
  for(s in 1:length(posSig)){
    posTheta <- cbind(posMu[m],posSig[s])
    LLs <- c(LLs, LL(IQs,posTheta)) 
  }
  LLlist <- cbind(LLlist,LLs, deparse.level=0)
}
z <- LLlist

#Find the approximate MLE 
mLL <- which(LLlist == max(LLlist), arr.ind=TRUE)
cbind(posMu[mLL[2]],posSig[mLL[1]],LLlist[mLL])

#Graph the LLs
library(rgl)
open3d()
plot3d(mean(x),mean(y),mean(z), xlab="Mu", ylab="Sigma2", zlab="log L", xlim=c(min(x),max(x)), ylim=c(min(y),max(y)), zlim=c(min(z),max(z)))
surface3d(x, y, z, color=rainbow(length(x)))

那么,我的代码错了吗?或者这就是LL曲线应该是什么样子?如果是这样,为什么sigma^2似乎显示出清晰的曲线和高度,而mu在最大值时几乎没有差异?提前谢谢

一般评论:请记住,给定分布的均值和方差是正交的,这意味着两者之间没有函数关系。考虑对- x,x的均值和σ。平均值始终为零,但随着x的大小增加,σ也随之增加。或者,数据集x,x,x,x,x有一个平均值x,但是sigma总是为零。对,这是否意味着我的代码有问题?这张图似乎暗示平均值的可能性取决于方差值,但反之亦然。