プロファイル尤度と信頼区間の関係は何ですか?


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)
                    }
  )

ここに画像の説明を入力してください

私の特定の質問は、これらの2種類の間隔の間に既知の関係があるかどうか、およびn = 3の場合を除いてすべてのケースで信頼区間がより保守的に見える理由です。計算が有効かどうか(およびこれを行うためのより良い方法)およびこれら2つのタイプの間隔の一般的な関係についてのコメント/回答も必要です。

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ページから明らかである
エルビス

@エルビス私はそうは思いません。mnは、ノートの18ページで定義されています。
フラスコ

プロファイル尤度の概念を明確にしようとしました。上記のコードで行っていることについて、もう少しコメントしていただけますか?
エルビス

3
@エルビス私も理解していません。プロファイルの尤度に基づく信頼区間は、どこにも現れないパーセンタイルを使用して構築する必要があります。χ2
ステファンローラン

1
@StéphaneLaurent元のコード信頼区間を提供しているかどうかはわかりません。むしろ1/20の最大尤度間隔。私は私のプロットの信頼区間の名前は「ワルド型」信頼区間とプロット上の赤線が記載されている「信頼曲線」されていると信じて、このWikipediaのページ
フラスコ

回答:


10

完全な答えはしませんが(あなたが何をしているかを正確に理解しようとするのは大変です)、プロファイルの尤度がどのように構築されるかを明確にします。後で回答を完了することがあります。

サイズの正常サンプルの完全な可能性がであり、 L μ σ 2= σ 2 - N / 2 EXP - Σ IX I - μ 2 / 2 σ 2 n

Lμσ2=σ2n/2expバツμ2/2σ2

場合興味のあるパラメータであり、σ 2は迷惑パラメータであり、のみに推論を行うためのソリューションμは、プロファイル尤度を定義することである L Pμ = L μ ^ σ 2μ ^ σを2μはのためにMLEであるμ固定: ^ σ 2μ = ARGMAX σ 2 L μ μσ2μ

LPμ=Lμσ2^μ
σ2^μμ
σ2^μ=argmaxσ2Lμσ2

σ2^μ=1nkバツkμ2

LPμ=1nkバツkμ2n/2expn/2

expn/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

χk2

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

重要なポイント:

特定のサンプルでは、​​異なる種類の信頼区間がその長さまたは場所の点で異なる場合があることに注意してください。実際に重要なのはカバレッジです。長い目で見れば、それらはすべて、特定のサンプルでどれだけ異なるかにかかわらず、同じカバレッジを提供する必要があります。


R t.test()関数で計算された信頼区間と、上記の尤度関数コードで計算された信頼区間との間に何らかの単純な関係がある場合は、@ Prokoflevを投稿できます。特にn = 3の場合に興味があります。残念ながら数学の背景はほとんどないので、数行のコード(最も簡単なのはR)で説明できる場合、多くの論文がシンボルの名前やそれらが表すものなどを探してウサギの穴に導かれます。
フラスコ

@Flask正規分布またはより一般的なフレームワークのパラメーターの信頼区間を取得することに興味がありますか?
プロコフィエフ

@Prokoflevは、質問の私の例に示されているように、特に正規分布の平均値です。特に、n = 3の場合を除いて、信頼区間がより保守的である理由を疑問に思っています。
フラスコ

95

1
私は..私は、対応する信頼区間を取得するか、正常またはカイ二乗分布のいくつかの分位で尤度間隔を掛けるべきであると信じ始めています
フラスコ

1

χ2normalzed

  1. プロファイルの対数尤度は近似2次です。
  2. プロファイルの対数尤度をほぼ2次にするパラメーター変換が存在します。

二次は、対数スケールで正規分布を定義するため重要です。二次関数であるほど、近似と結果のCIが向上します。尤度間隔の1/20番目のカットオフの選択は、漸近的制限の95%CI以上に相当します。これが、青の間隔が赤の間隔より一般に長い理由です。

現在、プロファイルの尤度には注意が必要な別の問題があります。プロファイリングする変数が多数ある場合、ディメンションごとのデータポイントの数が少ないと、プロファイルの尤度は非常に偏って楽観的になる可能性があります。次に、このバイアスを減らすために、限界、条件付き、および修正されたプロファイル尤度が使用されます。

したがって、あなたの質問への答えはYESです...接続は、尤度比のカイ二乗分布に現れるように、ほとんどの最尤推定量の漸近正規性です。


プロファイリングする変数が多数ある場合、ディメンションごとのデータポイントの数が少ない場合、プロファイルの尤度は非常に偏りがあり、楽観的です
フラスコ

@Flask楽観的に言うと、信頼区間として扱う場合、名目上のカバレッジ確率を提供するには狭すぎます。

わかりましたが、私の特定のケースでは実際に悲観的ですか?この点で、尤度区間について話しているのか、尤度から導出された信頼区間について話しているのか混乱しています。
フラスコ

@Flask 1/20番目の尤度間隔(5%の相対尤度)を95%CIと比較しているため、間隔が悲観的に見えると思います。ここで他の人が述べたように、あなたはそれを15%の相対尤度間隔と比較して、リンゴとリンゴを少なくとも漸近的に比較したいと思うでしょう。現状の尤度間隔は、より多くのオプションをもっともらしいと考えています。

私が学んでいることをここに適用したい実際の問題を詳細にしました。サンプリング分布が不明(ただし、通常ではない可能性が高い)で複雑な場合、2つの要件が満たされないことが心配です。それでも、私が計算したプロファイルの尤度は、正常で合理的であるように見えます。平均のサンプリング分布は正規分布すべきですか?
フラスコ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.