Intervalle de confiance sur une quantité aléatoire?


8

Supposons que est un vecteur inconnu et que l'on observe . Je voudrais calculer des intervalles de confiance sur la quantité aléatoire , basée uniquement sur le observé et le paramètre connu . Autrement dit, pour un , trouver tel que .apbN(a,I)babpα(0,1)c(b,p,α)Pr(bac(b,p,α))=α

C'est une question étrange car le caractère aléatoire qui contribue aux intervalles de confiance affecte également . L'approche simple consiste à affirmer que, conditionnellement à , , donc , mais je ne pense pas que cela donnera un CI correct car est biaisé pour , qui est la valeur attendue de . ( est, jusqu'à la mise à l'échelle, un RV chi carré non central, avec un paramètre de non-centralité selonbbaN(b,I)baN(bb,bbI)bbaababbaa ; sa valeur attendue n'est pas .)aa

remarque : inconditionnellement, et , ce qui signifie qu'il s'agit d'une variable aléatoire non centrale khi carré. Ainsi, est une estimation non biaisée de la moyenne de , et de sa variance. Ce dernier est quelque peu inutile, car il peut être négatif!baN(aa,aa)bbχ(p,aa)bbpab

Je cherche toutes les façons sensées d'aborder ce problème. Ceux-ci peuvent inclure:

  1. Une borne de confiance appropriée, qui est une fonction du observé et un connu tel que pour tous les et tous les tels que . Modifier Ce que je veux dire par là, c'est que si vous corrigez puis dessinez un aléatoire , la probabilité que est sous des tirages répétés de . Par exemple, si vous avez corrigécbpPr(bac(b,p,α))=ααaaa>0abbac(b,p,α)0αbapuis dessiné des , puis la proportion des telle que se rapprocherait lorsque le nombre de réplications passe à .biibiac(bi,p,α)α
  2. Une confiance liée «dans l'attente». Ceci est une fonction du observé , et du et connu de telle sorte que sa valeur attendue inconditionnelle est labpαα quantile de ba pour tous a:aa>0.
  3. Une sorte de solution bayésienne où je peux spécifier un bon sens avant aa, puis, compte tenu de l'observation b, obtenir un postérieur sur les deux bb et aa.

modifier La forme originale de cette question avait la covariance deb comme 1nI, mais je crois que wlog on peut simplement supposern=1, donc j'ai édité toute mention de n.


Les "intervalles de confiance" sur des quantités aléatoires sont généralement appelés "intervalles de prédiction".
kjetil b halvorsen

1
@kjetilbhalvorsen: ce n'est pas une question concernant les intervalles de prédiction, qui estiment "un intervalle dans lequel tomberont les futures observations", selon Wikipedia. Le vecteurba déjà été observé.
shabbychef

1
Je ne vois pas comment pentre dans tout cela. Pouvez-vous clarifier s'il vous plait?
Ben - Réintègre Monica le

1
@Ben p est la longueur des vecteurs a et b.
shabbychef le

Réponses:


5

Vue géométrique du problème et des distributions de ba et |b|2

Voici une vue géométrique du problème. La direction dea n'a pas vraiment d'importance et nous pouvons simplement utiliser les longueurs de ces vecteurs |a| et |b| qui donnent toutes les informations nécessaires.

vue géométrique

La distribution de la longueur de la projection vectorielle de b sur a sera ba/|a|N(|a|,1) qui est liée à la quantité que vous recherchez

baN(|a|2,|a|2)

On peut en outre déduire que la longueur au carré du vecteur d'échantillons |b|2a la distribution une distribution chi carré non centrale , avec les degrés de libertép et le paramètre de non-centralité k=1pμk2=|a|2

|b|2χp,|a|22

en outre

(|b|2(ba)2|a|2)conditional on ba and |a|2χp12

Cette dernière expression montre que l'estimation de l'intervalle pour ba peut , d’un certain point de vue, être considéré comme un intervalle de confiance, carba peut être considéré comme un paramètre dans la distribution de |b|2. Mais c'est compliqué car il y a un paramètre de nuisance|a|2, ainsi que le paramètre ba est lui-même une variable aléatoire, relative à |a|2.

Plots de distributions et une méthode pour définir un c(b,p,α)

plot of joint distributions

Dans l'image ci-dessus, nous avons tracé pour une région à 95% en utilisant la droite β1 une partie de la distribution de N(|a|2,|a|2) et le haut β2 une partie de la distribution décalée de χp12 tel que β1β2=0.05

Maintenant, le gros truc est de tracer une ligne c(|β|2,p,α)qui délimite les points de telle sorte que pour tout a il y a une fraction 1αdes points (au moins) qui sont en dessous de la ligne.

multiple a

Au-dessous de la ligne, c'est là que la région réussit et nous voulons que cela se produise au moins une fraction 1αdu temps. (voir aussi La logique de base de la construction d'un intervalle de confiance et Pouvons-nous rejeter une hypothèse nulle avec des intervalles de confiance produits par échantillonnage plutôt que l'hypothèse nulle? pour un raisonnement analogue mais dans un cadre plus simple).

Il pourrait être douteux que nous puissions réussir à obtenir la situation:

|a|:Pr(bac(b,p,α))=α

Mais nous devrions toujours pouvoir obtenir un résultat comme

|a|:Pr(bac(b,p,α))α

ou plus strictement la limite la moins haute de tous les Pr(bac(b,p,α)) est égal à α

sup{Pr(bac(b,p,α)):|a|0}=α

Pour la ligne dans l'image avec le multiple |a| nous utilisons la ligne qui touche les pics des régions uniques pour définir la fonction c(|b|,p,α). En utilisant ces pics, nous obtenons que les régions d'origine, qui étaient censées être commeα=β1β2ne sont pas couverts de manière optimale. Au lieu de cela, moins de points tombent en dessous de la ligne (doncα>β1β2). Pour les petits|a| ce sera la partie supérieure, et pour les grands |a|ce sera la bonne partie. Vous obtiendrez donc:

|a|<<1:Pr(bac(b,p,α))β2|a|>>1:Pr(bac(b,p,α))β1

et

sup{Pr(bac(b,p,α)):|a|0}max(β1,β2)

C'est donc encore un peu de travail en cours. Une façon possible de résoudre la situation pourrait être d'avoir une fonction paramétrique que vous continuez à améliorer itérativement par essais et erreurs de sorte que la ligne soit plus constante (mais ce ne serait pas très perspicace). Ou peut-être pourrait-on décrire une fonction différentielle pour la ligne / fonction.

effective alpha

# find limiting 'a' and a 'b dot a'  as function of b² 
f <- function(b2,p,beta1,beta2) {
  offset <- qchisq(1-beta2,p-1)
  qma <- qnorm(1-beta1,0,1)
  if (b2 <= qma^2+offset) {
    xma = -10^5
  } else {
    ysup <- b2 - offset - qma^2
    alim <- -qma + sqrt(qma^2+ysup) 
    xma <- alim^2+qma*alim
  }
    xma
}  
fv <- Vectorize(f)  

# plot boundary
b2 <- seq(0,1500,0.1)
lines(fv(b2,p=25,sqrt(0.05),sqrt(0.05)),b2)


# check it via simulations
dosims <- function(a,testfunc,nrep=10000,beta1=sqrt(0.05),beta2=sqrt(0.05)) {
  p <- length(a)
  replicate(nrep,{
    bee <- a + rnorm(p)
    bnd <- testfunc(sum(bee^2),p,beta1,beta2)
    bta <- sum(bee * a)
    bta <= bnd
  })
}

mean(dosims(c(1,rep(0,7)),fv))

### plotting
# vectors of |a| to be tried
las2 <- 2^seq(-10,10,0.5) 
# different values of beta1 and beta2
y1 <- sapply(las2,FUN = function(las2) 
  mean(dosims(c(las2,rep(0,24)),fv,nrep=50000,beta1=0.2,beta2=0.2)))
y2 <- sapply(las2,FUN = function(las2) 
  mean(dosims(c(las2,rep(0,24)),fv,nrep=50000,beta1=0.4,beta2=0.1)))
y3 <- sapply(las2,FUN = function(las2) 
  mean(dosims(c(las2,rep(0,24)),fv,nrep=50000,beta1=0.1,beta2=0.4)))

plot(-10,-10,
     xlim=c(10^-3,10^3),ylim=c(0,0.5),log="x",
     xlab = expression("|a|"), ylab = expression(paste("effective ", alpha)))

points(las2,y1, cex=0.5, col=1,bg=1, pch=21)
points(las2,y2, cex=0.5, col=2,bg=2, pch=21)
points(las2,y3, cex=0.5, col=3,bg=3, pch=21)

text(0.001,0.4,expression(paste(beta[2], " = 0.4   ", beta[1], " = 0.1")),pos=4)
text(0.001,0.25,expression(paste(beta[2], " = 0.2   ", beta[1], " = 0.2")),pos=4)
text(0.001,0.15,expression(paste(beta[2], " = 0.1   ", beta[1], " = 0.4")),pos=4)

title(expression(paste("different effective ", alpha, " for different |a|"))) 

Comme b est aléatoire, la fonction f(b,p,α)est également aléatoire. Néanmoins, je crois que l'on peut construire une telle fonction de telle sorte que l'énoncé de probabilité tient sous la réplication de l'expérience (pour un fixea).
shabbychef le

Une façon de répondre à la question serait de trouver une fonction f tel que P(baf(b,p,α))=α, où la réplication est sous une valeur fixe a, mais des réalisations indépendantes de b. En réalité, cependant, nous n’observerons qu’un seulb. (Réaliser queblui-même est susceptible d'être une statistique suffisante redimensionnée calculée sur un certain nombre de réalisations indépendantes d'une certaine expérience.)
shabbychef

Voir aussi ma «réponse», qui montre que pour les grands aa, une certaine statistique est presque normale, tandis que pour les petites valeurs de ce paramètre, elle ressemble plus à un chi carré non central (décalé, redimensionné). Cela dit,aest un paramètre de population inconnu, nous ne savons donc pas lequel est correct. Nous pouvons genre d'estimationaa de la quantité bb, cependant.
shabbychef

Je ne vois pas pourquoi ça compte best des deux côtés de l'équation. Cependant, je vais essayer de modifier la question une fois de plus pour être parfaitement clair.
shabbychef le

1
J'ai posté une fausse réponse avec du vrai code.
shabbychef

3

Je vais passer de la notation à quelque chose de plus familier. J'espère que ce n'est pas déroutant.

I don't see how one could estimate the c-function with a completely unbiased estimator. But I will provide an unbiased estimator for "part" of the c-function, and provide a formula for the remaining bias, so that it can be assessed by simulation.

We assume that we have a jointly normal p-dimensional random (column) vector

xN(μ,1nIp),μ=(μ1,...,μp)

By the specification of the covariance matrix, the elements of the random vector are independent.

We are interested in the univariate random variable Y=xμ. Due to joint normality, this variable has also a normal distribution

YN(μμ,1nμμ)

Therefore

P(nYμμμμncμμμμ)=Φ(ncμμμμ)

where Φ() is the standard normal CDF, and

Φ(ncμμμμ)=αncμμμμ=Φ1(α)=zα

(1)c=μμnza+μμ

We need therefore to obtain estimates for μμ and its square root. For each element of the vector x, say Xk we have n available i.i.d. observations, {xk1,...,xkn}. So for each element of μμ=(μ12,...,μp2) let's try the estimator

Est(μk2)=1ni=1nXki2

This estimator has expected value

E(1ni=1nXki2)=1ni=1nE(Xki2)=1ni=1n(Var(Xki)+[E(Xki)]2)

E(μk2^)=1ni=1n(1n+μk2)=1n+μk2

So an unbiased estimator for μki2 is

μk2^=1ni=1nXki21n

implying that

E[k=1p(1ni=1nXki21n)]=1nE(k=1pi=1nXki2)pn=μμ

and so that

(2)θ^1nk=1pi=1nXki2pn
is an unbiased estimator of μμ.

But an unbiased estimator for μμ does not seem to exist (one that is solely based on the known quantities, that is).

So assume that we go on and estimate c by

(3)c^=θ^nza+θ^

The bias of this estimator is

B(c^)=E(c^c)=zαn[E(θ^)μμ]>0

the "positive bias" result due to Jensen's Inequality.

In this approach, the size n of the sample is critical, since it reduces bias for any given value of μ.

What are the consequences of this overestimation bias? Assume that we are given n,p, and we are told to calculate the critical value for Y for probability α, P(Yc)=α.

Given a sequence of samples, we will provide an estimate c^ for which, "on average" c^>c.

In other words

P(YE(c^))=α>α=P(Yc)

One could assess by simulation the magnitude of the bias for various values of μ, and how, and how much, it distorts results.


I believe this is towards an unbiased CI (option 2 in my edit), and similar in spirit to my unsatisfactory answer. I will think about how a better estimate of the standard deviation could be constructed with the available information. I think maybe a Taylor series might work. Also, I am not sure about the n observations of x part. We have n=1 wlog.
shabbychef

As you can see, the value of n matters when it comes to bias. So it depends by what you mean by "without loss of generality". A more practical issue is that if the formulas were provided for n=1, it would not be necessarily clear how exactly they should look for general n. Now they are provided for general n so one can plug in any value of n, and see what happens
Alecos Papadopoulos

The problem is that there is no n; It was only relevant in giving the background to the problem, and I should just erase it from the question. You only observe a single b (in your terminology, x, with n=1).
shabbychef

That creates no problem. Just insert 1 wherever n appears in my formulas.
Alecos Papadopoulos

1

An approach that almost works is as follows: Note that (bbba)/bb 'looks like' zc, where c is a unit-length vector (it is actually b scaled to unit length), and z=baN(0,I). If it were the case that c were independent of z, then one could claim that bb+Zαbb was a α confidence bound, where Zα is the α quantile of the normal.

However, c is not independent of z. It tends to be 'aligned with' z. Now, when aa1, c is essentially independent, and the confidence bound above gives proper coverage. When 0<aa1, however, zc is more like a shifted, scaled, non-central chi-square random variable.

A little R simulation shows the effects of aa on normality of the quantity (bbba)/bb:

z.sim <- function(p,eff.size,nsim=1e5) {
    a <- matrix(eff.size * rnorm(p),nrow=p)
    b <- rep(a,nsim) + matrix(rnorm(p*nsim),nrow=p)
    atb <- as.matrix(t(a) %*% b)
    btb <- matrix(colSums(b * b),nrow=1)
    isZ <- (btb - atb) / sqrt(btb)
}

set.seed(99) 
isZ <- z.sim(6,1e3)
jpeg("isZ.jpg")
qqnorm(isZ)
qqline(isZ)
dev.off()

jpeg("isChi.jpg")
isZ <- z.sim(6,1e-3)
qqnorm(isZ)
qqline(isZ)
dev.off()

a'a large case a'a small case


This looks like a multivariate folded normal to me...
shabbychef

This won't fly because the distribution depends on the unknown aa. Perhaps one could establish a prior on this quantity which would lead to a posterior on ab.
shabbychef

1

For the case p=1, we can find a two sided interval. In this case we can assume that 0<a is the population parameter, and we observe b=N(a,1). We wish to bound ab in probability with some function of |b| (We may only use absolute value of b as it is the one dimensional analogue of bb for the p>1 case.)

Let ϕ be the normal density function, and let zα/2 be the α/2 quantile of the normal. Then, trivially

ϕ(ba)I{|ab|zα/2}db=α.
Now note that |ab| is invariant with respect to multiplication of the inside by ±1, so we can multiply by sign(b). That is |ab|=|asign(b)|b||. Using this, then multiplying the quantities by |b| we have:
α=P(|asign(b)|b||zα/2),=P(|abb2|zα/2|b|),=P(ab[b2+zα/2|b|,b2zα/2|b|]).

Thus the symmetric interval [b2+zα/2|b|,b2zα/2|b|] has 1α coverage of ab.

Let's test with code:

test_ci <- function(a,nsim=100000,alpha=0.05) {
  b <- rnorm(nsim,mean=a,sd=1)
  b_lo <- b^2 + abs(b) * qnorm(alpha/2)
  b_hi <- b^2 + abs(b) * qnorm(alpha/2,lower.tail=FALSE)
  ab <- a*b
  isout <- ab < b_lo | ab > b_hi
  mean(isout) 
}
# try twice, with a 'small' and with a 'large'
set.seed(1234)
test_ci(a=0.01)
set.seed(4321)
test_ci(a=3.00)

I get the nominal 0.05 type I rate:

[1] 0.04983
[1] 0.04998

It's not clear how to turn this into a solution for the p>1 case, but I assume some trigonometry and use of the t distribution will apply.


0

Again, the question is to find function c() such that, if you fixed a, then under m independent draws of bi=a+zi, the proportion of i such that biac(bi,p,α) should go to α as m.

I will give a broken solution to illustrate how this should work in code. First note that bb is a non-central chi-square with non-centrality parameter λ=aa and d.f. p. So we have

E[bb]=p+aa.
Now note that baN(aa,aa). So in particular,
E[bbbap]=0.
Ignoring the covariance of ba and bb (at my own peril), I can mistakenly claim that the variance of this quantity is
Var[bbbap]=aa+2(p+2aa)=2p+5aa.
Putting these together I can make the outlandish and ludicrous claim that the α quantile of bbbap is around
Zα2p+5aa.
I then might incorrectly conclude that
Pr(babbp+Zα2p+5aa)α.
Since I do not know a, I could then further substitute in the expectation of bb to arrive at
c(b,p,α)=bbp+Zα0(5bb3p),
taking care of course to avoid estimating a negative standard deviation.

This is certainly not going to work because we ignored the covariance term. However, the point is to demonstrate some code:

# my broken 'c' function
cfunc <- function(bee,p=length(bee),alpha=0.05) {
  lam <- sum(bee^2)
  sig <- sqrt(max(0,5*lam - 3*p))
  lam - p + qnorm(alpha) * sig
}
# check it via simulations
dosims <- function(a,testfunc,nrep=10000,alpha=0.05) {
  p <- length(a)
  replicate(nrep,{
    bee <- a + rnorm(p)
    bnd <- testfunc(bee,p,alpha)
    bta <- sum(bee * a)
    bta <= bnd
  })
}
options(digits=5)
set.seed(1234)
mean(dosims(rep(0.01,8),cfunc))
mean(dosims(rep(0.1,8),cfunc))
mean(dosims(rep(1,8),cfunc))

I get nothing like the nominal 0.05 coverage:

[1] 0.0011
[1] 0.0018
[1] 0.001

You should be able to plug in a working confidence bound for the testfunc.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.