位数のための閉じた形の式


16

2つのランダム変数、があり、は一様な0-1分布です。αi∼iid U(0,1),i=1,2U(0,1)

次に、これらはプロセスを生成します:

P(x)=α1sin⁡(x)+α2cos⁡(x),x∈(0,2π)

今、私はの与えられたのの理論的な75パーセント分位の閉形式表現があるかどうか疑問に思っていました --iコンピューターと多くの実現でそれができると仮定しますが、私は閉じた形を好むでしょう-。F−1(P(x);0.75)P(x)x∈(0,2π)P(x)


1
とは統計的に独立していると仮定したいと思います。12
— マイケルR.チャーニック

@Procrastinator:これを答えとして書くことができますか?
— user603

4
(+1)「プロセス」の観点は、ここでは少し赤いニシンのようです。ライト
P(x)=β1sin⁡x+β2cos⁡x+12(sin⁡x+cos⁡x),
ここで、βi=αi−1/2∼U(−1/2,1/2)。次に、各固定xについて、最初の2つの項は台形密度関数を決定し、最後の項は単なる平均オフセットです。台形密度の決意のために、我々は考える必要があるx∈[0,π/2)。
— 枢機

2
数値的にこれは使用することにより簡単に行うことができるquant = function(n,p,x) return( quantile(runif(n)*sin(x)+runif(n)*cos(x),p) )とquant(100000,0.75,1)。

回答:


19

この問題は、台形分布の分位数を見つけることの1つにすぐに減らすことができます。

私たちのように、プロセスを書き換えてみましょう ここで、 U 1及び U 2は IIDである U(- 1 、1 ) ;ランダム変数 そして、対称性により、これは同じ有するマージナルプロセスとして分布 ¯ P(X )= U 1 ⋅を| 1

P(x)=U1⋅12sin⁡x+U2⋅12cos⁡x+12(sin⁡x+cos⁡x),
U1U2U(−1,1) 最初の2つの項は対称台形密度を決定します。これは、これが2つの平均ゼロの一様ランダム変数(一般に、異なる半値幅)の合計であるためです。最後の項はこの密度の並進になり、分位数はこの並進に対して同変です(つまり、シフト分布の分位数は中央分布のシフト分位数です)。
P¯(x)=U1⋅|12sin⁡x|+U2⋅|12cos⁡x|+12(sin⁡x+cos⁡x).

台形分布の分位点

ましょうX 1及びX 2は独立しているU(- 、)及びU(- B 、B )の分布。一般性を失うことなく想定≥ B。次に、Yの密度は、X 1とX 2の密度を畳み込むことによって形成されます。これは容易に頂点を有する台形であることが示されている(- AY=X1+X2X1X2U(−a,a)U(−b,b)a≥bYX1X2、(− a + b 、1 / 2 a )、(a − b 、1 / 2 a )および(a + b 、0 )。(−a−b,0)(−a+b,1/2a)(a−b,1/2a)(a+b,0)

分布の分位いずれかのために、P < 1 / 2は、このように、ある Q (P ):= Q (PYp<1/2

q(p):=q(p;a,b)={8abp−(a+b),p<b/2a(2p−1)a,b/2a≤p≤1/2.
p>1/2q(p)=−q(1−p)

手元のケースに戻る

|sin⁡x|≥|cos⁡x||sin⁡x|<|cos⁡x|2a2bP¯(x)

p<1/2|sin⁡x|≥|cos⁡x|a=|sin⁡x|/2b=|cos⁡x|/2

qx(p)=q(p;a,b)+12(sin⁡x+cos⁡x),
|sin⁡x|<|cos⁡x|p≥1/2
qx(p)=−q(1−p;a,b)+12(sin⁡x+cos⁡x),

変位値

P(x)x02πypP(x)

xの関数としての分位点

p=1/2p=0p=1p=1/4p=3/4

分位点プロット

サンプルRコード

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

以下は、対応する出力のテストです。

# 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

3
もっと賛成できたらいいな。これが私がこのウェブサイトを愛する理由です:専門化の力。台形の分布を知りませんでした。これを理解するには少し時間がかかりました。または、ユニフォームの代わりにガウス分布を使用して解決する必要がありました。とにかく、それは素晴らしいです。
— user603
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.