标签: correlation

具有NaN值的xcorr(用于自相关)

我想自动更新一些数据,但它有一些缺失的值,有没有快速的方法在matlab中做到这一点?如果任何输入是NaN,则xcorr返回NaN数组.

例如

data = [1 2 3 4 NaN 2 3 4 1 2 3 4];
xc = xcorr(data, 'biased');
Run Code Online (Sandbox Code Playgroud)

matlab correlation

1
推荐指数
1
解决办法
1万
查看次数

Oracle,根据其他字段插入相关数字

对不起我的英语不好:

我的查询select date from mytable返回如下内容:

DATE

27/09/2011
27/09/2011
27/09/2011
27/09/2011
28/09/2011
28/09/2011
29/09/2011
29/09/2011
29/09/2011
Run Code Online (Sandbox Code Playgroud)

我还需要我的查询根据每个不同的日期返回相关性.就像是...

DATE         | CORRELATIVE
             |
27/09/2011   | 1
27/09/2011   | 2
27/09/2011   | 3
27/09/2011   | 4
28/09/2011   | 1
28/09/2011   | 2
29/09/2011   | 1
29/09/2011   | 2
29/09/2011   | 3
Run Code Online (Sandbox Code Playgroud)

我需要帮助才能得到它,就像select date, any_way_to_get_it from mytable thk 一样!

sql oracle select correlation

1
推荐指数
1
解决办法
1018
查看次数

不同长度的矢量之间的相关性

如何找到不同长度的矢量之间的相关性?例如:

clear all 
time1 = 1 + (365-1).*rand(1,12);
time2 = 1 + (365-1).*rand(1,24);

data1 = 1 + (20-1).*rand(1,12);
data2 = 1 + (20-1).*rand(1,24);
Run Code Online (Sandbox Code Playgroud)

通常我会发现相关性:

R = corrcoef(data1,data2);
Run Code Online (Sandbox Code Playgroud)

但是矢量需要长度相同!我怎么做到这一点?

matlab correlation

1
推荐指数
1
解决办法
3113
查看次数

将行转换为R中的列以进行统计相关性分析

我试图将列转换为R中的行,而不使用reshape(无法安装包).我收到的数据包括属性及其相应的指标.我想计算所有这些属性之间的统计相关性 - 总共16000个,有800万条记录.并非所有记录都具有相同数量的属性.

为此,我相信我必须将列转换为行,以便最终可以使用cor函数,例如cor(x [,1],x [,2:16000]).如果有某种方法可以通过属性使用cor函数,即属性1和2,属性1和3,属性1 ... N之间的相关性,这可能完全没有必要.任何帮助都将非常感激.

 ID          Attribute  Metric1 
 [1,]  1         1 -1.6363007
 [2,]  2         1  1.1483294
 [3,]  3         1  2.1682566
 [4,]  4         1 -1.1823649
 [5,]  5         1 -1.3631378
 [6,]  1         2 -1.1715544
 [7,]  2         2  1.5164278
 [8,]  3         2 -1.0110274
 [9,]  4         2 -0.9421652
[10,]  5         2 -0.2105443
[11,]  6         2 -0.4143548
[12,]  7         2 -1.6170975
[13,]  8         2  1.2402303
[14,]  9         2  0.4460047
[15,]  7         3  0.1060407
[16,]  8         3  0.9796893
[17,]  9         3  0.9254911
[18,] …
Run Code Online (Sandbox Code Playgroud)

r rows reshape correlation

1
推荐指数
1
解决办法
6996
查看次数

cor.test R错误不兼容的尺寸

我想在R中的数据集中生成年份之间的相关性,但是我不断收到以下错误:

cor.test(y2013$CA,y2011$CA, method="spearman", use="complete")
Run Code Online (Sandbox Code Playgroud)

cor中的错误(x,y,use = use,method = method):不兼容的维度另外:警告消息:在cbind(x,y)中:结果的行数不是向量长度的倍数(arg 2)

y2013和y2011的长度不一样,但是我想通过使用命令"完成"这可以消除这个问题

r correlation

1
推荐指数
1
解决办法
2万
查看次数

R - 查看所有独特列对的最快方法

我有一个数据框,M,我想计算M列之间的所有成对相关性.我可以使用应用函数轻松完成此操作,例如

pvals = laply(M, function(x) llply(M, function(y) cor.test(x, y)$p.value))
Run Code Online (Sandbox Code Playgroud)

然而,这个解决方案正在完成所需工作的2倍,因为x和y之间的相关性与y和x之间的相关性相同.

我正在寻找一种快速,简单的方法来计算独特的列对之间的所有相关性.我希望结果是NxN矩阵,其中N = ncol(M).我已经在Stack Overflow上搜索了很长时间,但找不到任何能做到这一点的东西.谢谢!

r apply plyr lapply correlation

1
推荐指数
1
解决办法
798
查看次数

