Как сохранить оценочные параметры из nigfit () в переменной - PullRequest
0 голосов
/ 31 марта 2012

Я хочу автоматически вписать временные ряды в распределение NIG. С помощью nigfit () из пакета fBasics я оцениваю mu, alpha, beta и delta дистрибутива.

>   nigFit(histDailyReturns,doplot=FALSE,trace=FALSE)

Title:
 Normal Inverse Gaussian Parameter Estimation 

Call:
 .nigFit.mle(x = x, alpha = alpha, beta = beta, delta = delta, 
    mu = mu, scale = scale, doplot = doplot, span = span, trace = trace, 
    title = title, description = description)

Model:
 Normal Inverse Gaussian Distribution

Estimated Parameter(s):
       alpha         beta        delta           mu 
48.379735861 -1.648483055  0.012361539  0.001125734 

Это работает нормально, что означает, что nigfit отображает мои параметры. Однако я хотел бы использовать оценочные параметры и сохранить их в переменных. Так что я мог бы использовать их позже.

    > variable = nigfit(histDailyReturns,doplot=FALSE,trace=FALSE)

Это не сработает. 'variable' - это объект S4 структуры класса fDISTFIT . Вызов переменной повторяет вывод nigfit выше. Я попробовал следующие обозначения, чтобы получить только один параметр:

    > variable$alpha
    > variable.alpha
    > variable[1]

Я не смог найти ответ в документации nigfit. Можно ли сохранить оценочные параметры в переменных? Как это работает?

Ответы [ 2 ]

0 голосов
/ 31 марта 2012

Изучите структуру выходного объекта, используя str(variable):

> variable@fit$par[["alpha"]]
[1] 48.379735861
> variable@fit$par[["beta"]]
[1] -1.648483055
> variable@fit$par[["delta"]]
[1] 0.012361539
> variable@fit$par[["mu"]]
[1] 0.001125734
0 голосов
/ 31 марта 2012

получить доступ к выходным компонентам, используя @.variable имеет другой slots.Получите их имена, используя slotNames().Используя пример из документации:

    set.seed(1953)
    s <- rnig(n = 1000, alpha = 1.5, beta = 0.3, delta = 0.5, mu = -1.0)
    a <- nigFit(s, alpha = 1, beta = 0, delta = 1, mu = mean(s), doplot = TRUE) 
    slotNames(a)

     [1] "call"        "model"       "data"        "fit"         "title"      
     [6] "description"
    # `fit` is a list with all the goodies. You're looking for the vector, `estimate`:
    a@fit$estimate

         alpha       beta      delta         mu 
     1.6959724  0.3597794  0.5601027 -1.0446402 
...