回答:
1つのオプションは、任意の連続確率変数場合、が[0、1]で均一(長方形)であるという事実を利用することです。次に、逆CDFを使用した2番目の変換で、目的の分布を持つ連続確率変数を生成できます。ここでは、カイ2乗から正規への変換について特別なことは何もありません。@Glen_bは彼の答えに詳細を持っています。F X(X )
奇妙で素晴らしいことをしたい場合は、これらの2つの変換の間に、[0、1]の均一変数を[0、1]の他の均一変数にマッピングする3番目の変換を適用できます。例えば、、又はいずれかについてであっても、又はためおよび for。 U ↦ U + 0.5 U ∈ [ 0 、0.5 ] U ↦ 1 - U U ∈ (0.5 、1 ]
しかし、 からへの単調変換が必要な場合は、対応する分位数を相互にマッピングする必要があります。網掛けされた十分位数を含む次のグラフは、ポイントを示しています。ゼロに近い密度の表示を遮断する必要があったことに注意してください。 Y 〜N(0 、1 )χ 2 1
単調に増加する変換、つまり濃い赤から濃い赤へのマッピングなどでは、ます。濃い赤から濃い青にマッピングする単調減少変換の場合、逆CDFを適用する前にマッピング使用できるため、。増加する変換のと関係は次のようになります。これは、左端にカイ2乗分布の分位がどのようにまとめられたかの手掛かりにもなります。U ↦ 1 - U Y = Φ - 1(1 - Fは、χ 2 1(X ))X Y
で平方根変換をサルベージする場合、1つのオプションはRademacherランダム変数を使用することです。Rademacher分布は離散的で、 W P(W = - 1 )= P(W = 1 )= 1
これは基本的に、ベルヌーイで、2の倍率でストレッチしてから1を引くことで変換されています。これで、が標準法線になります—実際には、正のルートを取るか負のルートを取るかをランダムに決定しています! W√
だけではなく変換なので、これは少し不正です。しかし、それは質問の精神のようであり、Rademacher変数のストリームは生成するのに十分簡単なので、言及する価値があると思いました。ちなみに、とは、相関しないが従属の正規変数のもう1つの例です。これは、元の十分位がどこにマッピングされるかを示すグラフです。ゼロの右側は、左側は。ゼロ付近の値が低い値からマッピングされ、テール(左端と右端の両方)がの大きな値からマッピングされることに注意してください。。
プロットのコード(このStack Overflowの投稿も参照):
require(ggplot2)
delta <- 0.0001 #smaller for smoother curves but longer plot times
quantiles <- 10 #10 for deciles, 4 for quartiles, do play and have fun!
chisq.df <- data.frame(x = seq(from=0.01, to=5, by=delta)) #avoid near 0 due to spike in pdf
chisq.df$pdf <- dchisq(chisq.df$x, df=1)
chisq.df$qt <- cut(pchisq(chisq.df$x, df=1), breaks=quantiles, labels=F)
ggplot(chisq.df, aes(x=x, y=pdf)) +
geom_area(aes(group=qt, fill=qt), color="black", size = 0.5) +
scale_fill_gradient2(midpoint=median(unique(chisq.df$qt)), guide="none") +
theme_bw() + xlab("x")
z.df <- data.frame(x = seq(from=-3, to=3, by=delta))
z.df$pdf <- dnorm(z.df$x)
z.df$qt <- cut(pnorm(z.df$x),breaks=quantiles,labels=F)
ggplot(z.df, aes(x=x,y=pdf)) +
geom_area(aes(group=qt, fill=qt), color="black", size = 0.5) +
scale_fill_gradient2(midpoint=median(unique(z.df$qt)), guide="none") +
theme_bw() + xlab("y")
#y as function of x
data.df <- data.frame(x=c(seq(from=0, to=6, by=delta)))
data.df$y <- qnorm(pchisq(data.df$x, df=1))
ggplot(data.df, aes(x,y)) + theme_bw() + geom_line()
#because a chi-squared quartile maps to both left and right areas, take care with plotting order
z.df$qt2 <- cut(pchisq(z.df$x^2, df=1), breaks=quantiles, labels=F)
z.df$w <- as.factor(ifelse(z.df$x >= 0, 1, -1))
ggplot(z.df, aes(x=x,y=pdf)) +
geom_area(data=z.df[z.df$x > 0 | z.df$qt2 == 1,], aes(group=qt2, fill=qt2), color="black", size = 0.5) +
geom_area(data=z.df[z.df$x <0 & z.df$qt2 > 1,], aes(group=qt2, fill=qt2), color="black", size = 0.5) +
scale_fill_gradient2(midpoint=median(unique(z.df$qt)), guide="none") +
theme_bw() + xlab("y")
[ まあ、私はあると思った重複を見つけることができませんでした。私が来た最も近いのは、この回答の終わりに向けての事実の言及でした。(それはいくつかの質問のコメントでのみ議論された可能性がありますが、おそらく重複があり、私はそれを逃しました。)結局、ここで答えをあげます。]
場合カイ二乗となるのCDFとして、そして通常の累積分布関数であり、次いで、正常です。確率積分変換は均一になり、は正常であるため、これは明らかです。したがって、カイ2乗から標準への単調な変換があります。F
同じトリックが任意の2つの連続変数で機能します。
これは、「無相関の正規Y、Z二変量正規ですか?」という質問のさまざまなバージョンの端正な反例を示しています。Zが標準法線で場合、はどちらも正常であり、無相関ですが、確実に依存している(そしてかなりかなり二変量の関係がある)
変換:
値の大きなサンプルのヒストグラム: