Esse problema pode ser rapidamente reduzido a encontrar o quantil de uma distribuição trapezoidal .
Vamos reescrever o processo como
em que e são variáveis aleatórias iid ; e, por simetria, ela tem a mesma distribuição marginal do processo
Os dois primeiros termos determinam uma densidade trapezoidal simétricaU 1 U 2 U ( - 1 , 1 )
P(x)=U1⋅12sinx+U2⋅12cosx+12(sinx+cosx),
U1U2U(−1,1)P¯¯¯¯(x)=U1⋅∣∣∣12sinx∣∣∣+U2⋅∣∣∣12cosx∣∣∣+12(sinx+cosx).
uma vez que esta é a soma de duas variáveis aleatórias uniformes com média zero (com, em geral, meias larguras diferentes). O último termo apenas resulta em uma conversão dessa densidade e o quantil é equivariante em relação a essa conversão (ou seja, o quantil da distribuição deslocada é o quantil deslocado da distribuição centralizada).
Quantiles de uma distribuição trapezoidal
Seja onde e são distribuições independentes e . Suponha, sem perda de generalidade, que . Então, a densidade de é formada pela convolução das densidades de e . É facilmente visto como um trapézio com vértices , , e .X 1 X 2 L ( - um , um ) L ( - b , b ) um ≥ b Y X 1 X 2 ( - um - b , 0 ) ( - um + b , 1 / 2 um ) ( um - b , 1 / 2 umY=X1+X2X1X2U(−a,a)U(−b,b)a≥bYX1X2(−a−b,0)(−a+b,1/2a)(a−b,1/2a)(a+b,0)
O quantil da distribuição de , para qualquer , é, portanto,
Por simetria, para , temos .Yp<1/2
q(p):=q(p;a,b)={8abp−−−−√−(a+b),(2p−1)a,p<b/2ab/2a≤p≤1/2.
p>1/2q(p)=−q(1−p)
Voltar ao estojo em questão
O exemplo acima já fornece o suficiente para fornecer uma expressão de forma fechada. Tudo o que precisamos é dividir em dois casosepara determinar qual desempenha o papel de e qual desempenha o papel de acima. (O fator 2 aqui é apenas para compensar as divisões por dois na definição de .)|sinx|≥|cosx||sinx|<|cosx|2a2bP¯¯¯¯(x)
Para , em, Definimos e e obter
e emos papéis se invertem. Da mesma forma, parap<1/2|sinx|≥|cosx|a=|sinx|/2b=|cosx|/2
qx(p)=q(p;a,b)+12(sinx+cosx),
|sinx|<|cosx|p≥1/2
qx(p)=−q(1−p;a,b)+12(sinx+cosx),
Os quantis
Abaixo estão dois mapas de calor. O primeiro mostra os quantis da distribuição de para uma grade de vai de a . O coordenado fornece a probabilidade associada a cada quantil. As cores indicam o valor do quantil, com vermelho escuro indicando valores muito grandes (positivos) e azul escuro indicando grandes valores negativos. Assim, cada faixa vertical é um gráfico quantil (marginal) associado a .P(x)x02πypP(x)
O segundo mapa de calor abaixo mostra os quantis em si, coloridos pela probabilidade correspondente. Por exemplo, escuro vermelho corresponde a e corresponde azul escuro para e . Ciano é aproximadamente e . Isso mostra mais claramente o suporte de cada distribuição e a forma.p=1/2p=0p=1p=1/4p=3/4
Algum R
código de amostra
A função qproc
abaixo calcula a função quantil de para um dado . Ele usa o mais geral para gerar os quantis.P(x)xqtrap
# Pointwise quantiles of a random process:
# P(x) = a_1 sin(x) + a_2 cos(x)
# Trapezoidal distribution quantile
# Assumes X = U + V where U~Uni(-a,a), V~Uni(-b,b) and a >= b
qtrap <- function(p, a, b)
{
if( a < b) stop("I need a >= b.")
s <- 2*(p<=1/2) - 1
p <- ifelse(p<= 1/2, p, 1-p)
s * ifelse( p < b/2/a, sqrt(8*a*b*p)-a-b, (2*p-1)*a )
}
# Now, here is the process's quantile function.
qproc <- function(p, x)
{
s <- abs(sin(x))
c <- abs(cos(x))
a <- ifelse(s>c, s, c)
b <- ifelse(s<c, s, c)
qtrap(p,a/2, b/2) + 0.5*(sin(x)+cos(x))
}
Abaixo está um teste com a saída correspondente.
# Test case
set.seed(17)
n <- 1e4
x <- -pi/8
r <- runif(n) * sin(x) + runif(n) * cos(x)
# Sample quantiles, then actual.
> round(quantile(r,(0:10)/10),3)
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
-0.380 -0.111 -0.002 0.093 0.186 0.275 0.365 0.453 0.550 0.659 0.917
> round(qproc((0:10)/10, x),3)
[1] -0.383 -0.117 -0.007 0.086 0.178 0.271 0.363 0.455 0.548
[10] 0.658 0.924