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


16

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

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

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

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


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

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

4
(+1)「プロセス」の観点は、ここでは少し赤いニシンのようです。ライト
P(x)=β1sinx+β2cosx+12(sinx+cosx),
ここで、βi=αi1/2U(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 ;ランダム変数 そして、対称性により、これは同じ有するマージナルプロセスとして分布 ¯ PX = U 1 ⋅を| 1

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

台形分布の分位点

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

手元のケースに戻る

|sinx||cosx||sinx|<|cosx|2a2bP¯(x)

p<1/2|sinx||cosx|a=|sinx|/2b=|cosx|/2

qx(p)=q(p;a,b)+12(sinx+cosx),
|sinx|<|cosx|p1/2
qx(p)=q(1p;a,b)+12(sinx+cosx),

変位値

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.