标签: correlation

kissfft缩放

我希望使用FFT和Kissfft库来计算快速相关性,并且缩放需要精确.需要进行哪些缩放(向前和向后)以及我使用什么值来扩展数据?

signal-processing fft correlation kissfft

8
推荐指数
2
解决办法
6163
查看次数

R:有效地将具有最大互相关的时间序列段定位到输入段?

我有一个大约200,000行的长数值时间序列数据(我们称之为Z).

在循环中,我一次从Z中对x(约30)个连续行进行子集化,并将它们视为查询点q.

我想内定位žÿ(〜300)最相关的时间序列的段长度的X(与大多数相关q).

有效的方法是什么?

r time-series subset correlation

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

Python中的快速互相关方法

我最近一直试图找到一种快速有效的方法,使用Python语言在两个数组之间执行互相关检查.经过一番阅读,我发现了以下两个选项:

  1. NumPy.correlate()方法在大型数组时速度太慢.
  2. 这种cv.MatchTemplate()方法似乎要快得多.

出于显而易见的原因,我选择了第二个选项.我试图执行以下代码:

import scipy
import cv

image = cv.fromarray(scipy.float32(scipy.asarray([1,2,2,1])),allowND=True)
template = cv.fromarray(scipy.float32(scipy.asarray([2,2])),allowND=True)
result = cv.fromarray(scipy.float32(scipy.asarray([0,0,0])),allowND=True)
cv.MatchTemplate(image,template,result,cv.CV_TM_CCORR)
Run Code Online (Sandbox Code Playgroud)

即使这段代码非常简单,它也会抛出下一个错误:

OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /builddir/build/BUILD/OpenCV-2.1.0/src/cxcore/cxarray.cpp, line 2476
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
cv.error: Unrecognized or unsupported array type
Run Code Online (Sandbox Code Playgroud)

经过几个小时的挫败尝试,我仍然被困住了!有人有什么建议吗?

顺便说一句,这是我的Python版本输出:

Python 2.7 (r27:82500, Sep 16 2010, 18:03:06) 
[GCC 4.5.1 20100907 (Red Hat 4.5.1-3)] on linux2
Type "help", "copyright", "credits" …
Run Code Online (Sandbox Code Playgroud)

python opencv numpy scipy correlation

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

eigen(corr) 中的错误:制作“相关矩阵圆图”时“x”中存在无限值或缺失值

我想制作一个如下所示的相关矩阵。然而,R一直告诉我

'Error in eigen(corr) : infinite or missing values in 'x''
Run Code Online (Sandbox Code Playgroud)

相关矩阵圆

我认为这可能是由我的矩阵中的 NA 值引起的。但是,当我尝试通过添加来删除它们时

'na.rm=TRUE,' it doesnt seem to help

circle.corr( cor(Plant, na.rm=TRUE,), order = TRUE, bg = "gray50", 
    col = colorRampPalette(c("blue","white","red"))(100) )
Run Code Online (Sandbox Code Playgroud)

我已经加载了上面链接中提供的功能

是否可以创建一个新的 data.frame 并删除 NA?如果是这样,怎么办?

r matrix heatmap correlation

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

如何将一个变量与R上的所有其他变量相关联

我想将一个变量(比如酪氨酸)与R上的所有其他变量(大约200种其他代谢物,如尿素,葡萄糖,肌苷等)联系起来,我不知道该怎么做.我是R.的新手

我已经学会了配对功能,但它将指定范围内的每种代谢物配对到另一种.

谢谢!

variables r correlation

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

如何在大型数据集中找到重要的相关性

我正在使用R.我的数据集有大约40种不同的Variables/Vektors,每个都有大约80个条目.我试图找到重要的相关性,这意味着我想选择一个变量并让R计算该变量与其他39个变量的所有相关性.

我试图通过使用线性模型和一个解释变量来实现这一点,这意味着:Y = a*X + b.然后lm()命令为我提供了a的估计值的a和p值的估计.然后我继续使用我对X的其他变量之一并再试一次,直到找到一个非常小的p值.

我确定这是一个常见的问题,是否有某种包或功能可以尝试所有这些可能性(蛮力),显示它们,然后甚至可能按p值对它们进行排序?

r correlation

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

python - 如何在数据矩阵中计算nans的相关矩阵

当数据中存在NaN时,我找不到计算包含多于两个变量的观测值的数组的相关系数矩阵的函数.有一些函数可以为变量对执行此操作(或者只使用~is.nan()来掩盖数组).但是通过循环遍历大量变量来使用这些函数,计算每对变量的相关性可能非常耗时.

所以我自己尝试并很快意识到这样做的复杂性是协方差正确归一化的问题.我对你如何做的意见非常感兴趣.

这是代码:

def nancorr(X,nanfact=False):
    X = X - np.nanmean(X,axis=1,keepdims = True)*np.ones((1,X.shape[1]))

    if nanfact:
        mask = np.isnan(X).astype(int)
        fact = X.shape[1] - np.dot(mask,mask.T) - 1    

    X[np.isnan(X)] = 0
    if nanfact:
        cov = np.dot(X,X.T)/fact
    else:
        cov = np.dot(X,X.T)

    d = np.diag(cov)
    return cov/np.sqrt(np.multiply.outer(d,d))
