clean: Cleans variables from the variance shared with other...

Description Usage Arguments Details Value Author(s) Examples

Description

The function takes in input one or two data matrices, x and y, and uses multiple regression to remove from the variables in x all the variance shared with variables in y. A parameter allows to remove also the variance shared among the variables in x.

Usage

1
clean(x, y=NULL, itself = TRUE)

Arguments

x

A data matrix, observations by variables.

y

A data matrix, observations by variables. The number of observations must be the same as in x.

itself

Logical. Should be the variables in x cleaned from their own shared variance?

Details

There are three main ways to use this function:

The first is to give a set of variables x in input, with parameter itself = TRUE. The variables included in the output data matrix are the same as x, but with all their shared variance removed, so their correlation is perfectly zero.

The second is to specify a matrix y in input and parameter itself = FALSE. In this case, the x variables are cleaned from the variance that they share with those in y, but not with the variance that they share with other variables in x.

The third is to specify a matrix y in input and parameter itself = TRUE. In this case, the variables are cleaned both from the shared variance with the variables in y and from that shared with other variables in x.

Value

A data matrix, same dimensions as x.

Author(s)

Giulio Costantini

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# generate x, a matrix of correlated variables
pcm <- matrix(c(1, .2, .3,
         .2, 1, .1,
         .3, .1, 1), ncol = 3)
x <- pcm2data(pcm, 1000)
round(cor(x), 3)

# clean the variables in x from their shared variance
# and save them in variable x1.
x1 <- clean(x, itself = TRUE)
round(cor(x1), 3)

# generate another matrix, y, of variables that correlate with x
y <- matrix(rnorm(3000), ncol = 3)
round(cor(cbind(x, y)), 3)

# clean the variables in x only from the variance that they share with variables in y
x2 <- clean(x, y, itself = FALSE)
round(cor(cbind(x2, y)),3)

# clean the variables in x both from the variance shared with y and from the variance shared with other variables in x
x3 <- clean(x, y, itself = TRUE)
round(cor(cbind(x3, y)),3)

GiulioCostantini/TOMproject documentation built on May 6, 2019, 6:29 p.m.