1. 程式人生 > 實用技巧 >R語言使用蒙特卡洛模擬進行正態性檢驗及視覺化

R語言使用蒙特卡洛模擬進行正態性檢驗及視覺化

原文連結:http://tecdat.cn/?p=14601

如何使用蒙特卡洛模擬來推導隨機變數可能的分佈,我們回到統計資料(無協變數)進行說明。我們假設觀察值是基礎隨機變數,具有未知分佈的隨機變數。

這裡有兩種策略。在經典統計中,我們使用概率定理來推導隨機變數的屬性在可能的情況下的分佈。另一種方法是進行計算統計。

對於評估擬合度,測試正態性不是很有用。在本文中,我想說明這一點。我們使用男生的身高資料,

X=Davis$height[Davis$sex=="M"]

我們可以視覺化其分佈(密度和累積分佈)

  1. u=seq(155,205,by=.5)
  2. par(mfrow=c(1,2))
  3. hist(X,col=rgb(0,0,1,.3))
  4. lines(density(X),col="blue",lwd=2)
  5. lines(u,dnorm(u,178,6.5),col="black")
  6. Xs=sort(X)
  7. n=length(X)
  8. p=(1:n)/(n+1)
  9. plot(Xs,p,type="s",col="blue")
  10. lines(u,pnorm(u,178,6.5),col="black")

它看起來像正態分佈,因此我們可以在左側新增密度高斯分佈,在右側新增cdf。我不想測試它是否是高斯分佈。為了檢視此分佈是否相關,可以使用蒙特卡洛模擬法

我們可以在左側看到很難通過密度(直方圖以及核密度密度估計器)評估正態性 。人們很難想到兩個密度之間的有效距離。但是,如果我們看一下右邊的圖,我們可以比較經驗分佈累積分佈。如上所述,我們可以按照

Cramer-von Mises檢驗或Kolmogorov-Smirnov距離的建議計算黃色區域 。

如果我們抽取10,000個反事實樣本,則可以使用測試統計量等的方法來視覺化距離的分佈(此處為密度),並將其與樣本的觀察值進行比較。測試統計量超過觀察值的樣本比例

  1. mean(dks)
  2. [1] 0.78248

計算版本的值

  1. ks.test(X,"pnorm",178,6.5)
  2. One-sample Kolmogorov-Smirnov test
  3. data: X
  4. D = 0.068182, p-value = 0.8079
  5. alternative hypothesis: two-sided

在統計資料中,要麼操作抽象物件(如隨機變數),要麼實際上使用一些程式碼生成假樣本以量化不確定性。後者很有趣,因為它有助於視覺化複雜的量化。


參考文獻

1.R語言泊松Poisson迴歸模型分析案例

2.R語言進行數值模擬:模擬泊松迴歸模型

3.r語言泊松迴歸分析

4.R語言對布豐投針(蒲豐投針)實驗進行模擬和動態視覺化

5.用R語言模擬混合制排隊隨機服務排隊系統

6.GARCH(1,1),MA以及歷史模擬法的VaR比較

7.R語言做複雜金融產品的幾何布朗運動的模擬

8.R語言進行數值模擬:模擬泊松迴歸模型

9.R語言對巨災風險下的再保險合同定價研究案例:廣義線性模型和帕累託分佈Pareto distributions