numpy相关混淆

我想计算2个数组之间的相关性。为此,我想使用NumPy。

numpy.correlate在一个小例子中使用了该函数:

import numpy as np

a = [1, 2, 3]
b = [2, 3, 4]

np.correlate(a, b)
>>> np.array([20])
Run Code Online (Sandbox Code Playgroud)

我真的不知道如何解释这个结果。我想要的是一个介于-1和1之间的数字以表示相关性,其中1表示数组是正相关的,而-1表示数组是负相关的。

我如何获得这个号码?

python numpy correlation

1
推荐指数
1
解决办法
2810
查看次数

cor()缺少值

我想要一个只有相关系数大于0.2的矩阵.我提出了以下解决方案.

mts.data <- ts(data.frame(a=arima.sim(model=list(1,0,0), n=10), 
      b=arima.sim(model=list(1,0,1), n=10), c=arima.sim(model=list(1,0,0), 
      n=10), d=arima.sim(model=list(1,0,2), n=10),
      e=arima.sim(model=list(2,0,1), n=10)), start=c(2007,1), frequency=12)

critcor <- function(x) {
  crit.mat <- matrix(0, nrow=ncol(x), ncol=ncol(x))
  for(j in 1:ncol(x)) {
    for(i in 1:ncol(x)) {
      if(abs(cor(x[,i], x[,j])) > 0.2) {
        crit.mat[i,j] <- cor(x[,i], x[,j])
      }
    }
  }
  return(crit.mat)
}
Run Code Online (Sandbox Code Playgroud)

这很好用.不幸的是,我的数据集包含缺失值.

mts.data[1:3, 4] <- NA
mts.data[9:10, 5] <- NA 
Run Code Online (Sandbox Code Playgroud)

当我运行我的功能时,我收到了一个错误.

critcor(mts.data)
# Error in if (abs(cor(x[, i], x[, j])) > 0.2) { : 
#   missing value where TRUE/FALSE needed 
Run Code Online (Sandbox Code Playgroud)

我现在正在浏览互联网几个小时,我完全不知道如何解决这个问题.如果由于缺少值而无法进行相关,我希望我的函数只打印0.

loops r missing-data correlation

1
推荐指数
1
解决办法
822
查看次数

报告cor()输出的唯一组合

我想在(融化的)相关矩阵中报告所有唯一值.

如果我做:

melt(cor(x,method="pearson",use="complete.obs"))
Run Code Online (Sandbox Code Playgroud)

我会得到:

VarA    VarA   1
VarA    VarB   0.001
VarA    VarC   -0.002
VarB    VarB   1
VarB    VarA   0.001
VarB    VarC   0.003
VarC    VarC   1
VarC    VarA   -0.002
VarC    VarB   0.003
Run Code Online (Sandbox Code Playgroud)

然而,有些行有效地报告了同样的事情VarA VarB = VarB VarA,所以我真正想要的是:

VarA    VarA   1
VarA    VarB   0.001
VarA    VarC   -0.002
VarB    VarB   1
VarB    VarC   0.003
VarC    VarC   1
Run Code Online (Sandbox Code Playgroud)

甚至更好的奖金删除与自己相关的变量,所以我只得到:

VarA    VarB   0.001
VarA    VarC   -0.002
VarB    VarC   0.003
Run Code Online (Sandbox Code Playgroud)

r matrix pearson correlation

1
推荐指数
1
解决办法
251
查看次数

数据框熊猫中所有行的皮尔逊相关性

我在Pandas中有一个数据框,其形状为(136,1445)。我尝试为我的136行创建correlation(Pearson)矩阵。因此,结果是,我需要一个尺寸为136x136的矩阵。

我尝试了两种不同的方法,但是无法从中获得结果,或者当我创建136x136相关矩阵时,我丢失了数据框的列名。

第一,

gene_expression = pd.read_csv('padel_all_drug_results_original.csv',dtype='unicode')
gene_expression = gene_expression.convert_objects(convert_numeric=True)
gene_expression.corr()
Run Code Online (Sandbox Code Playgroud)

这给出了基于列的皮尔逊相关矩阵(1445 * 1445),当我尝试转置我的数据框然后尝试找到相关时,数据框的结构被破坏(例如列名丢失或我什至不确定该相关性是正确的)。

其次,

distance = lambda column1, column2: pearsonr(column1,column2)[0]
result = gene_expression.apply(lambda col1: gene_expression.apply(lambda col2: distance(col1, col2)))
Run Code Online (Sandbox Code Playgroud)

我应该如何计算136x136皮尔逊相关矩阵,以不更改原始数据帧?

另外,我有1445个功能,有些列几乎全为零。因此,我删除了这些列,因为它们是嘈杂的列,但是您有另一个想法来实现重用吗?

提前致谢

python feature-extraction correlation pandas

1
推荐指数
1
解决办法
5453
查看次数