为什么 gamlss 会给出错误的前高斯分布参数估计?

mk9*_*k9y 1 estimation r gamlss

gamlss.dist页面exGAUSS

心理学家经常使用前高斯分布来模拟响应时间 (RT)。它是通过添加两个随机变量来定义的,一个随机变量来自正态分布,另一个来自指数分布。参数musigma是正态分布变量的平均值和标准差,而参数nu是指数变量的平均值。

以下是我们应该如何估计参数:

library(gamlss)
y <- rexGAUS(100, mu = 300, nu = 100, sigma = 35)
m1 <- gamlss(y ~ 1, family = exGAUS)
m1
Run Code Online (Sandbox Code Playgroud)

不幸的是,估计值相差甚远:

Family:  c("exGAUS", "ex-Gaussian") 
Fitting method: RS() 

Call:  gamlss(formula = y ~ 1, family = exGAUS) 

Mu Coefficients:
(Intercept)  
      302.9  
Sigma Coefficients:
(Intercept)  
      3.496  
Nu Coefficients:
(Intercept)  
       4.63  
Run Code Online (Sandbox Code Playgroud)

从 CRAN 中消失的软件包retimes仍然可以从

https://cran.r-project.org/src/contrib/Archive/retimes/retimes_0.1-2.tar.gz
它有一个功能mexgauss

library(retimes)
mexgauss(y)
Run Code Online (Sandbox Code Playgroud)

给出:

       mu     sigma       tau 
319.42880  55.51562  85.94403 
Run Code Online (Sandbox Code Playgroud)

哪个更接近。

aos*_*ith 8

sigma和 的估计值nu在模型输出中似乎相差甚远。这是因为exGaus()默认情况下这两个参数都使用日志链接。从文档中,显示默认值:

exGAUS(mu.link = "身份", sigma.link = "日志", nu.link = "日志")

输出显示模型尺度上的结果,因此这两个参数的估计值是在对数尺度上给出的。

如果我们对结果取幂sigmanu那么我们会得到看起来更合理、更接近我们预期的估计值。

# estimated sigma should be close to 35
exp(3.496)
#> [1] 32.98325

# estimated nu shoud be close to 100
exp(4.63)
#> [1] 102.5141
Run Code Online (Sandbox Code Playgroud)

由reprex 包于 2021 年 10 月 11 日创建(v2.0.0)