프로파일 가능성과 신뢰 구간 사이의 관계는 무엇입니까?


18

이 차트를 만들기 위해 mean = 0 및 sd = 1 인 정규 분포와 다른 크기의 랜덤 표본을 생성했습니다. 그런 다음 t.test () 함수를 사용하여 .001에서 .999 (빨간색 선) 범위의 알파 컷오프를 사용하여 신뢰 구간을 계산 한 후, 강의 노트에서 찾은 아래 코드를 사용하여 프로파일 가능성을 계산했습니다. 편집 : 발견 한 시점에서 링크를 찾을 수없는 경우 파란색 선으로 표시됩니다. 녹색 선은 R density () 함수를 사용하여 정규화 된 밀도를 나타내고 데이터는 각 차트의 맨 아래에 상자 그림으로 표시됩니다. 오른쪽에는 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

@Elvis 나는 그렇게 생각하지 않습니다. mn은 노트의 18 페이지에 정의되어 있습니다.
Flask

나는 프로파일 가능성의 개념을 명확히하려고 노력했다. 위의 코드에서 수행중인 작업에 대해 조금 더 언급 할 수 있습니까?
Elvis

3
@Elvis 나도 이해하지 못한다. 프로파일 가능성에 기반한 신뢰 구간은 어디에도 나타나지 않는 백분위 수를 사용하여 구성해야합니다 . χ2
Stéphane Laurent

1
@ StéphaneLaurent 원래 코드 신뢰 구간을 제공 하는지 잘 모르겠습니다 . 오히려 1/20 최대 가능성 구간. 내 플롯에서 신뢰 구간의 이름은 "wald-type"신뢰 구간이고 플롯의 빨간색 선 은이 Wikipedia 페이지에
Flask

답변:


10

나는 완전한 대답을하지 않을 것입니다 (나는 당신이 정확히 무엇을하고 있는지 이해하려고 노력하는 데 어려움을 겪고 있습니다), 그러나 나는 프로파일 가능성이 어떻게 구축되는지 명확히하려고 노력할 것입니다. 나중에 답변을 완료 할 수 있습니다.

크기의 정상 샘플에 대한 전체 확률은 이고 L ( μ , σ 2 ) = ( σ 2 ) - N / 2 EXP ( - Σ I ( X I - μ ) 2 / 2 σ 2 ) .

(μ,σ2)=(σ2)/2특급(나는(엑스나는μ)2/2σ2).

