【问题标题】:How to keep BIC, AIC and maxloglikelihood in variables when using the method maxLogL使用方法 maxLogL 时如何在变量中保留 BIC、AIC 和 maxloglikelihood
【发布时间】:2020-03-29 11:45:59
【问题描述】:

我正在使用最大化可能性的方法拟合一些分布。 R“maxLogL”中实现的方法是一个很棒的工具,效果很好。文档:

AIC 和 BIC 使用汇总函数打印,但我想将这些值保留在变量中。这是您可以轻松复制的代码:

library(EstimationTools)

set.seed(10)
z <- rnorm(n = 1000, mean = 0.1, sd = 1)
fit1 <- maxlogL(x = z, dist = 'dnorm', start=c(0, 2), lower = 0, upper = 2)
a <-summary(fit1)

打印以下内容:

Optimization routine: nlminb 
Standard Error calculation: Hessian from optim 

       AIC      BIC
  2824.494 2820.494

     Estimate  Std. Error
mean  0.011375     0.0313
sd    0.991346     0.0222

我的问题是:

  1. 如何将 AIC 和 BIC 保存在变量中?
  2. 对数似然的最大值是否保存在某处?我可以使用 BIC 和 AIC 的逆向工程来获得它,但我想避免这种情况。

谢谢

PD:我特别想用maxLogL函数。

【问题讨论】:

    标签: r data-fitting cran estimation log-likelihood


    【解决方案1】:

    我很抱歉,因为我以前没有看过这篇文章。从以前的一些版本开始,我们启用了一些通用方法,包括你提到的那些。最近我们发布了version 2.0.0。让我们以之前的例子为例:

    library(EstimationTools)
    
    set.seed(10)
    z <- rnorm(n = 1000, mean = 0.1, sd = 1)
    fit1 <- maxlogL(x = z, dist = 'dnorm', start=c(0, 2), lower = 0, upper = 2)
    summary(fit1)
    
    _______________________________________________________________
    Optimization routine: nlminb 
    Standard Error calculation: Hessian from optim 
    _______________________________________________________________
           AIC      BIC
      2824.494 2834.309
    _______________________________________________________________
         Estimate  Std. Error Z value Pr(>|z|)    
    mean   0.11137    0.03135   3.553 0.000381 ***
    sd     0.99135    0.02217  44.722  < 2e-16 ***
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
    _______________________________________________________________
    

    为了将 AIC、BIC 和对数似然保存在一个变量中,只需调用泛型函数:

    myAIC <- AIC(fit1)
    myBIC <- BIC(fit1)
    mylogL <- logLik(fit1)
    

    然后,您可以打印其中任何一个

    >myAIC
    [1] 2824.494
    > myBIC
    [1] 2834.309
    > mylogL
    'log Lik.' -1410.247 (df=2)
    

    希望这可能有用。感谢您对EstimationTools 的关注。

    最好的祝愿。

    【讨论】:

      【解决方案2】:

      我对问题 1 得出的更接近的解决方案是:

      results <- capture.output(summary(fit1))
      

      将控制台输出保存到变量中。然而,这是一个烦人的解决方案,因为那时我需要处理文本。应该有一些简单而更好的东西。

      【讨论】:

        猜你喜欢
        • 2018-02-09
        • 1970-01-01
        • 2018-02-21
        • 1970-01-01
        • 1970-01-01
        • 2011-10-07
        • 2015-11-24
        • 1970-01-01
        • 2016-11-15
        相关资源
        最近更新 更多