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.  
     
  3.  
    One-sample Kolmogorov-Smirnov test
  4.  
     
  5.  
    data: X
  6.  
    D = 0.068182, p-value = 0.8079
  7.  
    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

原文地址:https://www.cnblogs.com/tecdat/p/13501245.html