Performs canonical correlation analysis with collinearity diagnostic, estimation of canonical loads, canonical scores, and hypothesis testing for correlation pairs.
Usage
can_corr(
.data,
FG,
SG,
by = NULL,
use = "cor",
test = "Bartlett",
prob = 0.05,
center = TRUE,
stdscores = FALSE,
verbose = TRUE,
collinearity = TRUE
)
Arguments
- .data
The data to be analyzed. It can be a data frame (possible with grouped data passed from
dplyr::group_by()
.- FG, SG
A comma-separated list of unquoted variable names that will compose the first (smallest) and second (highest) group of the correlation analysis, respectively. Select helpers are also allowed.
- by
One variable (factor) to compute the function by. It is a shortcut to
dplyr::group_by()
. To compute the statistics by more than one grouping variable use that function.- use
The matrix to be used. Must be one of 'cor' for analysis using the correlation matrix (default) or 'cov' for analysis using the covariance matrix.
- test
The test of significance of the relationship between the FG and SG. Must be one of the 'Bartlett' (default) or 'Rao'.
- prob
The probability of error assumed. Set to 0.05.
- center
Should the data be centered to compute the scores?
- stdscores
Rescale scores to produce scores of unit variance?
- verbose
Logical argument. If
TRUE
(default) then the results are shown in the console.- collinearity
Logical argument. If
TRUE
(default) then a collinearity diagnostic is performed for each group of variables according to Olivoto et al.(2017).
Value
If .data
is a grouped data passed from
dplyr::group_by()
then the results will be returned into a
list-column of data frames.
Matrix The correlation (or covariance) matrix of the variables
MFG, MSG The correlation (or covariance) matrix for the variables of the first group or second group, respectively.
MFG_SG The correlation (or covariance) matrix for the variables of the first group with the second group.
Coef_FG, Coef_SG Matrix of the canonical coefficients of the first group or second group, respectively.
Loads_FG, Loads_SG Matrix of the canonical loadings of the first group or second group, respectively.
Score_FG, Score_SG Canonical scores for the variables in FG and SG, respectively.
Crossload_FG, Crossload_FG Canonical cross-loadings for FG variables on the SG scores, and cross-loadings for SG variables on the FG scores, respectively.
SigTest A dataframe with the correlation of the canonical pairs and hypothesis testing results.
collinearity A list with the collinearity diagnostic for each group of variables.
References
Olivoto, T., V.Q. Souza, M. Nardino, I.R. Carvalho, M. Ferrari, A.J. Pelegrin, V.J. Szareski, and D. Schmidt. 2017. Multicollinearity in path analysis: a simple method to reduce its effects. Agron. J. 109:131-142. doi:10.2134/agronj2016.04.0196
Author
Tiago Olivoto tiagoolivoto@gmail.com
Examples
# \donttest{
library(metan)
cc1 <- can_corr(data_ge2,
FG = c(PH, EH, EP),
SG = c(EL, ED, CL, CD, CW, KW, NR))
#> ---------------------------------------------------------------------------
#> Matrix (correlation/covariance) between variables of first group (FG)
#> ---------------------------------------------------------------------------
#> PH EH EP
#> PH 1.0000000 0.9318282 0.6384123
#> EH 0.9318282 1.0000000 0.8695460
#> EP 0.6384123 0.8695460 1.0000000
#> ---------------------------------------------------------------------------
#> Collinearity within first group
#> ---------------------------------------------------------------------------
#> The multicollinearity in the matrix should be investigated.
#> cn = 977.586
#> Largest VIF = 229.164618380199
#> Matrix determinant: 0.0025852
#> Largest correlation: PH x EH = 0.932
#> Smallest correlation: PH x EP = 0.638
#> Number of VIFs > 10: 3
#> Number of correlations with r >= |0.8|:
#> Variables with largest weight in the last eigenvalues:
#> EH > PH > EP
#> ---------------------------------------------------------------------------
#> Matrix (correlation/covariance) between variables of second group (SG)
#> ---------------------------------------------------------------------------
#> EL ED CL CD CW KW NR
#> EL 1.00000000 0.3851451 0.2554068 0.91186526 0.4581728 0.6685601 -0.01387378
#> ED 0.38514512 1.0000000 0.6974629 0.38971282 0.7371305 0.8241426 0.55253448
#> CL 0.25540676 0.6974629 1.0000000 0.30036364 0.7383379 0.4709310 0.26193592
#> CD 0.91186526 0.3897128 0.3003636 1.00000000 0.4840299 0.6259806 -0.03584984
#> CW 0.45817278 0.7371305 0.7383379 0.48402989 1.0000000 0.7348622 0.16565752
#> KW 0.66856012 0.8241426 0.4709310 0.62598062 0.7348622 1.0000000 0.36214470
#> NR -0.01387378 0.5525345 0.2619359 -0.03584984 0.1656575 0.3621447 1.00000000
#> ---------------------------------------------------------------------------
#> Collinearity within second group
#> ---------------------------------------------------------------------------
#> Weak multicollinearity in the matrix
#> cn = 68.376
#> Matrix determinant: 0.0015322
#> Largest correlation: EL x CD = 0.912
#> Smallest correlation: EL x NR = -0.014
#> Number of VIFs > 10: 0
#> Number of correlations with r >= |0.8|:
#> Variables with largest weight in the last eigenvalues:
#> KW > ED > EL > CD > CL > CW > NR
#> ---------------------------------------------------------------------------
#> Matrix (correlation/covariance) between FG and SG
#> ---------------------------------------------------------------------------
#> EL ED CL CD CW KW NR
#> PH 0.3801960 0.6613148 0.3251648 0.3153910 0.5047388 0.7534439 0.3286065
#> EH 0.3626537 0.6302561 0.3971935 0.2805118 0.5193136 0.7029469 0.2648051
#> EP 0.2634237 0.4580196 0.3908239 0.1750448 0.4248098 0.4974193 0.1404315
#> ---------------------------------------------------------------------------
#> Correlation of the canonical pairs and hypothesis testing
#> ---------------------------------------------------------------------------
#> Var Percent Sum Corr Lambda Chisq DF p_val
#> U1V1 0.6315391 76.189861 76.18986 0.7946943 0.29647 181.76246 21 0.00000
#> U2V2 0.1867300 22.527394 98.71725 0.4321226 0.80462 32.49857 12 0.00116
#> U3V3 0.0106327 1.282745 100.00000 0.1031150 0.98937 1.59810 5 0.90148
#> ---------------------------------------------------------------------------
#> Canonical coefficients of the first group
#> ---------------------------------------------------------------------------
#> U1 U2 U3
#> PH 2.526492 5.866685 7.317151
#> EH -2.436372 -8.263008 -12.447948
#> EP 1.144533 2.747079 6.487414
#> ---------------------------------------------------------------------------
#> Canonical coefficients of the second group
#> ---------------------------------------------------------------------------
#> V1 V2 V3
#> EL -0.00892526 -0.9360837 0.7670684
#> ED 0.19371881 0.2969851 -1.8240876
#> CL -0.08385387 -1.2150642 0.1719827
#> CD -0.30662013 1.1369520 -1.4230311
#> CW -0.15225785 0.1913916 0.4777071
#> KW 1.16752245 -0.1255657 1.1247216
#> NR -0.05865868 0.4861885 0.6223953
#> ---------------------------------------------------------------------------
#> Canonical loads of the first group
#> ---------------------------------------------------------------------------
#> U1 U2 U3
#> PH 0.9868962 -0.07924975 -0.14055369
#> EH 0.9131089 -0.40755395 0.01148369
#> EP 0.6389394 -0.69262240 0.33470980
#> ---------------------------------------------------------------------------
#> Canonical loads of the second group
#> ---------------------------------------------------------------------------
#> V1 V2 V3
#> EL 0.4762839 -0.09829294 -0.22697572
#> ED 0.8298627 -0.16168789 -0.34031848
#> CL 0.3789207 -0.69598199 -0.28635983
#> CD 0.3948013 0.03075542 -0.46981539
#> CW 0.6243739 -0.37712156 -0.14762207
#> KW 0.9566482 -0.05042023 -0.09910729
#> NR 0.4351188 0.29047403 0.18639351
# Canonical correlations for each environment
cc3 <- data_ge2 %>%
can_corr(FG = c(PH, EH, EP),
SG = c(EL, ED, CL, CD, CW, KW, NR),
by = ENV,
verbose = FALSE)
# }