如何基于RMSE计算精度度量?我的大型数据集是否呈正态分布?


9

我有几千个点的数据集。每个数据集中的值是X,Y,Z,表示空间中的坐标。Z值表示坐标对(x,y)处的高程差。

通常在我的GIS领域,通过将地面真点减去一个测量点(LiDAR数据点)在RMSE中引用高程误差。通常至少使用20个地面检查点。使用此RMSE值,根据NDEP(国家数字高程指南)和FEMA指南,可以计算出准确度:准确度= 1.96 * RMSE。

该精度表示为:“基本垂直精度是可以对数据集之间的垂直精度进行公平评估和比较的值。基本精度是在95%置信水平下计算的,是垂直RMSE的函数。”

我了解正态分布曲线下的面积的95%位于1.96 * std.deviation之内,但这与RMSE不相关。

通常,我会问这样一个问题:使用从2个数据集计算出的RMSE,我如何将RMSE与某种精度相关(即我的数据点的95%在+/- X cm内)?另外,如何使用适用于如此大数据集的测试确定我的数据集是否正态分布?什么是正态分布的“足够好”?所有测试的p <0.05还是应该与正态分布的形状匹配?


我在以下论文中找到了关于此主题的一些很好的信息:

http://paulzandbergen.com/PUBLICATIONS_files/Zandbergen_TGIS_2008.pdf


4
小心!您对ks.test的使用不正确。根据帮助页面,您需要使用“ pnorm”而不是“ dnorm”。此外,将比较分布的参数设置为样本本身的平均值和SD会大大增加p值:“如果使用单样本测试,则...中指定的参数必须预先指定,并且不能根据数据。”
whuber

3
好吧,实际上,该公式不会给您一个置信区间:对于它而言,它将太大。估计容差区间确实是一种粗略(但标准)的方法即整个差异人群的中间95%。有充分的理由假设差异将具有正态分布:较大的绝对差异往往与较大的地形坡度有关。假设您的4000点是这些差异的随机样本,为什么不只报告其2.5和97.5个百分位数呢?
Whuber

4
您的数据构成了可以测量的高程的统计样本。当您谈论“准确性”时,您是在宣称您的DEM代表整个海拔高度的紧密程度。在您的情况下,无法通过比较数据集来评估准确性:您必须“现场验证”数据。因此,指南实际上是在讨论两个数据集的相对一致性。最后,正如我之前解释的那样,他们对“置信度”的使用是错误的。我接受您必须在如此糟糕的指导框架内工作,但是您应该知道正确的方法。
Whuber

3
对于您来说,这听起来像是一个有用的问题。因为您尚未收到任何答案,所以为什么不完全编辑当前问题以合并您在这些注释中公开的信息呢?我建议稍微扩大一下范围:在引用指南(以表明您的领域通常使用哪种方法)之后,您可能会普遍问到如何使用海拔高度有序对对的分布来评估准确性(假设一个)数据集的参考)。
whuber

2
全部:更新了我的主要帖子和问题,以反映评论中的更改。
马修·比尔斯基

Answers:


1

使用从2个数据集计算出的RMSE,我如何将RMSE与某种精度相关(即我的数据点的95%在+/- X cm内)?

看一个几乎重复的问题:RMSE的置信区间

我的大型数据集是否呈正态分布?

一个良好的开端将是观察z值的经验分布。这是一个可重现的示例。

set.seed(1)
z <- rnorm(2000,2,3)
z.difference <- data.frame(z=z)

library(ggplot2)

ggplot(z.difference,aes(x=z)) + 
  geom_histogram(binwidth=1,aes(y=..density..), fill="white", color="black") +
  ylab("Density") + xlab("Elevation differences (meters)") +
  theme_bw() + 
  coord_flip()

在此处输入图片说明

乍一看,看起来很正常,对吧?(实际上,我们知道这是正常的,因为rnorm我们使用了该命令)。

如果要分析数据集中的小样本,可以使用Shapiro-Wilk正态性检验。

z_sample <- sample(z.difference$z,40,replace=T)
shapiro.test(z_sample) #high p-value indicates the data is normal (null hypothesis)

    Shapiro-Wilk normality test

data:  z_sample
W = 0.98618, p-value = 0.8984 #normal

您还可以对不同的小样本重复进行多次SW测试,然后查看的分布p-values

请注意,对大型数据集进行正态性测试的作用并不如Greg Snow提供的答案所解释。

另一方面,对于非常大的数据集,中心极限定理开始起作用,对于常见分析(回归,t检验等),您实际上并不关心总体是否为正态分布。

经验法则是做一个qq图并问,这足够正常吗?

因此,让我们做一个QQ图:

#qq-plot (quantiles from empirical distribution - quantiles from theoretical distribution)
mean_z <- mean(z.difference$z)
sd_z <- sd(z.difference$z)
set.seed(77)
normal <- rnorm(length(z.difference$z), mean = mean_z, sd = sd_z)

qqplot(normal, z.difference$z, xlab="Theoretical", ylab="Empirical")

在此处输入图片说明

如果点在y=x直线上对齐,则意味着经验分布与理论分布匹配,在这种情况下为正态分布。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.