我有两个数组。例如第一个是A,第二个是B:
A<-c(2,5,6,10,11) B<-c(13,2,6,8,12)
我也有常数 teta=1。我做了一个数组:
D=B-teta
A和D之间的相关系数
koeff<-cor(A,D)
挑战是通过改变常数 teta 使 koeff 达到最大值。据我了解,我可以使用 nloptr 库。我应该如何使用它?
此致!
PS我用求解器一般减少梯度在excel中完成了这项工作。我在R中没有找到这个函数。
我有两个数组。例如第一个是A,第二个是B:
A<-c(2,5,6,10,11) B<-c(13,2,6,8,12)
我也有常数 teta=1。我做了一个数组:
D=B-teta
A和D之间的相关系数
koeff<-cor(A,D)
挑战是通过改变常数 teta 使 koeff 达到最大值。据我了解,我可以使用 nloptr 库。我应该如何使用它?
此致!
PS我用求解器一般减少梯度在excel中完成了这项工作。我在R中没有找到这个函数。
log(B+ϑ)
不改变顺序的插图。
> # ranks for different theta
> theta <- -1; rank(log(B+theta))
[1] 5 1 2 3 4
> theta <- 3; rank(log(B+theta))
[1] 5 1 2 3 4
> theta <- 10; rank(log(B+theta))
[1] 5 1 2 3 4
> # theta=-2 is a border case: we get -infinity
> theta=-2; log(B+theta)
[1] 2.397895 -Inf 1.386294 1.791759 2.302585
> rank(log(B+theta))
[1] 5 1 2 3 4
>
因此,所有 Spearman 相关性都应该相同:
> A <- c(2,5,6,10,11)
> cor(A,B,method="spearman")
[1] 0
> theta <- -1; cor(A,log(B+theta),method="spearman")
[1] 0
> theta <- 3; cor(A,log(B+theta),method="spearman")
[1] 0
> theta <- 10; cor(A,log(B+theta),method="spearman")
[1] 0
> theta <- -2; cor(A,log(B+theta),method="spearman")
[1] 0
>