标签: correlation

使用ggplot2将显着性水平添加到矩阵相关热图

我想知道如何为矩阵相关热图添加另一层重要且需要的复杂性,例如除了R2值(-1到1)之外,在显着性水平星的方式之后的p值?
在这个问题中没有意图将显着性水平星或p值作为文本放在矩阵BUT的每个方格上,而不是在矩阵的每个方格上的显着性水平的图形开箱即用表示中.我认为只有那些享受创新思维祝福的人才能赢得掌声,解开这种解决方案,以便有最好的方式来代表我们的"半真半导体相关热图"中复杂的复杂成分.我google了很多但从未见过正确或我会说"眼睛友好"的方式来表示显着性水平加上反映R系数的标准色调.
可重现的数据集可在此处找到:
http://learnr.wordpress.com/2010/01/26/ggplot2-quick-heatmap-plotting/
R代码请在下面找到:

library(ggplot2)
library(plyr) # might be not needed here anyway it is a must-have package I think in R 
library(reshape2) # to "melt" your dataset
library (scales) # it has a "rescale" function which is needed in heatmaps 
library(RColorBrewer) # for convenience of heatmap colors, it reflects your mood sometimes
nba <- read.csv("http://datasets.flowingdata.com/ppg2008.csv")
nba <- as.data.frame(cor(nba[2:ncol(nba)])) # convert the matrix correlations to a dataframe 
nba.m <- data.frame(row=rownames(nba),nba) # create a column called "row"
rownames(nba) …
Run Code Online (Sandbox Code Playgroud)

r significance heatmap ggplot2 correlation

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

如何解释numpy.correlate和numpy.corrcoef值?

我有两个1D阵列,我想看到他们的相互关系.我应该在numpy中使用什么程序?我正在使用numpy.corrcoef(arrayA, arrayB)并且numpy.correlate(arrayA, arrayB)两者都给出了一些我无法理解或理解的结果.有人可以阐明如何理解和解释这些数值结果(最好用一个例子)?谢谢.

python numpy scipy correlation

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

斯皮尔曼相关与关系

我在小型配对排名上计算Spearman的rho.斯皮尔曼以不妥善处理领带而闻名.例如,取2组8个排名,即使6个是两组中的一组中的关系,相关性也会非常高:

> cor.test(c(1,2,3,4,5,6,7,8), c(0,0,0,0,0,0,7,8), method="spearman")

    Spearman's rank correlation rho

S = 19.8439, p-value = 0.0274

sample estimates:
      rho 
0.7637626 

Warning message:
 Cannot compute exact p-values with ties
Run Code Online (Sandbox Code Playgroud)

并且p值<.05,这对于这些数据来说似乎具有非常高的统计意义.在R中是否有一个关系纠正版的Spearman?迄今为止用很多关系来计算它的最佳公式是什么?

r correlation

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

cor.test()的矩阵版本

Cor.test()采用向量xy参数,但我有一整个数据矩阵,我想成对测试.Cor()把这个矩阵作为一个参数就好了,我希望找到一种方法来做同样的事情cor.test().

其他人的共同建议似乎是使用cor.prob():

https://stat.ethz.ch/pipermail/r-help/2001-November/016201.html

但是这些p值与cor.test()!!! 生成的p值不同 Cor.test()也似乎更适合处理成对删除(我的数据集中有相当多的缺失数据)cor.prob().

有没有人有其他选择cor.prob()?如果解决方案涉及嵌套for循环,那么就是它(我已经足够新了,R因为即使这对我来说也是有问题的).

r correlation

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

如何使用Python计算网络的Eb(k)?

在题为" 度量相关性的缩放"及其对无标度网络中的扩散的影响的论文中,作者定义了$ E_b(k)$的数量来衡量度相关程度.

在此输入图像描述

在此输入图像描述

LK Gallos,C.Song和HA Makse,度量相关性的比例及其对无标度网络扩散的影响,物理学.莱特牧师.100,248701(2008).

您可以阅读此链接后的文章或阅读相关的Google图书.

在此输入图像描述

我的问题是如何使用Python计算网络的Eb(k)?我的问题是我无法重现作者的结果.我使用Condense Matter数据进行测试.Eb(k)的结果如上图所示.您可以看到我的图中的一个问题是Eb(k)远大于1!!我也尝试了互联网(作为级别数据)和WWW数据,问题仍然存在.毫无疑问,我的算法或代码存在严重问题.您可以重现我的结果,并将其与作者进行比较.您的解决方案或建议非常感谢.我将在下面介绍我的算法和python脚本.

