我有一个包含变量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)时,这些图形具有几乎相同的形状,只是比例因子产生最大的差异。有没有办法测试两种情节形状的密切关系?
答案 0 :(得分:2)
如果plot(x,y1)
的形状与plot(x,y2)
相似,那么y1
和y2
应该彼此相似。您可以计算它们之间的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!
答案 1 :(得分:-1)
您能否向我们提供您的数据样本和/或您要比较的两个图表?首先想到的是Kolmogorov-Smirnov测试(可用于比较两个分布)和动态导数时间扭曲(可用于比较两个时间序列)。两者都可以在R(ks.test和dtw包)中使用。