gpt4 book ai didi

r - 对数正态分布的广义矩法

转载 作者:行者123 更新时间:2023-12-02 04:48:21 28 4
gpt4 key购买 nike

我尝试对对数正态样本执行 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))

我想对对数正态做同样的事情,这是我的代码:

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

知道为什么它不起作用吗?

最佳答案

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

gt <- g(c(0,0),x)
solve(var(gt))

使用 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

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

关于r - 对数正态分布的广义矩法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30988342/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com