Получите степень свободы для стандартизированного распределения T с MLE

Прежде всего, я заранее благодарю всех за то, что прочитали это.

Я пытаюсь подогнать стандартизированное распределение T-Student (т. Е. T-Student со стандартным отклонением = 1) на серии данных; то есть: я хочу оценить степени свободы с помощью оценки максимального правдоподобия.

Пример того, чего мне нужно достичь, можно найти в следующем (простом) файле Excel, который я создал: https://www.dropbox.com/s/6wv6egzurxh4zap/Excel%20Implementation%20Example.xlsx?dl=0

Внутри файла Excel у меня есть изображение, которое содержит формулу, соответствующую вычислению функции логарифмического правдоподобия для стандартизированного распределения T по студентам. Формула была взята из книги финансов (Элементы управления финансовыми рисками - Питер Кристофферсен).

До сих пор я пробовал это с R:

copula.data <- read.csv(file.choose(),header = TRUE)
z1 <- copula.data[,1]

library(fitdistrplus)


ft1 = fitdist(z1, "t", method = "mle", start = 10)
df1=ft1$estimate[1]

df1
logLik(ft1)

df1 выдает число: 13.11855278779897

logLike (ft1) возвращает число: -3600.2918050056487

Тем не менее, файл Excel дает степени свободы: 8,2962365022727 и логарифмическая вероятность: -3588,8879 (что является правильным ответом).

Примечание. Файл.csv, который читает мой код, выглядит следующим образом: https://www.dropbox.com/s/nnh2jgq4fl6cm12/Data%20for%20T%20Copula.csv?dl=0

Есть идеи? Спасибо, люди!

1 ответ

Формула из вашей таблицы (с n, x заменил параметр df и данные)

= ГАММАНЛОГ ((п + 1) / 2) -GAMMALN(п / 2) -LN(ПИ ()) / 2-LN(п-2)/2-1/2*(1+ N)*LN(1+ х ^2/(п-2))

или возведения в степень,

Гамма ((n+1)/2) / (sqrt((n-2) pi) Гамма (n/2)) (1+x^2/(n-2))^-((n+1)/2)

?dt дает

f(x) = Гамма ((n+1)/2) / (sqrt(n pi) Гамма (n/2)) (1 + x^2/n)^-((n+1)/2)

Таким образом, разница заключается в тех, n-2 значения в двух местах в формуле. У меня недостаточно контекста, чтобы понять, почему автор определяет распределение t таким способом; может быть какая-то веская причина...

Если посмотреть на кривую отрицательного логарифмического правдоподобия напрямую, то, безусловно, fitdistrplus Ответ согласуется с прямым расчетом. (Было бы очень удивительно, если бы была ошибка в dt() функции, функции распределения R очень широко используются и тщательно протестированы.)

LL <- function(p,data=z1) {
    -sum(dt(data,df=p,log=TRUE))
}
pvec <- seq(6,20,by=0.05)
Lvec <- sapply(pvec,LL)
par(las=1,bty="l")
plot(pvec,Lvec,type="l",
     xlab="df parameter",ylab="negative log-likelihood")
## superimpose fitdistr results ...
abline(v=coef(ft1),lty=2)
abline(h=-logLik(ft1),lty=2)

Если вы не скажете нам что-то еще об определении проблемы, мне кажется, что R получает правильный ответ. (Среднее и sd данных, которые вы дали, не были точно равны 0 и 1 соответственно, но они были близки; центрирование и масштабирование дали еще большее значение для параметра.)

Другие вопросы по тегам