データから分布を推定する


12

で生成されRたデータのサンプルがありますrnorm(50,0,1)ので、データは明らかに正規分布を取ります。ただし、Rデータに関するこの分布情報を「認識」していません。

Rサンプルがどのような分布に由来するかを推定できる方法はありますか?そうでない場合は、shapiro.test関数を使用してその方法で進めます。


この質問の結果を認識しているかどうかはわかりません。Rに数値のベクトルがある場合、それに関連付けられたメタデータはそれほど多くないのは事実ですが、なぜそれが面倒なのでしょうか。なぜあなたはそれが必要なのか、それで何をしたいのか?そのようなものがあると仮定すると、ガウスデータとその他の特定のメソッドを使用してそのベクトルを関数に渡す場合にのみ役立ちます。私は何も知りません(私は世界で最も専門的なRユーザーではありませんが)。
GUNG -復活モニカ

特定のサンプルが正常に見えるかどうかをテストするだけの場合、Shapiro-Wilkテストは適切なオプションです(ただし、この質問とそこに示された回答を読むのは価値があります)。シミュレーションスタディでこれがどのように発生するかはわかりますが、スタディの詳細がなければ、役に立つ答えを出すのは困難です。
GUNG -復活モニカ

なぜデータの分布を特定する必要があるのですか?多くの場合、自動配布の選択は魅力的なアイデアですが、それは良いアイデアではありません。
Glen_b -Reinstateモニカ

回答:


21

fitdistr機能がありますMASSパッケージまたはfitdistrplusパッケージ内の関数の一部があります。後者の例を次に示します。

require(fitdistrplus)

set.seed(1)
dat <- rnorm(50,0,1)
f1 <- fitdist(dat,"norm")
f2 <- fitdist(dat,"logis")
f3 <- fitdist(dat,"cauchy")

例えば

> f1
Fitting of the distribution ' norm ' by maximum likelihood 
Parameters:
      estimate Std. Error
mean 0.1004483 0.11639515
sd   0.8230380 0.08230325

そして、あなたはでプロットを見ることができます

plotdist(dat,"norm",para=list(mean=f1$estimate[1],sd=f1$estimate[2]))
plotdist(dat,"logis",para=list(location=f2$estimate[1],scale=f2$estimate[2]))
plotdist(dat,"cauchy",para=list(location=f3$estimate[1],scale=f3$estimate[2]))

正規分布としてもっともらしい

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

おそらくロジスティック分布としても(尾でそれらを区別するためにより大きなサンプルが必要になります)

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

ただし、qqplotでCDFを見ると、これはおそらくコーシー分布ではないことがわかります。

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


1
ヘンリー、素敵な概要をありがとう。データを取り込み、どのディストリビューション(およびパラメーター)が最適に吐き出すパッケージがあるかを尋ねられました。パッケージのそのような機能を知っていますか?
ロマンルシュトリック

3
fitdistパラメータの推定値を提供します。分布がどのような関数からのものであるかについていくつかのヒントがありますがdescdist(dat, boot = 1000)、それらもまた、より大きなサンプルから恩恵を受けるでしょう。
ヘンリー

これらの関数はいずれも、サンプルが代表的でないときに最後の質問で提起した問題を解決しません。
ジョン

1
@スコットカイザー:そうは思いません。 fitdist()は、fitdistrplusパッケージの関数であり、これが私が使用していたものです。一方fitdistr()、MASSパッケージの関数であり、この形式ではここでは機能しません。
ヘンリー14年

1
これをコメントとして追加するのに十分なポイントはありませんが、上記のスレッドで提供される情報への追加メモとしてplot(f1)、より複雑な代わりに単に呼び出すことも可能ですplotdist(dat,"norm",para=list(mean=f1$estimate[1],sd=f1$estimate[2]))
-swestenb
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.