Getting Started with NNS: Correlation and Dependence

Fred Viole

require(NNS)
require(knitr)
require(rgl)
require(data.table)

Correlation and Dependence

The limitations of linear correlation are well known. Often one uses correlation, when dependence is the intended measure for defining the relationship between variables. NNS dependence NNS.dep is a signal:noise measure robust to nonlinear signals.

Below are some examples comparing NNS correlation NNS.cor and NNS.dep with the standard Pearson’s correlation coefficient cor.

##Linear Equivalence Note the fact that all observations occupy the co-partial moment quadrants.

x = seq(0, 3, .01) ; y = 2 * x

cor(x, y)
## [1] 1
NNS.dep(x, y, print.map = TRUE, order = 3)

## $Correlation
## [1] 1
## 
## $Dependence
## [1] 1

##Nonlinear Relationship Note the fact that all observations occupy the co-partial moment quadrants.

x=seq(0, 3, .01) ; y = x ^ 10

cor(x, y)
## [1] 0.6610183
NNS.dep(x, y, print.map = TRUE, order = 3)

## $Correlation
## [1] 0.9413457
## 
## $Dependence
## [1] 0.9413457

##Dependence Note the fact that all observations occupy only co- or divergent partial moment quadrants for a given subquadrant.

set.seed(123)
df <- data.frame(x = runif(10000, -1, 1), y = runif(10000, -1, 1))
df <- subset(df, (x ^ 2 + y ^ 2 <= 1 & x ^ 2 + y ^ 2 >= 0.95))
NNS.dep(df$x, df$y, print.map = TRUE)

## $Correlation
## [1] -0.007630343
## 
## $Dependence
## [1] 0.9963612

#References If the user is so motivated, detailed arguments and proofs are provided within the following: