对数正态分布的广义矩量法

时间:2015-06-22 19:35:02

标签: r statistics

我尝试在对数正态样本上执行gmm。

这是一个正态分布的例子

n <- 1000

x <- rnorm(n, mean = 4, sd = 2)
g <- function(tet, x)
{
  m1 <- (tet[1] - x)
  m2 <- (tet[2]^2 - (x - tet[1])^2)
  m3 <- x^3 - tet[1]*(tet[1]^2 + 3*tet[2]^2)
  f <- cbind(m1, m2, m3)
  return(f)
}
library(gmm)
gmm(g, x, c(0, 0))

我想用log-normal做同样的事情,这是我的代码:

x<-rlnorm(1000,3,5)
g <- function(tet, x)
{
  m1 <- exp(tet[1]+1/2*(tet[2]^2)) -x
  m2 <- exp(2*tet[1]+1/2*2^2*(tet[2]^2)) -x^2
  # m2 <- (exp(tet[2]^2)-1)*(exp(tet[1]+1/2*(tet[2]^2)))^2 -x^2
   m3 <- exp(3*tet[1]+1/2*3^2*(tet[2]^2)) -x^3
   f <- cbind(m1, m2, m3)
  return(f)
}
gmm(g, x, c(0, 0))

但错误信息是

Error in solve.default(w, gbar) : 
  system is computationally singular: reciprocal condition number = 1.968e-34

我使用这个公式:wikipedia link for log-normal moment

知道它为什么不起作用?

1 个答案:

答案 0 :(得分:0)

问题来自于不可逆的矩的经验矩协方差矩阵。如果要计算最佳权重矩阵(w),则必须这样做。你可以尝试:

seed(123)

对于 m1 m2 m3 m1 1.236396e+13 8.183621e+20 6.004444e+28 m2 8.183621e+20 6.010799e+28 4.647952e+36 m3 6.004444e+28 4.647952e+36 3.702954e+44 ,我在对数正态估计的矩的协方差矩阵中有很大的数字:

{{1}}

也许这就是为什么这个矩阵不可​​逆。You can read a more detailed explanation on Cross Validated