分享

R语言使用蒙特卡洛模拟进行正态性检验及可视化

 拓端数据 2020-10-15

原文链接:http:///?p=14601


如何使用蒙特卡洛模拟来推导随机变量可能的分布,我们回到统计数据(无协变量)进行说明。我们假设观察值是基础随机变量,具有未知分布的随机变量。

这里有两种策略。在经典统计中,我们使用概率定理来推导随机变量的属性在可能的情况下的分布。另一种方法是进行计算统计。

对于评估拟合度,测试正态性不是很有用。在本文中,我想说明这一点。我们使用男生的身高数据,

X=Davis$height[Davis$sex=="M"]
我们可以可视化其分布(密度和累积分布)

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

它看起来像正态分布,因此我们可以在左侧添加密度高斯分布,在右侧添加cdf。我不想测试它是否是高斯分布。为了查看此分布是否相关,可以使用蒙特卡洛模拟法

 

我们可以在左侧看到很难通过密度(直方图以及核密度密度估计器)评估正态性  。人们很难想到两个密度之间的有效距离。但是,如果我们看一下右边的图,我们可以比较经验分布累积分布。如上所述,我们可以按照Cramer-von Mises  检验或  Kolmogorov-Smirnov  距离的建议计算黄色区域  。

如果我们抽取10,000个反事实样本,则可以使用测试统计量等的方法来可视化距离的分布(此处为密度),并将其与样本的观察值进行比较。测试统计量超过观察值的样本比例


mean(dks)[1] 0.78248

计算版本的值



ks.test(X,"pnorm",178,6.5)

One-sample Kolmogorov-Smirnov test

data: XD = 0.068182, p-value = 0.8079alternative hypothesis: two-sided

在统计数据中,要么操作抽象对象(如随机变量),要么实际上使用一些代码生成假样本以量化不确定性。后者很有趣,因为它有助于可视化复杂的量化。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多