Позитивний стабільний розподіл в R


9

Позитивні стабільні розподіли описуються чотирма параметрами: параметр перекосу , параметр масштабу , параметр розташування тощо -названий параметр індексу . Коли дорівнює нулю, розподіл симетричний навколо , коли він є позитивним (відповідно негативним), розподіл перекошено вправо (відповідно ліворуч) Стабільний розподіл дозволяє жирові хвости, коли зменшується.β[-1,1]σ>0мк(-,)α(0,2]βмкα

Коли суворо менше, ніж підтримка розподілу обмежується .αβ=1(мк,)

Функція щільності має лише вираз закритої форми для деяких конкретних комбінацій значень параметрів. Коли , , і це (див. Формулу (4.4) тут ):мк=0α<1β=1σ=α

f(у)=-1πук=1Γ(кα+1)к!(-у-α)кгріх(αкπ)

Він має нескінченну середню і дисперсію.

Питання

Я хотів би використовувати цю щільність у Р. Я використовую

> alpha <- ...
> dstable(y, alpha=alpha, beta=1, gamma=alpha, delta=0, pm=1)

де гнучка функція поставляється з пакетом fBasics.

Чи можете ви підтвердити, що це правильний спосіб обчислити цю щільність у R?

Заздалегідь спасибі!

EDIT

Однією з причин, чому я підозрюю, є те, що у висновку значення дельти відрізняється від значення вхідних даних. Приклад:

> library(fBasics)
> alpha <- 0.4
> dstable(4, alpha=alpha, beta=1, gamma=alpha, delta=0, pm=1)
[1] 0.02700602
attr(,"control")
   dist alpha beta gamma    delta pm
stable   0.4    1   0.4 0.290617  1

Відповіді:


6

Коротка відповідь - ваша нормальна, але ваша неправильна. Для отримання позитивного стабільного розподілу, заданого вашою формулою в R, вам потрібно встановити δγ

γ=|1itan(πα/2)|1/α.

Найдавніший приклад, який я міг знайти у формулі, яку ви дали (Feller, 1971), але я знайшов цю книгу лише у фізичній формі. Однак (Hougaard, 1986) дає ту саму формулу разом із перетворенням Лапласа З посібника ( використовується в ) параметризація - з (Samorodnitsky and Taqqu, 1994), іншого ресурсу, відтворення в Інтернеті мене ухилилось. Однак (Верон, 2001) дає характерну функцію в параметризації Самородницького і Таква для бути

L(s)=E[exp(sX)]=exp(sα).
stablediststabledistfBasicspm=1α1
φ(т)=Е[досвід(iтХ)]=досвід[iδт-γα|т|α(1-iβсiгн(т)засмагаπα2)].
Я перейменував деякі параметри з паперу Верона на сумісний з позначеннями, які ми використовуємо. Він використовує для та для . У будь-якому випадку, підключаючи і , отримуємо мкδσγβ=1δ=0
φ(т)=досвід[-γα|т|α(1-iсiгн(т)засмагаπα2)].

Зверніть увагу, що для і що . Формально , значить, встановивши в отримуємо Один цікавий момент, який слід зауважити, - це те, що що відповідає , також є , тож якщо ви спробували або(1-iзасмага(πα/2))/|1-iзасмага(πα/2)|=досвід(-iπα/2)α(0,1)iα=досвід(iπα/2)L(с)=φ(iс)γ=|1-iзасмага(πα/2)|-1/αφ(т)

φ(iс)=досвід(-сα)=L(с).
γα=1/21/2γ=αγ=1-α, що насправді не є поганим наближенням, ви закінчуєтесь точно правильно для .α=1/2

Ось приклад в R для перевірки правильності:

library(stabledist)

# Series representation of the density
PSf <- function(x, alpha, K) {
  k <- 1:K
  return(
    -1 / (pi * x) * sum(
      gamma(k * alpha + 1) / factorial(k) * 
        (-x ^ (-alpha)) ^ k * sin(alpha * k * pi)
    )
  )
}

# Derived expression for gamma
g <- function(a) {
  iu <- complex(real=0, imaginary=1)
  return(abs(1 - iu * tan(pi * a / 2)) ^ (-1 / a))
}

x=(1:100)/100
plot(0, xlim=c(0, 1), ylim=c(0, 2), pch='', 
     xlab='x', ylab='f(x)', main="Density Comparison")
legend('topright', legend=c('Series', 'gamma=g(alpha)'),
       lty=c(1, 2), col=c('gray', 'black'),
       lwd=c(5, 2))
