2010-12-02 4 views
10

モデルフィッティングを使用して、負の二項分布を離散データに適合させました。最後のステップとして、モデルがデータにうまく収まるかどうかを判断するためにKolmogrov-Smirnovテストを実行する必要があるように見えます。私が見つけることができるすべての参考文献は、の場合、通常のデータを対象としています。誰かが、これが通常分散されておらず、離散していないデータに対してRで実行できるかどうか教えてもらえますか? (でも、カイ二乗検定は、私は推測するが、私が間違っている場合は、私を修正してくださいよ行う必要があります。)Kolmogorov-Smirnovまたは分布のカイ2乗検定?

UPDATE:

だから私はvcdパッケージが可能機能goodfitが含まれていることがわかりました次のように、この目的のために使用:

library(vcd) 

# Define the data 
data <- c(67, 81, 93, 65, 18, 44, 31, 103, 64, 19, 27, 57, 63, 25, 22, 150, 
      31, 58, 93, 6, 86, 43, 17, 9, 78, 23, 75, 28, 37, 23, 108, 14, 137, 
      69, 58, 81, 62, 25, 54, 57, 65, 72, 17, 22, 170, 95, 38, 33, 34, 68, 
      38, 117, 28, 17, 19, 25, 24, 15, 103, 31, 33, 77, 38, 8, 48, 32, 48, 
      26, 63, 16, 70, 87, 31, 36, 31, 38, 91, 117, 16, 40, 7, 26, 15, 89, 
      67, 7, 39, 33, 58) 

gf <- goodfit(data, type = "nbinomial", method = "MinChisq") 
plot(gf) 

しかしgf <- ...工程の後に、Rは言って文句を言う:

Warning messages: 
1: In pnbinom(q, size, prob, lower.tail, log.p) : NaNs produced 
2: In pnbinom(q, size, prob, lower.tail, log.p) : NaNs produced 
3: In pnbinom(q, size, prob, lower.tail, log.p) : NaNs produced 
を0

と私はplotを言うとき、それは文句:

data <- <- rnbinom(200, size = 1.5, prob = 0.8) 

すべてが正常に動作します:

Error in xy.coords(x, y, xlabel, ylabel, log) : 
    'x' is a list, but does not have components 'x' and 'y' 

私は、次のようにdataを設定するためならば何が起こっているのかわかりません。助言がありますか?

+6

http://stats.stackexchange.com/に所属 – MSalters

+0

plot(gf)はここで動作します(R 2.12.0、vcdのバージョン1.2-9)。オプションを使用して(warn = 2、error = recover)、警告をエラーに変換し、警告/エラー時にブラウザを起動します。フィッティングプロセスのある時点で、RはNB 'prob'パラメータを負の値にしようとしています... f < - MASS :: fitdistr(data、 "negative binomial");プロット(テーブル(データ)/長さ(データ))。 = 1、from = 170、n = 170、add = TRUE、col = 2)は、データがNBにうまく収まらないことを示しています。これらの2つのケースで$ parを比較すると、合理的に似た回答が得られることがわかります。おそらく警告は無視できるでしょう –

答えて

6

KS-Testは連続変数のみであり、テストする分布を完全に指定する必要があります。あなたはまだそれをやってみたかった場合、それは次のようになります。

ks.test(data, pnbinom, size=100, prob=0.8) 

それは(それはおそらく理にかなって、あなたのデータに依存しているかどうか)指定されたものに対するdataの経験的累積分布関数を比較します。理論的な考慮に基づいてsizeprobのパラメータを選択する必要があります。データに基づいてこれらのパラメータを推定すると、テストは無効です。

goodfit()の問題は、データと関係がある可能性があります。これらは数えますか? barplot(table(data))はほぼ負の二項分布に従っていないようです。たとえば、barplot(table(rnbinom(200, size = 1.5, prob = 0.8)))となります。

最後に、フィッティング後にヌル仮説検定を行う方法が適切かどうかはわかりません。多くのもの(RMSEA、SRMR、...)が存在する$ \ chi^2 $以上に基づいて、定量的な適合尺度を調べることができます。

関連する問題