kdist2ktab {ade4}R Documentation

Transformation of K distance matrices (object 'kdist') into K Euclidean representations (object 'ktab')

Description

The function creates a ktab object with the Euclidean representations from a kdist object. Notice that the euclid attribute must be TRUE for all elements.

Usage

kdist2ktab(kd, scale = TRUE, tol = 1e-07)

Arguments

kd an object of class kdist
scale a logical value indicating whether the inertia of Euclidean representations are equal to 1 (TRUE) or not (FALSE).
tol a tolerance threshold, an eigenvalue is considered equal to zero if eig$values > (eig$values[1 * tol)

Value

returns a list of class ktab containing for each distance of kd the data frame of its Euclidean representation

Author(s)

Daniel Chessel
Anne B Dufour dufour@biomserv.univ-lyon1.fr

Examples

data(friday87)
fri.w <- ktab.data.frame(friday87$fau, friday87$fau.blo, 
    tabnames = friday87$tab.names)
fri.kd <- lapply(1:10, function(x) dist.binary(fri.w[[x]], 10))
names(fri.kd) <-  substr(friday87$tab.names, 1, 4)
fri.kd <- kdist(fri.kd)
fri.ktab = kdist2ktab(kd = fri.kd)
fri.sepan = sepan(fri.ktab)
plot(fri.sepan, csub = 3)

tapply(fri.sepan$Eig, fri.sepan$TC[,1], sum)
# the sum of the eigenvalues is constant and equal to 1, for each K tables

fri.statis <- statis(fri.ktab, scan = FALSE, nf = 2)
round(fri.statis$RV, dig = 2)

fri.mfa <- mfa(fri.ktab, scan = FALSE, nf = 2)
fri.mcoa <- mcoa(fri.ktab, scan = FALSE, nf = 2)

apply(fri.statis$RV, 1, mean) 
fri.statis$RV.tabw 
plot(apply(fri.statis$RV, 1, mean), fri.statis$RV.tabw)
plot(fri.statis$RV.tabw, fri.statis$RV.tabw)

Worked out examples


> library(ade4)
> ### Name: kdist2ktab
> ### Title: Transformation of K distance matrices (object 'kdist') into K
> ###   Euclidean representations (object 'ktab')
> ### Aliases: kdist2ktab
> ### Keywords: multivariate
> 
> ### ** Examples
> 
> data(friday87)
> fri.w <- ktab.data.frame(friday87$fau, friday87$fau.blo, 
+     tabnames = friday87$tab.names)
> fri.kd <- lapply(1:10, function(x) dist.binary(fri.w[[x]], 10))
> names(fri.kd) <-  substr(friday87$tab.names, 1, 4)
> fri.kd <- kdist(fri.kd)
> fri.ktab = kdist2ktab(kd = fri.kd)
> fri.sepan = sepan(fri.ktab)
> plot(fri.sepan, csub = 3)
> 
> tapply(fri.sepan$Eig, fri.sepan$TC[,1], sum)
 1  2  3  4  5  6  7  8  9 10 
 1  1  1  1  1  1  1  1  1  1 
> # the sum of the eigenvalues is constant and equal to 1, for each K tables
> 
> fri.statis <- statis(fri.ktab, scan = FALSE, nf = 2)
> round(fri.statis$RV, dig = 2)
     Hemi Odon Tric Ephe Cole Dipt Hydr Mala Moll Olig
Hemi 1.00 0.84 0.89 0.72 0.93 0.91 0.94 0.87 0.90 0.87
Odon 0.84 1.00 0.86 0.71 0.86 0.88 0.85 0.83 0.87 0.81
Tric 0.89 0.86 1.00 0.82 0.93 0.93 0.91 0.89 0.92 0.89
Ephe 0.72 0.71 0.82 1.00 0.73 0.83 0.74 0.81 0.83 0.79
Cole 0.93 0.86 0.93 0.73 1.00 0.94 0.94 0.89 0.92 0.87
Dipt 0.91 0.88 0.93 0.83 0.94 1.00 0.92 0.91 0.94 0.89
Hydr 0.94 0.85 0.91 0.74 0.94 0.92 1.00 0.88 0.93 0.86
Mala 0.87 0.83 0.89 0.81 0.89 0.91 0.88 1.00 0.92 0.86
Moll 0.90 0.87 0.92 0.83 0.92 0.94 0.93 0.92 1.00 0.86
Olig 0.87 0.81 0.89 0.79 0.87 0.89 0.86 0.86 0.86 1.00
> 
> fri.mfa <- mfa(fri.ktab, scan = FALSE, nf = 2)
> fri.mcoa <- mcoa(fri.ktab, scan = FALSE, nf = 2)
> 
> apply(fri.statis$RV, 1, mean) 
     Hemi      Odon      Tric      Ephe      Cole      Dipt      Hydr      Mala 
0.8870267 0.8491046 0.9042958 0.7980208 0.9019560 0.9153542 0.8969580 0.8862786 
     Moll      Olig 
0.9084652 0.8693471 
> fri.statis$RV.tabw 
 [1] 0.3182568 0.3042336 0.3241214 0.2849738 0.3236518 0.3281335 0.3218042
 [8] 0.3176219 0.3256389 0.3114247
> plot(apply(fri.statis$RV, 1, mean), fri.statis$RV.tabw)
> plot(fri.statis$RV.tabw, fri.statis$RV.tabw)
> 
> 
> 
> 

[Package ade4 Index]