給与などのデータがRの連続指数分布からのものであるかどうかを確認するにはどうすればよいですか?
これが私のサンプルのヒストグラムです。
。どんな助けも大歓迎です!
給与などのデータがRの連続指数分布からのものであるかどうかを確認するにはどうすればよいですか?
これが私のサンプルのヒストグラムです。
。どんな助けも大歓迎です!
回答:
まず、rate
を使用して唯一の分布パラメーターを推定しますfitdistr
。分布が適合するかどうかはわかりませんので、適合度テストを使用する必要があります。これには、次を使用できますks.test
。
require(vcd)
require(MASS)
# data generation
ex <- rexp(10000, rate = 1.85) # generate some exponential distribution
control <- abs(rnorm(10000)) # generate some other distribution
# estimate the parameters
fit1 <- fitdistr(ex, "exponential")
fit2 <- fitdistr(control, "exponential")
# goodness of fit test
ks.test(ex, "pexp", fit1$estimate) # p-value > 0.05 -> distribution not refused
ks.test(control, "pexp", fit2$estimate) # significant p-value -> distribution refused
# plot a graph
hist(ex, freq = FALSE, breaks = 100, xlim = c(0, quantile(ex, 0.99)))
curve(dexp(x, rate = fit1$estimate), from = 0, col = "red", add = TRUE)
私の個人的な経験から(どこでも公式に見つけたことはありませんが、確認または修正してください)、ks.test
最初にパラメーターの推定値を指定した場合にのみ実行されます。たとえば、パラメータを自動的に推定させることはできませんgoodfit
。だからこそ、この2段階の手順が必要になりますfitdistr
。
詳細については、Ricciの優れたガイドを参照してください:Rによる分布の適合。
通常、診断プロット(QQプロットなど)を使用して指数関数をチェックすることをお勧めしますが、テストが必要になることが多いため、テストについて説明します。
Tomasが示唆しているように、コルモゴロフ-スミルノフ検定は、指定されていないパラメーターを使用した指数性の検定には適していません。
ただし、パラメーター推定用にテーブルを調整すると、指数分布のリリーフォース検定が得られます。
Lilliefors、H。(1969)、「平均未知数の指数分布のコルモゴロフ–スミルノフ検定について」、Journal of the American Statistical Association、Vol。64 pp。387–389。
このテストの使用については、ConoverのPractical Nonparametric Statisticsで説明されています。
ただし、D'Agostino&StephensのGoodness of Fit Techniquesでは、Anderson-Darlingテストの同様の修正について説明しています(私が正しいことを思い出すと、やや斜めですが、指数関数的なケースのアプローチ方法に関するすべての必要な情報は本で見つけることができます)、そしてそれは面白い選択肢に対してより多くの力を持っていることはほぼ確実です。
同様に、に基づいてテストを行うことにより、Shapiro-Francia検定(Shapiro-Wilkに似ていますが、より簡単です)のようなものを推定できます。ここで、は次数統計と指数スコア間の相関です(予想される指数順序統計)。これは、QQプロットで相関をテストすることに相当します。r
最後に、1がかかる場合がありますスムーズなテスト・レイナー&ベスト(の本のように、アプローチを適合度の検定滑らかな -私はより最近のものがあります信じているものの、「Thasとして、1990年Rでタイトルに追加します」)。指数関数的ケースも以下でカバーされています:
JCW Rayner and DJ Best(1990)、「Smooth Tests of Goodness of Fit:An Overview」、 International Statistics Review、Vol。58、No。1(1990年4月)、9〜17ページ
コスマ・シャリッチはまた彼の1章の円滑なテストを論じ学部高度なデータ分析の 講義ノート、または彼の本のCH15参照ビューの基本ポイントから高度なデータ分析を。
上記のいくつかでは、検定統計量の分布をシミュレートする必要がある場合があります。他のテーブルも使用可能です(ただし、一部のケースでは、元のシミュレーションサイズが限られているため、とにかくシミュレートする方が簡単かもしれませんし、Lillieforsテストのように自分自身をシミュレートする方がより正確かもしれません)。
これらのすべてのうち、シャピロ-フランシアに相当する指数関数的なものを実行することを好みます(つまり、QQプロットで相関をテストします[または、テーブルを作成している場合は、、これは同じケースを拒否します]-より良いテストと競争するのに十分強力である必要がありますが、非常に簡単で、QQプロットの視覚的外観に満足のいく対応があります。必要に応じて、相関とp値をプロットに追加することを選択します)。
qq-plotを使用できます。qq-plotは、2つの確率分布の分位を相互にプロットすることにより、2つの確率分布を比較するためのグラフィカルな方法です。
Rでは、指数分布(特に基本関数)専用のすぐに使用可能なqqプロット関数はありません。ただし、これは使用できます。
qqexp <- function(y, line=FALSE, ...) {
y <- y[!is.na(y)]
n <- length(y)
x <- qexp(c(1:n)/(n+1))
m <- mean(y)
if (any(range(y)<0)) stop("Data contains negative values")
ylim <- c(0,max(y))
qqplot(x, y, xlab="Exponential plotting position",ylim=ylim,ylab="Ordered sample", ...)
if (line) abline(0,m,lty=2)
invisible()
}
結果の解釈中:比較される2つの分布が類似している場合、qqプロットの点はほぼy = x線上にあります。分布が線形に関連している場合、qqプロットの点はほぼ直線上にありますが、必ずしも直線y = x上にはありません。
qexp
、SSCからの実装は缶詰です。