如何计算循环尺度上与参考点的差异?
How to calculate difference from a reference point on a cyclic scale?
当参数的尺度本质上是循环的时候,我一直在研究如何计算参数拟合的误差。
例如,参数 "A" 可以在 0 和 1 之间变化,表示一年的小数部分(即 0 = 1 月 1 日,0.25 = 4 月 1 日,0.5 = 7 月 1 日,0.75 = 10 月 1 日,以及1.0 = 1 月 1 日等)。
如何测量与参考点的差异。在这种情况下,我希望差异为 min/max +- 0.5。
这是一个参考点是 4 月 1 日的示例:
ref <- 0.25 # Apr 1st
val <- c(0.1, 0.3, 0.7, 0.95) # what is the difference from these values to ref
minval <- 0
maxval <- 1
# expected output
c(-0.15, 0.05, 0.45, -0.3)
这是一个想法:
((val-ref + .5) %% 1) - .5
# [1] -0.15 0.05 0.45 -0.30
当参数的尺度本质上是循环的时候,我一直在研究如何计算参数拟合的误差。
例如,参数 "A" 可以在 0 和 1 之间变化,表示一年的小数部分(即 0 = 1 月 1 日,0.25 = 4 月 1 日,0.5 = 7 月 1 日,0.75 = 10 月 1 日,以及1.0 = 1 月 1 日等)。
如何测量与参考点的差异。在这种情况下,我希望差异为 min/max +- 0.5。
这是一个参考点是 4 月 1 日的示例:
ref <- 0.25 # Apr 1st
val <- c(0.1, 0.3, 0.7, 0.95) # what is the difference from these values to ref
minval <- 0
maxval <- 1
# expected output
c(-0.15, 0.05, 0.45, -0.3)
这是一个想法:
((val-ref + .5) %% 1) - .5
# [1] -0.15 0.05 0.45 -0.30