データがログの正規分布に適合するかどうかを確認するにはどうすればよいですか?


11

Rデータが対数正規分布またはパレート分布に適合しているかどうかを確認したい。どうすればできますか?おそらくks.test私はそれを行うのに役立つでしょうが、私のデータのパレート分布のおよびパラメータをどのように取得できますか?αk


最後の質問については、stats.stackexchange.com
questions /

回答:


6

...そこに「regression」タグがあることに気づきました。回帰問題がある場合、応答の1変量分布を見て分布の形状を評価することはできません。これは、xのパターンに依存するためです。ある種の回帰またはGLMの応答(y)変数に対数正規分布またはパレート分布があり、観測間で平均が異なるかどうかを確認する場合、それは非常に異なる質問です(ただし、基本的に同様の種類の分析になります)残差について)。それが回帰問題であるかどうかを明確にしていただけませんか。現在、私の答えは、単変量対数正規またはパレートの評価に関するものです。

そこにはまったく異なる質問があります。

データがログの正規分布に適合するかどうかを確認するにはどうすればよいですか?

ログを取り、通常のQQプロットを行います。ディストリビューションが目的に十分近いかどうかを確認します。

データが対数正規分布またはパレート分布に適合するかどうかをRにチェックインしたい

あなたが考えるどのディストリビューションも正確な説明ではないことを最初から受け入れてください。あなたは合理的なモデルを探しています。つまり、サンプルサイズが小さい場合、妥当なオプションを拒否することはできませんが、サンプルサイズが十分であれば、すべてを拒否することになります。さらに悪いことに、サンプルサイズが大きいと、まともなモデルを完全に拒否しますが、サンプルサイズが小さいと、悪いモデルを拒否しません。

このようなテストは、モデルを選択するうえで実際に役立つわけではありません。

要するに、あなたの興味のある質問-「このデータの良いモデルとは何か、その後の推論を有用にするのに十分近いものは何か」のようなものです。適合度テストでは単に答えられません。ただし、場合によっては、適合度の統計(それらに基づく拒否ルールから得られる決定ではなく)が、特定の種類の適合度の欠如の有用な要約を提供する場合があります。

おそらくks.testがそれを助けるかもしれません

いいえ。最初に、今述べた問題があります。次に、コルモゴロフ-スミルノフ検定は、完全に指定された分布の検定です。あなたはそれらの1つを持っていません。

多くの場合、QQプロットと同様の表示をお勧めします。このような正しいスキューの場合、私はログを処理する傾向があります(ログノーマルは通常に見え、パレートは指数的に見えます)。適切なサンプルサイズでは、データが指数関数よりも正常に近いか、またはその逆かを視覚的に区別することは難しくありません。まず、それぞれから実際のデータを取得してプロットします-少なくとも6ダースのサンプルを言うと、それらがどのように見えるかがわかります。

以下の例をご覧ください

データのパレート分布のalphaおよびkパラメータを取得するにはどうすればよいですか?

パラメータを推定する必要がある場合は、MLE ...を使用してください。ただし、パレートと対数正規のどちらかを決定するためにそれを行わないでください。

これらのうちどれが対数正規で、どれがパレートであるかわかりますか?

ここに画像の説明を入力してください

通常のQQプロット(左の列)では、データセット1のログがかなり直線を示しているのに対し、データセット2は正しい歪度を示していることに注意してください。指数プロットでは、データセット1の対数は指数よりも明るい右裾を示しますが、データセット2はかなり直線を示します(モデルが正しい場合でも、右裾の値は少し揺らぐ傾向があります。これはヘビーテールでは異常ではありません。これは、プロットが通常どのように見えるかを確認するために、見ているサンプルと同じサイズのいくつかのサンプルをプロットする必要がある理由の1つです)

これらの4つのプロットを行うために使用されるコード:

qqnorm(log(y1))
qqnorm(log(y2))
qex <- function(x) qexp((rank(x)-.375)/(length(x)+.25))
plot(qex(y1),log(y1))
plot(qex(y2),log(y2))

回帰タイプの問題(平均が他の変数によって変化する問題)がある場合、実際には、平均に適したモデルが存在する場合に、どちらかの分布仮定の適合性しか評価できません。


3

