到现在为止,我曾经用来cor
测量点之间的对齐。我对结果、两者之间的值非常满意,-1
并且0
总是能找到我想要的线条。但是,由于此处的答案和评论,我意识到这不是最可靠的方法,因为平线的标准偏差为零,例如:
> cor(1:10, rep(10,10))
[1] NA
Warning message:
In cor(1:10, rep(10, 10)) : the standard deviation is zero
我的目标是定义一个函数,它给出1
完全对齐的点(不管斜率)和更接近0
不对齐的点的值。你会建议比我更强大的方法吗?
编辑:
遵循@Hong Ooi 的建议,我得到了
data1 <- data.frame(date = c(13636, 13636, 14403, 14761, 15201, 15741),
value = c(865310, 999989, 999989, 2, 999989, 26))
data2 <- data.frame(date = c(12667, 12745, 13106, 13276, 13461, 13626),
value = c(1904, 2055, 2740, 3376, 3567, 4099))
m <- cbind(data1$date, data1$value)
sdev <- prcomp(m)$sdev
sdev[1]/sum(sdev)
# 0.9986399
m <- cbind(data2$date, data2$value)
sdev <- prcomp(m)$sdev
sdev[1]/sum(sdev)
# 0.961
然而,我期待一个非常低的价值data1