text(x=c(0.1, 0.25, 0.7), y=c(1.4, 1.1, 0.7), 
     labels=c(expression(paste(alpha, " = 0.4")),
              expression(paste(alpha, " = 0.5")),
              expression(paste(alpha, " = 0.6"))))

for(a in seq(0.4, 0.6, by=0.1)) {
  y <- vapply(x, PSf, FUN.VALUE=1, alpha=a, K=100)
  lines(x, y, col="gray", lwd=5, lty=1)
  lines(x, dstable(x, alpha=a, beta=1, gamma=g(a), delta=0, pm=1), 
        col="black", lwd=2, lty=2)
}

Діаграма виведення

  1. Feller, W. (1971). Вступ до теорії ймовірностей та її застосування , 2 , 2-е видання. Нью-Йорк: Вілі.
  2. Hougaard, P. (1986). Моделі виживання для гетерогенних популяцій, отриманих від стабільних розподілів , Biometrika 73 , 387-396.
  3. Самородницький, Г., Taqqu, MS (1994). Стабільні неагаусські випадкові процеси , Чапман і Холл, Нью-Йорк, 1994.
  4. Верон, Р. (2001). Переглянуті стійкі до сплати розподіли: хвостовий індекс> 2 не виключає режиму стійкості до сплати, Міжнародний журнал сучасної фізики C, 2001, 12 (2), 209-223.

1
Моє задоволення. Тема позитивних стабільних параметризацій викликала у мене сильний головний біль на початку цього року (це справді безлад), тому я публікую те, що придумав. Ця особлива форма корисна при аналізі виживання, оскільки форма лаплаціанця дозволяє просте співвідношення між умовними та граничними параметрами регресії в пропорційних моделях небезпек, коли існує термін крихкості після позитивного стабільного розподілу (див. Статтю Хогаарда).
П Шнелл

6

Я думаю, що відбувається, це те, що у висновку deltaможе бути звітність про внутрішнє значення розташування, а у вхідному deltaописі - опис зрушення. [Здається, є аналогічна проблема з gammaколи pm=2.] Тож якщо ви спробуєте збільшити перехід до 2

> dstable(4, alpha=0.4, beta=1, gamma=0.4, delta=2, pm=1)
[1] 0.06569375
attr(,"control")
   dist alpha beta gamma    delta pm
 stable   0.4    1   0.4 2.290617  1

то ви додасте 2 до значення розташування.

З beta=1і у pm=1вас є додатна випадкова величина з нижньою межею розподілу в 0.

> min(rstable(100000, alpha=0.4, beta=1, gamma=0.4, delta=0, pm=1))
[1] 0.002666507

Зсув на 2, а нижня межа піднімається на стільки ж

> min(rstable(100000, alpha=0.4, beta=1, gamma=0.4, delta=2, pm=1))
[1] 2.003286

Але якщо ви хочете, щоб deltaвхід був внутрішнім значенням розташування, а не зсувом або нижньою межею, тоді вам потрібно використовувати іншу специфікацію для параметрів. Наприклад, якщо ви спробуєте наступне (із pm=3та спробували delta=0і те, що delta=0.290617ви знайшли раніше), ви, схоже, отримуєте те саме deltaі входите і виходите. З pm=3і delta=0.290617ви отримуєте однакову щільність 0,02700602, яку ви знайшли раніше, а нижню межу на 0. З, pm=3і delta=0ви отримуєте негативну нижню межу (фактично -0,290617).

> dstable(4, alpha=0.4, beta=1, gamma=0.4, delta=0, pm=3)
[1] 0.02464434
attr(,"control")
   dist alpha beta gamma delta pm
 stable   0.4    1   0.4     0  3
> dstable(4, alpha=0.4, beta=1, gamma=0.4, delta=0.290617, pm=3)
[1] 0.02700602
attr(,"control")
   dist alpha beta gamma    delta pm
 stable   0.4    1   0.4 0.290617  3
> min(rstable(100000, alpha=0.4, beta=1, gamma=0.4, delta=0, pm=3))
[1] -0.2876658
> min(rstable(100000, alpha=0.4, beta=1, gamma=0.4, delta=0.290617, pm=3))
[1] 0.004303485

Можливо, вам буде простіше просто ігнорувати deltaу висновку, і поки ви продовжуєте beta=1використовувати pm=1засоби deltaна вході, це нижня межа розподілу, яка, здається, ви хочете бути 0.


5

Також зверніть увагу: Мартін Махлер просто відремонтував код для стабільно розподіленого і додав деякі вдосконалення.

Його новий пакет stabildist також буде використовуватися fBasics, тому ви, можливо, захочете також придумати це.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.