もちろん、これはモデルの選択の問題です。データが一方のモデルから来たか、もう一方のモデルから来たのかを確認したいだけで、分布の無限次元の海から適切なモデルを見つけることが目標ではない場合を想定しています。したがって、1つのオプションはAICを使用することです(これは、AIC値が最も低いモデルを優先するため、ここでは説明しません)。シミュレートされたデータを使用した次の例を見てください。

rm(list=ls())

set.seed(123)
x = rlnorm(100,0,1)

hist(x)

# Loglikelihood and AIC for lognormal model

ll1 = function(param){
if(param[2]>0) return(-sum(dlnorm(x,param[1],param[2],log=T)))
else return(Inf)
}

AIC1 = 2*optim(c(0,1),ll1)$value + 2*2

# Loglikelihood and AIC for Pareto model

dpareto=function(x, shape=1, location=1) shape * location^shape / x^(shape + 1)

ll2 = function(param){
if(param[1]>0 & min(x)> param[2]) return(-sum(log(dpareto(x,param[1],param[2]))))
else return(Inf)
}


AIC2 = 2*optim(c(1,0.01),ll2)$value + 2*2

# Comparison using AIC, which in this case favours the lognormal model.

 c(AIC1,AIC2)

1

多分fitdistr()?

ここに画像の説明を入力してください

require(MASS)
hist(x, freq=F)
fit<-fitdistr(x,"log-normal")$estimate
lines(dlnorm(0:max(x),fit[1],fit[2]), lwd=3)


> fit
meanlog     sdlog 
3.8181643 0.1871289 



> dput(x)
c(52.6866903145324, 39.7511298620398, 50.0577071855833, 33.8671245370402, 
51.6325665911116, 41.1745418750494, 48.4259060939127, 67.0893697776377, 
35.5355051232044, 44.6197404834786, 40.5620805256951, 39.4265590077884, 
36.0718655240496, 56.0205581625823, 52.8039852992611, 46.2069383488226, 
36.7324212941395, 44.7998046213554, 47.9727885542368, 36.3400338997286, 
32.7514839453244, 50.6878893947656, 53.3756089181472, 39.4769689441593, 
38.5432770167907, 62.350999487007, 44.5140171935881, 47.4026606915147, 
57.3723511479393, 64.4041641945078, 51.2286815562554, 60.4921839777139, 
71.6127652225805, 40.6395409719693, 48.681036613906, 52.3489622656967, 
46.6219563536878, 55.6136160469819, 62.3003761050482, 42.7865905767138, 
50.2413659137295, 45.6327941365187, 46.5621907725798, 48.9734785224035, 
40.4828649022511, 59.4982559591637, 42.9450436744074, 66.8393386407167, 
40.7248473206552, 45.9114242834839, 34.2671010054407, 45.7569869970351, 
50.4358523486278, 44.7445606782492, 44.4173298921541, 41.7506552050873, 
34.5657344132409, 47.7099864540652, 38.1680974794929, 42.2126680994737, 
35.690599714042, 37.6748157160789, 35.0840798650981, 41.4775827114607, 
36.6503753230464, 42.7539062488003, 39.2210050689652, 45.9364763482558, 
35.3687017955285, 62.8299659875044, 38.1532612008011, 39.9183076516292, 
59.0662388169057, 47.9032427690417, 42.4419580084314, 45.785859495192, 
59.5254284342724, 47.9161476636566, 32.6868959277799, 30.1039453246766, 
37.7606323857655, 35.754797368422, 35.5239777126187, 43.7874313667592, 
53.0328404605954, 37.4550326357314, 42.7226751172495, 44.898430515261, 
59.7229655935187, 41.0701258705001, 42.1672231656919, 60.9632847841197, 
60.3690132883734, 45.6469334940722, 39.8300067022836, 51.8185235060234, 
44.908828102875, 50.8200011497451, 53.7945569828737, 65.0432670527801, 
49.0306734716282, 35.9442821219144, 46.8133296904456, 43.7514416949611, 
43.7348972849838, 57.592040060118, 48.7913517211383, 38.5555058596449
)

1
このソリューションはが収まるデータに対数正規を、それは教えてくれないフィット感が何か良いですかパレートがより良い選択であるかどうか。
whuber
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.