Skip to contents

Correlation matrix for Netherlands television viewership, used as an example dataset for factor rotation. From Wansbeek and Meijer (2000), page 171.

Usage

data(WansbeekMeijer)

Details

NetherlandsTV is a list with components $cov (a \(7 \times 7\) correlation matrix for 7 television viewership variables measured in the Netherlands) and $n.obs (sample size, 2154). Use cov2cor(NetherlandsTV\$cov) to obtain the correlation matrix, or pass NetherlandsTV directly to factanal which handles the list structure automatically. It is used throughout the GPArotation documentation and vignettes as an example dataset for oblique rotation with 2 or 3 factors.

Format

NetherlandsTV is a list with components:

  • $cov: a \(7 \times 7\) numeric correlation matrix

  • $n.obs: sample size (2154)

Source

Wansbeek, T. and Meijer, E. (2000). Measurement Error and Latent Variables in Econometrics. North-Holland.

Examples

  data(WansbeekMeijer, package = "GPArotation")

  # Correlation matrix
  round(cov2cor(NetherlandsTV$cov), 2)
#>           NL1  TV2  NL3 RTL4 RTL5 Veronica SBS6
#> NL1      1.00 0.66 0.61 0.38 0.38     0.33 0.32
#> TV2      0.66 1.00 0.65 0.43 0.44     0.43 0.38
#> NL3      0.61 0.65 1.00 0.37 0.36     0.34 0.30
#> RTL4     0.38 0.43 0.37 1.00 0.54     0.58 0.47
#> RTL5     0.38 0.44 0.36 0.54 1.00     0.60 0.57
#> Veronica 0.33 0.43 0.34 0.58 0.60     1.00 0.60
#> SBS6     0.32 0.38 0.30 0.47 0.57     0.60 1.00

  # factanal picks up n.obs automatically from the list
  factanal(factors = 2, covmat = NetherlandsTV, rotation = "none")
#> 
#> Call:
#> factanal(factors = 2, covmat = NetherlandsTV, rotation = "none")
#> 
#> Uniquenesses:
#>      NL1      TV2      NL3     RTL4     RTL5 Veronica     SBS6 
#>    0.374    0.294    0.402    0.507    0.422    0.331    0.472 
#> 
#> Loadings:
#>          Factor1 Factor2
#> NL1       0.697  -0.374 
#> TV2       0.777  -0.318 
#> NL3       0.683  -0.362 
#> RTL4      0.661   0.236 
#> RTL5      0.697   0.303 
#> Veronica  0.710   0.406 
#> SBS6      0.635   0.353 
#> 
#>                Factor1 Factor2
#> SS loadings      3.389   0.809
#> Proportion Var   0.484   0.116
#> Cumulative Var   0.484   0.600
#> 
#> Test of the hypothesis that 2 factors are sufficient.
#> The chi square statistic is 29.68 on 8 degrees of freedom.
#> The p-value is 0.00024 

  # Two-step oblique rotation
  fa.unrotated <- factanal(factors = 3, covmat = NetherlandsTV,
                           rotation = "none")
  oblimin(loadings(fa.unrotated), randomStarts = 100)
#> Oblique rotation method Oblimin Quartimin converged at lowest minimum.
#> Of 100 random starts 100% converged, 100% at the same lowest minimum.
#> Loadings at lowest minimum:
#>          Factor1 Factor2 Factor3
#> NL1        0.812  -0.044   0.016
#> TV2        0.791   0.070   0.010
#> NL3        0.784  -0.010  -0.013
#> RTL4       0.066   0.745  -0.086
#> RTL5       0.058   0.651   0.085
#> Veronica  -0.060   0.812   0.048
#> SBS6       0.007   0.007   0.990
#> 
#>                Factor1 Factor2 Factor3
#> SS loadings      1.947   1.701   1.029
#> Proportion Var   0.278   0.243   0.147
#> Cumulative Var   0.278   0.521   0.668
#> 
#> Phi:
#>         Factor1 Factor2 Factor3
#> Factor1   1.000   0.610   0.402
#> Factor2   0.610   1.000   0.704
#> Factor3   0.402   0.704   1.000