我按照以下步骤操作:

  1. 对于每条边,找到k = k和k'> 3k的边.这些边缘的概率表示为P(k,k')
  2. 对于节点,要获得度数大于b*k的节点的比例,表示为p(k'),因此我们也可以得到k'*p(k')
  3. 得到分子P1:p1 =\sum P(k,k')/ k'*P(k')
  4. 得到分母p2:P2 =\sum P(k')
  5. Eb(k)= p1/p2

Python脚本

python脚本如下:

%matplotlib inline
import networkx as nx
import matplotlib.cm as cm
import matplotlib.pyplot as plt
from collections import defaultdict

def ebks(g, b):
    edge_dict = defaultdict(lambda: defaultdict(int))
    degree_dict = defaultdict(int)
    edge_degree = [sorted(g.degree(e).values()) for e in g.edges()]
    for e in edge_degree:
        edge_dict[e[0]][e[-1]] +=1
    for i in g.degree().values(): …
Run Code Online (Sandbox Code Playgroud)

python algorithm social-networking correlation networkx

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

在matlab中使用FFT计算自相关

我已经阅读了一些解释,如何使用信号的fft更有效地计算自相关,将实部乘以复共轭(傅里叶域),然后使用逆fft,但我在matlab中实现这一点时遇到了麻烦因为在详细程度上,我真的不知道自己在做什么.:o)那里的任何一种灵魂都在乎分享一些代码和智慧?

谢谢!

matlab signal-processing fft correlation

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

估计两个时间序列之间的小时间偏移

我有两个时间序列,我怀疑他们之间有时间转换,我想估计这个时间转换.

之前已经问过这个问题: 找到两个(非谐波)波之间的相位差找到两个相似波形之间的时间偏移,但在我的情况下,时移小于数据的分辨率.例如,数据以小时分辨率提供,时移仅为几分钟(见图).

造成这种情况的原因是,用于测量其中一个系列的数据记录器在其时间上几分钟的变化.

那里的任何算法都可以估计这种偏移,最好不使用插值?

太阳辐射预报和太阳辐射测量

python statistics signal-processing scipy correlation

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

计算两个多维数组之间的相关系数

我有两个具有形状N X T和数组的阵列M X T.我想计算T每对可能的行nm(分别来自NM)之间的相关系数.

什么是最快,最pythonic的方式来做到这一点?(循环过来N,M在我看来既不快也不是pythonic.)我期待答案涉及numpy和/或scipy.现在我的数组是numpy arrays,但我愿意将它们转换为不同的类型.

我期待我的输出是一个形状的数组N X M.

NB当我说"相关系数"时,我的意思是Pearson乘积矩相关系数.

以下是一些需要注意的事项:

  • numpy函数correlate要求输入数组为一维.
  • numpy函数corrcoef接受二维数组,但它们必须具有相同的形状.
  • scipy.stats函数pearsonr要求输入数组为一维.

python arrays numpy scipy correlation

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

R - 警告信息:"在cor(...)中:标准偏差为零"

我有一个流量数据矢量(29个数据)和一个3D矩阵数据(360*180*29)

我想找到单个矢量和3D矢量之间的相关性.相关矩阵的大小为360*180.

> str(ScottsCk_flow_1981_2010_JJA)
 num [1:29] 0.151 0.644 0.996 0.658 1.702 ...
> str(ssta_winter)
 num [1:360, 1:180, 1:29] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ...
> summary(ssta_winter)
    Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
    -2.8     -0.2      0.1      0.2      0.6      6.0 596849.0 
Run Code Online (Sandbox Code Playgroud)

以上是矢量和3D矩阵的结构.3D矩阵有许多值为Null.

> for (i in 1:360) {
+   for(j in 1:180){
+       cor_ScottsCk_SF_SST_JJA[i,j] = cor(ScottsCk_flow_1981_2010_JJA,ssta_winter[i,j,]) 
+    }
+ }
There were 50 or more warnings (use warnings() to see the first 50)
Run Code Online (Sandbox Code Playgroud)

上面这部分代码是找到相关性的代码.但它提供了警告 …

warnings r matrix multidimensional-array correlation

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

找到两个相似波形之间的时间偏移

我必须比较两个时间 - 电压波形.由于这些波形源的特殊性,其中一个可以是另一个的时移版本.

我怎样才能找到时间转移?如果是的话,它有多少.

我在Python中这样做,并希望使用numpy/scipy库.

python signal-processing numpy correlation

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