경우 관심 파라미터이고, σ 2 귀찮은 파라미터 만에 메이크업 추론에 대한 해결책이고 μ는 프로파일 우도 정의하는 L의 P ( μ ) = L ( μ , ^ σ 2 ( μ를 ) ) ^ σ 2 ( μ )μ 고정에 대한 MLE입니다 : ^ σ 2 ( μ ) = argmax σ 2 L ( μ ,μσ2μ

(μ)=(μ,σ2^(μ))
σ2^(μ)μ
σ2^(μ)=argmaxσ2(μ,σ2).

σ2^(μ)=1케이(엑스케이μ)2.

(μ)=(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). 따라서 정규화 가능성입니다.
Flask

나는 이것이 같지만 정규화되지는 않았다고 생각합니다. R 코드에 넣거나 다른 데이터에 대한 함수를 플로팅하여 비교할 수 있습니까?
Flask

여기있어. 처음 mn에는 오타라고 생각했지만 이제 R 코드가 모두 잘못되었다고 생각합니다. 나는 내일 그것을 다시 점검 할 것이다 – 내가 사는 것은 늦었다.
Elvis

당신이 옳을 수도 있습니다. 코드가 정규화하는 방법을 이해하지 못합니다. 오, 나는 "정규화"를 최대 값으로 나누는 것입니다.
Elvis

1
나는 일부 귀무 가설 (예 : 0)에서 우도 비가 임계 값 (예 : 최대 1/20)보다 작은 경우를 쉽게 볼 수 있도록하는 것이라고 생각합니다.
Flask

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 코드는 작은 샘플의 경우에도 두 접근 방식으로 얻은 간격이 비슷하다는 것을 보여줍니다 (Elvis 예제를 다시 사용하고 있습니다).

정규화 된 프로필 가능성을 사용해야합니다.

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

중요한 포인트 :

특정 표본의 경우 서로 다른 종류의 신뢰 구간은 길이나 위치에 따라 다를 수 있으며 실제로 중요한 것은 적용 범위입니다. 장기적으로, 그들 모두는 특정 샘플에 대해 얼마나 다른지 독립적으로 동일한 적용 범위를 제공해야합니다.


R t.test () 함수로 계산 된 신뢰 구간과 위의 우도 함수 코드로 계산 된 신뢰 구간 사이에 간단한 관계가있는 경우 @Prokoflev를 게시 할 수 있습니다. 특히 n = 3 사례에 관심이 있습니다. 불행히도 나는 수학에 대한 배경 지식이 거의 없기 때문에 많은 논문이 토끼 구멍 아래로 기호의 이름과 몇 줄의 코드 (가장 쉬운 것은 R)가 그것을 설명 할 수있을 때 그들이 나타내는 것을 찾아냅니다.
플라스크

@Flask 정규 분포 또는보다 일반적인 프레임 워크의 모수에 대한 신뢰 구간을 얻는 데 관심이 있습니까?
Prokofiev

질문의 예에 표시된 것처럼 정규 분포의 평균에 대한 @Prokoflev. 특히 n = 3의 경우를 제외하고 신뢰 구간이 더 보수적 인 이유가 궁금합니다.
플라스크

95%

1
해당 신뢰 구간을 얻기 위해 가능성 구간에 정규 분포 또는 카이 제곱 분포의 일부 Quantile을 곱해야한다고 믿기 시작했습니다.
Flask

1

χ2영형아르 자형미디엄나는이자형

  1. 프로파일 로그 우도는 대략 2 차입니다
  2. 프로파일 로그 가능성을 대략 2 차로 만드는 매개 변수 변환이 있습니다.

이차는 로그 스케일의 정규 분포를 정의하기 때문에 중요합니다. 이차가 클수록 근사와 결과 CI가 더 좋습니다. 가능성 구간에 대해 1/20 번째 컷오프를 선택하는 것은 점근 제한에서 95 % CI 이상에 해당하며, 파란색 간격이 일반적으로 빨간색 간격보다 긴 이유입니다.

이제 프로파일 가능성에주의를 기울여야 할 또 다른 문제가 있습니다. 프로파일 링 할 변수가 많은 경우 차원 당 데이터 포인트 수가 적 으면 프로파일 가능성이 매우 치우치고 낙관적 일 수 있습니다. 그런 다음 한계, 조건부 및 수정 된 프로파일 가능성을 사용하여이 편향을 줄입니다.

따라서 귀하의 질문에 대한 대답은 '예'입니다. 연결은 우도 비율의 카이 제곱 분포에 나타난 바와 같이 최대 가능성 추정기의 점근 적 정규성입니다.


" 프로파일 링 할 변수가 많은 경우 차원 당 데이터 포인트 수가 적 으면 프로파일 가능성이 매우 치우치고 낙관적 일 수 있습니다. "무엇에 비해 낙관적입니까?
플라스크

@Flask 낙관적으로 말해서 신뢰 구간으로 취급 할 때 공칭 범위 확률을 제공하기에는 너무 좁을 것입니다.

고마워요.하지만 특정한 경우에는 실제로 비관적입니까? 우리가 우도에서 도출 된 우도 구간 또는 신뢰 구간에 대해 이야기하고 있는지에 대해서는이 점에서 혼란 스럽다.
플라스크

@Flask 1/20 번째 우도 구간 (5 % 상대 우도)을 95 % CI와 비교하기 때문에 구간이 비관적으로 보입니다. 여기 다른 사람들이 말했듯이 사과를 사과에 담기 위해 15 %의 상대적 가능성 간격과 비교하는 것이 좋습니다 ... 적어도 무증상입니다. 가능성 간격은 더 많은 옵션을 타당한 것으로 생각하고 있습니다.

여기서 배우고있는 내용을 적용하려는 실제 문제에 대해 자세히 설명했습니다 . 샘플링 분포를 알 수없는 경우 (정상적이지는 않지만) 두 요구 사항이 충족되지 않는 복잡한 문제가 발생합니다. 그러나 내가 계산 한 프로파일 가능성은 정상적이고 합리적인 것으로 보입니다. 평균 의 표본 분포 가 정규 분포이어야합니까?
Flask
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.