PRIME:
La prime complète sera attribuée à quelqu'un qui fournit une référence à tout article publié qui utilise ou mentionne l'estimateur ci-dessous.
Motivation:
Cette section n'est probablement pas importante pour vous et je soupçonne qu'elle ne vous aidera pas à obtenir la prime, mais puisque quelqu'un a posé des questions sur la motivation, voici ce sur quoi je travaille.
Je travaille sur un problème de théorie des graphes statistiques. L'objet limitant le graphe dense standard est une fonction symétrique dans le sens où . L'échantillonnage d'un graphique sur sommets peut être considéré comme l'échantillonnage de valeurs uniformes sur l'intervalle unitaire ( pour ), puis la probabilité d'une arête est . Laissez la matrice de contiguïté résultante appelée .
On peut traiter comme une densité f = W / ∬ W en supposant que ∬ W > 0 . Si nous estimons f sur la base de A sans aucune contrainte à f , nous ne pouvons pas obtenir une estimation cohérente. J'ai trouvé un résultat intéressant sur l'estimation constante de f lorsque f provient d'un ensemble contraint de fonctions possibles. De cet estimateur et Σ A , nous pouvons estimer W .
Malheureusement, la méthode que j'ai trouvée montre de la cohérence lorsque nous échantillonnons à partir de la distribution avec la densité . La façon dont A est construit nécessite que j'échantillonne une grille de points (par opposition à prendre des tirages à partir du f d' origine ). Dans cette question stats.SE, je demande le problème unidimensionnel (plus simple) de ce qui se passe lorsque nous pouvons uniquement échantillonner l'échantillon de Bernoullis sur une grille comme celle-ci plutôt que d'échantillonner directement à partir de la distribution.
références pour les limites du graphique:
L. Lovasz et B. Szegedy. Limites des séquences de graphes denses ( arxiv ).
C. Borgs, J. Chayes, L. Lovasz, V. Sos et K. Vesztergombi. Séquences convergentes de graphes denses i: fréquences de sous-graphes, propriétés métriques et tests. ( arxiv ).
Notation:
f [ 0 , 1 ] X ∼ F X F U i [ 0 , 1 ]
Problème posé:
Souvent, nous pouvons laisser des variables aléatoires avec la distribution et travailler avec la fonction de distribution empirique habituelle comme où est la fonction d'indicateur. Notez que cette distribution empirique est elle-même aléatoire (où est fixe). F F n ( t ) = 1I F n ( t ) t
Malheureusement, je ne suis pas en mesure de prélever des échantillons directement à partir . Cependant, je sais que n'a un support positif que sur , et je peux générer des variables aléatoires où est une variable aléatoire avec une distribution de Bernoulli avec une probabilité de succès où et sont définis ci-dessus. Donc, . Une façon évidente d'estimer partir de ces valeurs est de prendre oùf [ 0 , 1 ] Y 1 , … , Y n Y i p i = f ( ( i - 1 + U i ) / n ) / c c U i Y i ∼ Berne ( p i )
Des questions:
De (ce que je pense être) du plus facile au plus difficile.
Est-ce que quelqu'un sait si ce (ou quelque chose de similaire) a un nom? Pouvez-vous fournir une référence où je peux voir certaines de ses propriétés?
Comme , un estimateur cohérent de (et pouvez-vous le prouver)?F(t)
Quelle est la distribution limite de comme ?n→∞
Idéalement, je voudrais limiter ce qui suit en fonction de - par exemple, , mais je ne sais pas quelle est la vérité. Le signifie Big O en probabilitéO P ( log ( n ) / √OP
Quelques idées et notes:
Cela ressemble beaucoup à un échantillonnage d'acceptation-rejet avec une stratification basée sur une grille. Notez que ce n'est pas le cas, car nous ne tirons pas un autre échantillon si nous rejetons la proposition.
Je suis sûr que ce est biaisé. Je pense que l'alternative est impartiale, mais elle a la propriété désagréable que . ~ F ∗ n(t)=cP( ~ F ∗ (1)=1)<1
Je souhaite utiliser comme estimateur de plug-in . Je ne pense pas que ce soit une information utile, mais vous connaissez peut-être une raison pour laquelle cela pourrait être.
Exemple en R
Voici du code R si vous voulez comparer la distribution empirique avec . Désolé, une partie de l'indentation est erronée ... Je ne vois pas comment résoudre ce problème.
# sample from a beta distribution with parameters a and b
a <- 4 # make this > 1 to get the mode right
b <- 1.1 # make this > 1 to get the mode right
qD <- function(x){qbeta(x, a, b)} # inverse
dD <- function(x){dbeta(x, a, b)} # density
pD <- function(x){pbeta(x, a, b)} # cdf
mD <- dbeta((a-1)/(a+b-2), a, b) # maximum value sup_z f(z)
# draw samples for the empirical distribution and \tilde{F}
draw <- function(n){ # n is the number of observations
u <- sort(runif(n))
x <- qD(u) # samples for empirical dist
z <- 0 # keep track of how many y_i == 1
# take bernoulli samples at the points s
s <- seq(0,1-1/n,length=n) + runif(n,0,1/n)
p <- dD(s) # density at s
while(z == 0){ # make sure we get at least one y_i == 1
y <- rbinom(rep(1,n), 1, p/mD) # y_i that we sampled
z <- sum(y)
}
result <- list(x=x, y=y, z=z)
return(result)
}
sim <- function(simdat, n, w){
# F hat -- empirical dist at w
fh <- mean(simdat$x < w)
# F tilde
ft <- sum(simdat$y[1:ceiling(n*w)])/simdat$z
# Uncomment this if we want an unbiased estimate.
# This can take on values > 1 which is undesirable for a cdf.
### ft <- sum(simdat$y[1:ceiling(n*w)]) * (mD / n)
return(c(fh, ft))
}
set.seed(1) # for reproducibility
n <- 50 # number observations
w <- 0.5555 # some value to test this at (called t above)
reps <- 1000 # look at this many values of Fhat(w) and Ftilde(w)
# simulate this data
samps <- replicate(reps, sim(draw(n), n, w))
# compare the true value to the empirical means
pD(w) # the truth
apply(samps, 1, mean) # sample mean of (Fhat(w), Ftilde(w))
apply(samps, 1, var) # sample variance of (Fhat(w), Ftilde(w))
apply((samps - pD(w))^2, 1, mean) # variance around truth
# now lets look at what a single realization might look like
dat <- draw(n)
plot(NA, xlim=0:1, ylim=0:1, xlab="t", ylab="empirical cdf",
main="comparing ECDF (red), Ftilde (blue), true CDF (black)")
s <- seq(0,1,length=1000)
lines(s, pD(s), lwd=3) # truth in black
abline(h=0:1)
lines(c(0,rep(dat$x,each=2),Inf),
rep(seq(0,1,length=n+1),each=2),
col="red")
lines(c(0,rep(which(dat$y==1)/n, each=2),1),
rep(seq(0,1,length=dat$z+1),each=2),
col="blue")
MODIFICATIONS:
EDIT 1 -
J'ai modifié cela pour répondre aux commentaires de @ whuber.
EDIT 2 -
J'ai ajouté du code R et l'ai nettoyé un peu plus. J'ai légèrement changé la notation pour la lisibilité, mais c'est essentiellement la même chose. Je prévois de mettre une prime à ce sujet dès que je suis autorisé à le faire, alors s'il vous plaît laissez-moi savoir si vous souhaitez plus de clarifications.
EDIT 3 -
Je pense avoir répondu aux remarques de @ cardinal. J'ai corrigé les fautes de frappe dans la variation totale. J'ajoute une prime.
EDIT 4 -
Ajout d'une section "motivation" pour @cardinal.