Run Code Online (Sandbox Code Playgroud)

该函数假定每行都是变量.它基本上是来自numpy的corrcoeff()的调整代码.我相信有三种方法可以做到这一点:

(1)对于每对变量,只采用那些一个和另一个变量都不是NaN的观察结果.如果你想同时对多个对进行计算并且上面的代码中没有涉及,那么这可以说是最准确但也是最难编程的.然而,为什么抛弃每个变量的均值和方差的信息,只是因为另一个变量的相应条目是NaN?因此,另外两个选择.

(2)我们用nanmean贬低每个变量,每个变量的方差是它的纳方差.对于协方差,每个观察,其中一个或另一个变量是NaN,但不是两者,是对无协变的观察,因此设置为零.协方差的因子是1 /(观察的数量,其中两个变量都不是NaN - 1),用n表示.相关系数的分母中的两个方差都由它们相应的非NaN观测数减去1来计算,分别由n1和n2表示.这是通过在上面的函数中设置nanfact = True来实现的.

(3)人们可能希望协方差和方差具有与没有NaN的相关系数的情况相同的因子.在这里执行此操作的唯一有意义的方法(如果选项(1)不可行),则简单地忽略(1/n)/ sqrt(1/n1*n2).由于该数字小于1,估计的相关系数将比(2)中的(绝对值)更大,但将保持在-1,1之间.这是通过设置nanfact = False来实现的.

我对你对方法(2)和(3)的看法非常感兴趣,特别是,我非常希望在不使用循环的情况下看到(1)的解决方案.

python numpy scipy correlation

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

如何使用numpy.random.rand设置生成点的最小距离约束?

我试图生成一个有效的代码,用于生成一些随机位置向量,然后我用它来计算一对相关函数.我想知道是否有直接的方法来设置我的框中任意两点之间允许的最小距离约束.

我的代码目前如下:

def pointRun(number, dr):
"""
Compute the 3D pair correlation function
for a random distribution of 'number' particles
placed into a 1.0x1.0x1.0 box.
"""
## Create array of distances over which to calculate.   
    r = np.arange(0., 1.0+dr, dr)

## Generate list of arrays to define the positions of all points,
##    and calculate number density.
    a = np.random.rand(number, 3)
    numberDensity = len(a)/1.0**3

## Find reference points within desired region to avoid edge effects. 
    b = [s for s in …
Run Code Online (Sandbox Code Playgroud)

python random numpy distribution correlation

8
推荐指数
2
解决办法
1233
查看次数

与ggplot2的相关矩阵图

我想创建一个相关矩阵图,即一个图,其中每个变量都在一个散点图中绘制,而另一个变量则与pairs()or或splom().我想用ggplot2做这个.请看这里的例子.该链接提到了某人在ggplot2中编写的代码,但是,它已经过时且不再有效(即使在您更换了已弃用的部分之后).

人们可以通过循环中的循环然后进行此操作multiplot(),但必须有更好的方法.我尝试将数据集熔化为long,然后复制值和变量,然后使用facet.这几乎给你一些正确的东西.

d = data.frame(x1=rnorm(100),
               x2=rnorm(100),
               x3=rnorm(100),
               x4=rnorm(100),
               x5=rnorm(100))
library(reshape2)
d = melt(d)
d$value2 = d$value
d$variable2 = d$variable

library(ggplot2)
ggplot(data=d, aes(x=value, y=value2)) +
  geom_point() +
  facet_grid(variable ~ variable2)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这使得一般结构正确,但仅适用于绘制每个变量对自己.是否有一些更聪明的方法来做到这一点,而不诉诸2循环?

r ggplot2 correlation

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

python - 无法使corr工作

我正在努力完成简单的关联.我尝试过类似问题所提出的所有建议.

以下是代码的相关部分,我所做的各种尝试及其结果.

import numpy as np
import pandas as pd

try01 = data[['ESA Index_close_px', 'CCMP Index_close_px' ]].corr(method='pearson')

print (try01) 
Run Code Online (Sandbox Code Playgroud)

日期:

Empty DataFrame
Columns: []
Index: []
Run Code Online (Sandbox Code Playgroud)
try04 = data['ESA Index_close_px'][5:50].corr(data['CCMP Index_close_px'][5:50])
print (try04)
Run Code Online (Sandbox Code Playgroud)

日期:

**AttributeError: 'float' object has no attribute 'sqrt'**
Run Code Online (Sandbox Code Playgroud)

使用numpy

try05 = np.corrcoef(data['ESA Index_close_px'],data['CCMP Index_close_px'])
print (try05)
Run Code Online (Sandbox Code Playgroud)

日期:

AttributeError: 'float' object has no attribute 'sqrt'
Run Code Online (Sandbox Code Playgroud)

将列转换为列表

ESA_Index_close_px_list = list()
start_value = 1
end_value = len (data['ESA Index_close_px']) +1
for items in data['ESA Index_close_px']:
    ESA_Index_close_px_list.append(items)
    start_value = start_value+1    
    if …
Run Code Online (Sandbox Code Playgroud)

numpy correlation python-3.x pandas

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