2016-07-30 282 views
0

我想計算R,其被定義爲計算卡方統計量中的R

總和卡方統計量[(O_i-E_i)^ 2/E_i],其中O_i和E_i是類別i中的概率質量。

但問題是我只有一個變量的經驗累積分佈。假設我有一個向量,我可以計算它的經驗累積分佈,並且我也有一個預測的累積分佈。因此,在R中,如何使用這兩個累積概率來計算卡方統計量?

例如,下面是我使用的代碼,

require(VGAM) 
X <- rpareto(100,1.5,2.5) 
# Empricial distribution of X, P is the true probability 
P <- ecdf(X) 

#MLEs 
scale <- min(X) 
shape <- length(X)/sum(log(X/scale)) 
estimated_prob <- ppareto(X,scale,shape) 

予先模擬100個值分佈帕累託,然後計算極大似然估計,所以我有真實數據和預測的分佈。

+0

感謝您的更新。 –

+0

像http://www.r-tutor.com/elementary-statistics/goodness-fit/chi-squared-test-independence? –

+0

這看起來很有前途,謝謝。但問題是,我沒有這兩個變量,而是有一個變量的兩個概率分佈。在那種情況下,如何做到這一點 – Terry

回答

0

(作爲一個例子說明爲什麼不對這個問題使用卡方檢驗,請參閱我之前評論中引用的CrossValidated.com答案。)estimated_prob和ECDF的結果是「相當不好的關閉「,正如人們期望看到問題的設置一樣。看看這兩個情節:

plot(P(X), estimated_prob) 

enter image description here

這是爲什麼如此接近一條直線? estimated_prob是X_hat(在這裏我使用您創建的模擬X值作爲一個可能實例)的理論概率小於帕累託分佈中的隨機變量X,而P(X)是實際分數(即概率)該樣本中的某個項目小於X.由於P是一個函數,因此我們需要使用P(X)的形式獲得R語言中的numeric結果。

由於帕累託分佈是連續的,爲了得到一個χ2統計量,對2,3,10或20個盒子中的任意值進行任意分箱將是一種相對不精確和任意評估「適合度」的方法。誰來說什麼「正確」的垃圾桶真的應該是什麼?有一個名爲fitdistrplus的非常受歡迎的R程序包,您可能想要通過其小插件進行檢查和工作。

+0

是的,因此我對Kolmogorov-Smirnov測試的建議,但他應該發佈到交叉驗證,因爲有更多像你這樣的人來幫助他。 – aichao

+0

IMO,CV.com上的評論引用答案已經存在,並且不想鼓勵CV上的重複,並且唯一剩下的就是展示R'ecdf'函數如何提供使用KS測試。我認爲這是更具體的R特性,因此適用於SO。 –

+0

明白了。謝謝。 – aichao