Який взаємозв'язок між вірогідністю профілю та довірчими інтервалами?


18

Для виготовлення цієї діаграми я створив випадкові вибірки різного розміру із звичайного розподілу із середнім = 0 та sd = 1. Інтервали довіри були потім обчислені, використовуючи альфа-обрізи в межах від .001 до .999 (червона лінія) з функцією t.test (), вірогідність профілю розраховувалася за допомогою коду, нижче якого я знайшов у конспектах лекцій, розміщених у рядку (я можу ' t знайти посилання в даний момент Редагувати: Знайдено його ), це показано синіми лініями. Зелені лінії показують нормалізовану щільність за допомогою функції R щільності (), а дані відображаються коробними табличками внизу кожного діаграми. Праворуч - гусенична ділянка з довірчими інтервалами 95% (червоний) та 1/20 максимальних інтервалів вірогідності (синій).

Код R, що використовується для вірогідності профілю:

  #mn=mean(dat)
  muVals <- seq(low,high, length = 1000)
  likVals <- sapply(muVals,
                    function(mu){
                      (sum((dat - mu)^2) /
                         sum((dat - mn)^2)) ^ (-n/2)
                    }
  )

введіть тут опис зображення

Моє конкретне питання - чи існує відома залежність між цими двома типами інтервалів і чому довірчий інтервал виявляється більш консервативним для всіх випадків, за винятком випадків, коли n = 3. Коментарі / відповіді щодо того, чи справедливі мої розрахунки (і кращий спосіб зробити це), і загальна залежність між цими двома типами інтервалів також бажана.

R код:

samp.size=c(3,4,5,10,20,1000)
cnt2<-1
ints=matrix(nrow=length(samp.size),ncol=4)
layout(matrix(c(1,2,7,3,4,7,5,6,7),nrow=3,ncol=3, byrow=T))
par(mar=c(5.1,4.1,4.1,4.1))
for(j in samp.size){


  #set.seed(200)
  dat<-rnorm(j,0,1)
  vals<-seq(.001,.999, by=.001)
  cis<-matrix(nrow=length(vals),ncol=3)
  cnt<-1
  for(ci in vals){
    x<-t.test(dat,conf.level=ci)$conf.int[1:2]
    cis[cnt,]<-cbind(ci,x[1],x[2])
    cnt<-cnt+1
  }


  mn=mean(dat)
  n=length(dat)
  high<-max(c(dat,cis[970,3]), na.rm=T)
  low<-min(c(dat,cis[970,2]), na.rm=T)
  #high<-max(abs(c(dat,cis[970,2],cis[970,3])), na.rm=T)
  #low<--high


  muVals <- seq(low,high, length = 1000)
  likVals <- sapply(muVals,
                    function(mu){
                      (sum((dat - mu)^2) /
                         sum((dat - mn)^2)) ^ (-n/2)
                    }
  )


  plot(muVals, likVals, type = "l", lwd=3, col="Blue", xlim=c(low,high),
       ylim=c(-.1,1), ylab="Likelihood/Alpha", xlab="Values",
       main=c(paste("n=",n), 
              "True Mean=0 True sd=1", 
              paste("Sample Mean=", round(mn,2), "Sample sd=", round(sd(dat),2)))
  )
  axis(side=4,at=seq(0,1,length=6),
       labels=round(seq(0,max(density(dat)$y),length=6),2))
  mtext(4, text="Density", line=2.2,cex=.8)

  lines(density(dat)$x,density(dat)$y/max(density(dat)$y), lwd=2, col="Green")
  lines(range(muVals[likVals>1/20]), c(1/20,1/20), col="Blue", lwd=4)
  lines(cis[,2],1-cis[,1], lwd=3, col="Red")
  lines(cis[,3],1-cis[,1], lwd=3, col="Red")
  lines(cis[which(round(cis[,1],3)==.95),2:3],rep(.05,2), 
        lty=3, lwd=4, col="Red")
  abline(v=mn, lty=2, lwd=2)
  #abline(h=.05, lty=3, lwd=4, col="Red")
  abline(h=0, lty=1, lwd=3)
  abline(v=0, lty=3, lwd=1)

  boxplot(dat,at=-.1,add=T, horizontal=T, boxwex=.1, col="Green")
  stripchart(dat,at=-.1,add=T, pch=16, cex=1.1)

  legend("topleft", legend=c("Likelihood"," Confidence Interval", "Sample Density"),
         col=c("Blue","Red", "Green"), lwd=3,bty="n")

  ints[cnt2,]<-cbind(range(muVals[likVals>1/20])[1],range(muVals[likVals>1/20])[2],
                     cis[which(round(cis[,1],3)==.95),2],cis[which(round(cis[,1],3)==.95),3])
  cnt2<-cnt2+1
}
par(mar=c(5.1,4.1,4.1,2.1))


plot(0,0, type="n", ylim=c(1,nrow(ints)+.5), xlim=c(min(ints),max(ints)), 
     yaxt="n", ylab="Sample Size", xlab="Values")
for(i in 1:nrow(ints)){
  segments(ints[i,1],i+.2,ints[i,2],i+.2, lwd=3, col="Blue")
  segments(ints[i,3],i+.3,ints[i,4],i+.3, lwd=3, col="Red")
}
axis(side=2, at=seq(1.25,nrow(ints)+.25,by=1), samp.size)

У ваших конспектах лекцій mn- це помилка друку mu, а ні mean(dat). Як я сказав вам у коментарях до вашого іншого питання , це повинно бути зрозуміло зі сторінки визначень 23.
Елвіс

@Elvis Я так не думаю. mn визначено на сторінці 18 приміток.
колба

Я намагався уточнити поняття ймовірності профілю. Чи можете ви прокоментувати трохи далі про те, що ви робите у наведеному вище коді?
Елвіс

3
@Elvis Я також не розумію. Інтервал довіри на основі ймовірності профілю повинен бути побудований за допомогою перцентилів, які ніде не з'являються. χ2
Стефан Лоран

1
@ StéphaneLaurent Я не впевнений , що вихідний код є забезпечення довірчих інтервалів. Швидше 1/20 максимум вірогідностей. Я вважаю, що в моєму сюжеті назви інтервалів довіри - це довірчі інтервали типу "wald-type", а червоні лінії на ділянках - "криві довіри", описані на цій сторінці вікіпедії
Flask

Відповіді:


10

Я не дам повної відповіді (мені важко намагатися зрозуміти, що ви робите саме), але спробую уточнити, як будується ймовірність профілю. Можу відповісти пізніше.

Повна правдоподібності для нормального розміру вибірки є L ( μ , σ 2 ) = ( σ 2 ) - п / 2 ехр ( - Σ я ( х я - μ ) 2 / 2 σ 2 ) .н

L(мк,σ2)=(σ2)-н/2досвід(-i(хi-мк)2/2σ2).

мкσ2мк

LП(мк)=L(мк,σ2^(мк))
σ2^(мк)мк
σ2^(мк)=аргмаксσ2L(мк,σ2).

σ2^(мк)=1нк(хк-мк)2.

LП(мк)=(1нк(хк-мк)2)-н/2досвід(-н/2).

досвід(-н/2)

> data(sleep)
> difference <- sleep$extra[11:20]-sleep$extra[1:10]
> Lp <- function(mu, x) {n <- length(x); mean( (x-mu)**2 )**(-n/2) }
> mu <- seq(0,3, length=501)
> plot(mu, sapply(mu, Lp, x = difference), type="l")

ймовірність профілю

Посилання на ймовірність Я спробую виділити посилання на ймовірність за допомогою наступного графіка.

Спочатку визначте ймовірність:

L <- function(mu,s2,x) {n <- length(x); s2**(-n/2)*exp( -sum((x-mu)**2)/2/s2 )}

Потім зробіть контурний графік:

sigma <- seq(0.5,4, length=501)
mu <- seq(0,3, length=501)

z <- matrix( nrow=length(mu), ncol=length(sigma))
for(i in 1:length(mu))
  for(j in 1:length(sigma))
    z[i,j] <- L(mu[i], sigma[j], difference)

# shorter version
# z <- outer(mu, sigma, Vectorize(function(a,b) L(a,b,difference)))

contour(mu, sigma, z, levels=c(1e-10,1e-6,2e-5,1e-4,2e-4,4e-4,6e-4,8e-4,1e-3,1.2e-3,1.4e-3))

σ2^(мк)

hats2mu <- sapply(mu, function(mu0) mean( (difference-mu0)**2 ))
lines(mu, hats2mu, col="red", lwd=2)

контурний графік L

Значення ймовірності профілю - це значення, взяті ймовірністю вздовж червоної параболи.

мк^

σ2^(мк)

Ви також можете використовувати ймовірність профілю, наприклад, для складання тестових балів.


mu в коді - це послідовність значень від низького до високого, ймовірність кожного з цих значень ділиться на ймовірність на середнє значення вибірки (mn). Тож це нормалізована ймовірність.
колба

Я думаю, що це те саме, але не нормалізується. Чи можете ви помістити його в код R або іншим чином побудувати функцію для деяких даних, щоб ми могли порівняти?
колба

Ось. Спочатку я думав, що mnце помилка друку, зараз я думаю, що з кодом R все неправильно. Я завтра двічі перевіряю це - пізно, як я жив.
Елвіс

Можливо ти правий. Я не розумію, як коду вдається нормалізувати його. О, я розумію, "нормалізація" просто ділиться на максимум?
Елвіс

1
Я думаю, що це спростити зрозуміти, коли коефіцієнт ймовірності менший за деякий поріг (наприклад, 1/20 макс.) В якійсь нульовій гіпотезі (наприклад, нуль).
колба

7

χк2

0,14795%

Це класичні результати, і тому я просто надам кілька посилань на це:

http://www.jstor.org/stable/2347496

http://www.stata-journal.com/sjpdf.html?articlenum=st0132

http://www.unc.edu/courses/2010fall/ecol/563/001/docs/lectures/lecture11.htm

http://en.wikipedia.org/wiki/Likelihood-ratio_test

http://en.wikipedia.org/wiki/Likelihood_function#Profile_likelihood

Наведений нижче код R показує, що навіть для невеликих зразків інтервали, отримані при обох підходах, схожі (я повторно використовую приклад Елвіса):

Зауважте, що вам доведеться використовувати ймовірність нормалізованого профілю.

data(sleep)
x <- sleep$extra[11:20]-sleep$extra[1:10]
n <- length(x)
Rp <- function(mu) {mean( (x-mean(x))^2 )^(n/2)/mean( (x-mu)^2 )^(n/2) }
Rp(mean(x))

mu <- seq(0,3, length=501)
plot(mu, sapply(mu, Rp), type="l")


Rpt<- function(mu) Rp(mu)-0.147 # Just an instrumental function

# Likelihood-confidence interval of 95% level

c(uniroot(Rpt,c(0.5,1.5))$root,uniroot(Rpt,c(1.51,3))$root)

# t confidence interval

t.test(x,conf.level=0.95)$conf.int

Якщо ми використовуємо більший розмір вибірки, довірчі інтервали ще більше:

set.seed(123)
x <- rnorm(100)
n <- length(x)
Rp <- function(mu) {mean( (x-mean(x))^2 )^(n/2)/mean( (x-mu)^2 )^(n/2) }
Rp(mean(x))

mu <- seq(-0.5,0.5, length=501)
plot(mu, sapply(mu, Rp), type="l")


Rpt<- function(mu) Rp(mu)-0.147 # Just an instrumental function

# Likelihood-confidence interval of 95% level

c(uniroot(Rpt,c(-0.4,0))$root,uniroot(Rpt,c(0,0.4))$root)

# t confidence interval

t.test(x,conf.level=0.95)$conf.int

Важливий пункт:

Зауважте, що для конкретних зразків різні види довірчих інтервалів можуть відрізнятися за їх тривалістю чи місцем розташування, що дійсно має значення - їх охоплення. У перспективі всі вони повинні забезпечувати однакове покриття незалежно від того, наскільки вони відрізняються для конкретних зразків.


@Prokoflev, якщо існує якийсь простий взаємозв'язок між довірчими інтервалами, обчисленими функцією R t.test (), і тими, які обчислюються кодом функції ймовірності вище, ви можете опублікувати його. Мене особливо цікавить випадок n = 3. На жаль, у мене мало досвіду в математиці, тому багато документів ведуть мене по кролячій норі, шукаючи назви символів і те, що вони представляють і т. Д., Коли кілька рядків коду (найпростіший R) могли б мені це пояснити.
колба

@Flask Чи зацікавлені ви в отриманні довірчих інтервалів для параметрів нормального розподілу або більш загальної рамки?
Прокоф’єв

@Prokoflev спеціально для середнього нормального розподілу, як показано в моєму прикладі у питанні. Мене особливо цікавить, чому довірчі інтервали більш консервативні, за винятком випадків n = 3.
колба

95%

1
Я починаю вважати, що мені слід перемножувати інтервали ймовірності на деякий квантил або нормального, або розподіленого чіскара, щоб отримати відповідний довірчий інтервал ..
Колба

1

χ2ноrмалizег

  1. Імовірність профілю журналу є квадратичною наближеною
  2. Існує перетворення параметрів, що робить імовірність профілю журналу приблизно квадратичною.

Квадрат є важливим, оскільки він визначає нормальний розподіл у логічній шкалі. Чим це квадратичніше, тим краще наближення та отримані ІС '. Вибір 1/20 відсічення для вірогідних інтервалів еквівалентний більш ніж 95% ІС в асимптотичній межі, тому інтервали синього кольору, як правило, довші, ніж червоні.

Тепер є ще одна проблема з вірогідністю профілю, яка потребує певної уваги. Якщо у вас є багато змінних, на яких ви переробляєте профілі, то, якщо кількість точок даних на один вимір невелика, вірогідність профілю може бути дуже упередженою та оптимістичною. Для зменшення цього зміщення застосовуються граничні, умовні та модифіковані ймовірності профілю.

Отже, відповідь на ваше запитання - ТАК ... зв’язок - це асимптотична нормальність більшості оцінок максимальної ймовірності, що виявляється в розподілі чи-ймовірності в квадраті.


" Якщо у вас є багато змінних, на яких ви переробляєте профілі, то якщо кількість точок даних на один вимір невелика, вірогідність профілю може бути дуже упередженою та оптимістичною " Оптимістично порівняно з чим?
колба

@ Flask Оптимістично маю на увазі, що він буде занадто вузьким, щоб забезпечити номінальну ймовірність покриття, коли трактувати його як довірчий інтервал.

Я бачу, дякую, але в моєму конкретному випадку це насправді песимістично? Мене в цьому питанні бентежить питання про те, чи ми говоримо про вірогідні інтервали чи довірчі інтервали, що випливають із ймовірностей.
колба

@ Flask Я думаю, що інтервали здаються песимістичними, оскільки ви порівнюєте 1/20-й інтервал вірогідності (5% відносної ймовірності) з 95% ІС. Як заявили інші тут, ви дійсно хочете порівняти його з 15% відносним інтервалом вірогідності, щоб мати яблука з яблуками ... принаймні асимптотично. Ваш вірогідний імовірність вважає, що більшість варіантів є правдоподібними.

Я детально розкрив актуальну проблему, до якої хочу застосувати те, до чого я навчаюсь тут вчу . Я переживаю, що у випадку, коли розподіл вибірки невідомий (але, ймовірно, не є нормальним) та складний, що можуть відповідати вашим двом вимогам. Але ймовірність профілю, яку я підрахував, виглядає нормальною та розумною. Хіба що розподіл вибірки середнього має бути нормально розподілений?
колба
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.