当你看到有关突破性研究的报道时,先不要轻信,要有质疑的态度,因为媒体发表的结论可能未经验证。我们知道,对于R或其他相关软件,只要有输入,就会给出一个结果。但是,仅凭数学上有意义和很高的相关性以及漂亮的R方统计量,是不能认为结论正确的。
为了说明这个问题,请看R中著名的Anscombe数据集。它由统计学家弗朗西斯·安斯库姆(Francis Anscombe)建立,用来强调数据可视化和异常值在数据分析中的重要性。这个数据集有4对X变量和Y变量,它们具有相同的统计特性。但如果将其放在统计图中,就会看到一些极大的差异。我用这个数据集进行内部培训,还教育过那些只盯着统计量而不进行数据探索和假设检验的商业伙伴。如果你有同样的需求,那这个例子就是一个非常好的开始。这只是我们正式建模之前的一个小插曲
可以看到,每对变量都具有相同的相关系数0.816。前两对变量的相关系数如下:
当我们画出这4对变量的统计图时,就能看出问题了,这就是Anscombe这个数据集的设计目的。如下所示:
从代码结果上看,这四组数据都有比较一致的高相关性。但是从四个plot图上,可以看到,Plot 1中呈现的是真正的线性关系,Plot 2是一条曲线,Plot 3有一个危险的离群点,Plot 4则完全被离群点“拐跑了”。看到了吧,说明了仅看相关性有多么危险。
代码如下:
data("anscombe")
attach(anscombe)##attach()在R语言中表示添加路径存储的索引,相当于绑定一个数据框,如果未绑定路径索引,可能导致数据读取错误。
anscombe
cor(x1, y1) #correlation of x1 and y1
cor(x2, y2) #correlation of x2 and y2
cor(x3, y3)
cor(x4, y4)
par(mfrow = c(2,2))
plot(x1, y1, main = "Plot 1")
plot(x2, y2, main = "Plot 2")
plot(x3, y3, main = "Plot 3")
plot(x4, y4, main = "Plot 4")
摘录自: