如何检查两个图在R中是否具有相同的形状?

时间:2015-03-07 17:39:02

标签: r plot ggplot2 shape

我有一个包含变量x,y1和y2的数据集。

如果我绘制(x,y1)和绘图(x,y2),绘图看起来几乎相同,但我想测量它们的相似程度。它有功能或测量吗?这可能在R?只有情节的形状很重要。

编辑澄清:

x<-c(1,2,3,4,5)
y1<-c(10,20,30,40,50)
y2<-c(101,201,301,401,501)

现在当您绘制(x,y1)和绘图(x,y2)时,这些图形具有几乎相同的形状,只是比例因子产生最大的差异。有没有办法测试两种情节形状的密切关系?

2 个答案:

答案 0 :(得分:2)

如果plot(x,y1)的形状与plot(x,y2)相似,那么y1y2应该彼此相似。您可以计算它们之间的correlation

相关性从+1(两个图都相同)到-1(它们相反)。如果为0,则表示没有关系。

以下是一个例子:

set.seed(0) # seed to random number generation, to reproduce examples

x <- runif(50)
y1 <- x^2 + runif(50,-.1,.1)
y2 <- x^2 + runif(50,-.1,.1)
y3 <- runif(50) # unrelated to x

par(mfrow=c(2,3))
plot(x,y1)
plot(x,y2)
plot(y1,y2)
plot(x,y3)
plot(y1,y3)
plot(y2,y3)

# Compute correlations
cor(y1,y2)
# 0.9642746 <- high correlation
cor(y1, y3)
# -0.05674353 <- like random!

enter image description here

答案 1 :(得分:-1)

您能否向我们提供您的数据样本和/或您要比较的两个图表?首先想到的是Kolmogorov-Smirnov测试(可用于比较两个分布)和动态导数时间扭曲(可用于比较两个时间序列)。两者都可以在R(ks.test和dtw包)中使用。

相关问题