The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
This vignette is based on the real world example described in
Puchhammer, Wilms and Filzmoser (2024). However, only a subset of the
data is analysed to reduce the necessary runtime due to the large number
of groups in the original data analysis. All functions are included in
the package ssMRCD
.
library(ssMRCD)
library(dplyr)
#>
#> Attache Paket: 'dplyr'
#> Die folgenden Objekte sind maskiert von 'package:stats':
#>
#> filter, lag
#> Die folgenden Objekte sind maskiert von 'package:base':
#>
#> intersect, setdiff, setequal, union
library(ggplot2)
library(robustbase)
library(tidyr)
library(ggridges)
Weather data is made available by GeoSphere Austria (2024) (https://data.hub.geosphere.at) and is pre-cleaned and
saved in the data frame object weatherHoheWarte
. We
consider a set of weather variables for the weather station Hohe Warte
in Vienna, Austria over the years 2000-2023. The decision of variables
and time lines are based on data quality, i.e. missing data. Additional
information can be found on the helping page.
? weatherHoheWarte
data("weatherHoheWarte")
head(weatherHoheWarte)
#> # A tibble: 6 × 18
#> time cloud_cover global_radiation vapor_pressure max_wind_speed
#> <dttm> <dbl> <dbl> <dbl> <dbl>
#> 1 1960-01-01 00:00:00 93 288 7.1 7.7
#> 2 1960-01-02 00:00:00 100 195 7.6 6.3
#> 3 1960-01-03 00:00:00 100 57 7.5 7.7
#> 4 1960-01-04 00:00:00 97 68 8.1 9.4
#> 5 1960-01-05 00:00:00 57 161 7.3 9.1
#> 6 1960-01-06 00:00:00 100 163 6.6 19.4
#> # ℹ 13 more variables: air_pressure <dbl>, relative_humidity <dbl>,
#> # precipitation <dbl>, sight <dbl>, sunshine_duration <dbl>,
#> # temperature_max <dbl>, temperature_min <dbl>, temperature_mean <dbl>,
#> # wind_velocity <dbl>, year <dbl>, month <dbl>, day <dbl>, season <dbl>
Only data from 2000 onward is used.
= c("cl", "rad", "vp", "wmax", "ap", "hum", "prec", "sight", "sun",
varnames_short"tmax", "tmin", "t", "w")
# filter data
= weatherHoheWarte %>%
weather ::filter(year > 2000)
dplyr
# select variables
= weather %>%
X_data select(cloud_cover:wind_velocity) %>%
as.matrixcolnames(X_data) = varnames_short
# get number of variables
= dim(X_data)[2] p
To facilitate a stable algorithm, the data is scaled robustly. High variance complicates the strategy to choose during the algorithm since it is based on the average overall variance.
= scale(X_data, center = robustbase::colMedians(X_data), scale = apply(X = X_data, MARGIN = 2, FUN = mad)) X_data
Since each year is supposed to be similar but can also contain
certain irregular weather phenomena, the ssMRCD estimator (Puchhammer
and Filzmoser, 2024) is applicable to take advantage of the additional
information of prior and following years. For the ssMRCD estimator we
use the function ssMRCD
. The neighborhoods are years, thus
acquiring comparability by including one weather cycle per group.
Weights are based on the temporal proximity and linear decline of
influence, which lasts a maximum of 5 years and calculated with the
function time_weights
.
= as.numeric(as.factor(weather$year))
N_groups = max(N_groups)
N = time_weights(max(N_groups), c(5:1)) W
The optimal amount of smoothing is tuned with the residuals-based criteria described in Puchhammer, Wilms and Filzmoser (2024). Since the optimization of values takes some time (around 10 min), the optimal parameter selection is hard-coded in the second code chunk. To see the optimal smoothing criterion plotted over lambda run the first code chunk below.
set.seed(1234)
= seq(0, 1, by = 0.05)
lambda = ssMRCD(X = X_data,
opt_lambda groups = N_groups,
weights = W,
lambda = lambda,
tuning = list(method = "residuals", plot = TRUE),
alpha = 0.75)
= seq(0, 1, by = 0.05)
lambda_grid = c(3.199500,3.188801,3.182297,3.175784,3.171462,3.167695,3.165151,3.162758,
residual_values 3.161896,3.161929,3.162562, 3.163831,3.165651,3.168228,3.171867,3.175790,
3.180868,3.186437,3.192634,3.200292,3.208845)
= 0.4
lambda_opt
ggplot() +
geom_line(aes(x = lambda_grid,
y = residual_values)) +
geom_point(aes(x = lambda_grid,
y = residual_values)) +
geom_point(aes(x = lambda_opt,
y = residual_values[lambda_grid == lambda_opt]),
col = "red") +
labs(x = expression(lambda),
y = "Residual Value",
title = "Optimal Smoothing Based on Residuals") +
theme_minimal()
Here, the ssMRCD with the optimal lambda is calculated.
# get optimal smoothing parameter and estimator
set.seed(123)
= ssMRCD(X = X_data,
ssMRCD_weather groups = weather$year,
weights = W,
lambda = 0.4,
alpha = 0.75)
# collect covariance matrices
= ssMRCD_weather$MRCDcov
COVS
plot(ssMRCD_weather, type = c("ellipses", "convergence"), variables = c("hum", "sun"))
#> $plot_convergence
#>
#> $plot_ellipses
#>
#> $plot_geoellipses
#> NULL
By plotting the mean estimates of the ssMRCD estimator we see clear temporal trends in the data and the different variables, .
# collect means
= do.call(cbind, ssMRCD_weather$MRCDmu)
mu_timeseries colnames(mu_timeseries) = 2001:2023
rownames(mu_timeseries) = colnames(X_data)
# plot means dependent on year
ggplot(mu_timeseries %>%
%>%
data.frame mutate(Var1 = rownames(.)) %>%
::pivot_longer(cols = X2001:X2023) %>%
tidyrgroup_by(Var1) %>%
mutate(value = (value-min(value))/(max(value) - min(value)),
name = as.numeric(gsub("X", "", name)))) +
geom_line(aes(x = name, y = value, group = Var1)) +
geom_smooth(aes(x = name, y = value, group = Var1), se = F) +
facet_wrap(vars(Var1)) +
theme_minimal() +
labs(x = "", y = "")
#> `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
The covariances from the ssMRCD-estimator can be used as plug-in for the sparse robust multi-source PCA.
To get the optimal distribution of sparsity \(\gamma\) we use the AUC for the path of explained variance and sparsity of entries and groups. The optimal amount of sparsity \(\eta\) is based on the trade-off product optimization (TPO) criterion. The parameter tuning is included in the function when and/or are numeric vectors. Here, only is tuned.
set.seed(12345)
= msPCA(eta = seq(0, 3, 0.25), gamma = 0.5, COVS = COVS, k = p)
pca #> Tuning |=== | 1 parameter combinations of 13Tuning |======= | 2 parameter combinations of 13Tuning |=========== | 3 parameter combinations of 13Tuning |=============== | 4 parameter combinations of 13Tuning |=================== | 5 parameter combinations of 13Tuning |======================= | 6 parameter combinations of 13Tuning |========================== | 7 parameter combinations of 13Tuning |============================== | 8 parameter combinations of 13Tuning |================================== | 9 parameter combinations of 13Tuning |====================================== | 10 parameter combinations of 13Tuning |========================================== | 11 parameter combinations of 13Tuning |============================================== | 12 parameter combinations of 13Tuning |==================================================| 13 parameter combinations of 13
#> PC 1 | | 1 iterationsPC 1 | | 2 iterationsPC 1 | | 3 iterationsPC 1 |= | 4 iterationsPC 1 |= | 5 iterationsPC 1 |= | 6 iterationsPC 1 |= | 7 iterationsPC 1 |== | 8 iterationsPC 1 |== | 9 iterationsPC 1 |== | 10 iterationsPC 1 |== | 11 iterationsPC 1 |=== | 12 iterationsPC 1 |=== | 13 iterationsPC 1 |=== | 14 iterationsPC 1 |=== | 15 iterationsPC 1 |==== | 16 iterationsPC 1 |==== | 17 iterationsPC 1 |==== | 18 iterationsPC 1 |==== | 19 iterationsPC 1 |===== | 20 iterationsPC 1 |===== | 21 iterationsPC 1 |===== | 22 iterationsPC 1 |===== | 23 iterationsPC 1 |====== | 24 iterationsPC 1 |====== | 25 iterationsPC 1 |====== | 26 iterationsPC 1 |====== | 27 iterationsPC 1 |======= | 28 iterationsPC 1 |======= | 29 iterationsPC 1 |======= | 30 iterationsPC 1 |======= | 31 iterationsPC 1 |======== | 32 iterations
#> PC 2 | | 1 iterationsPC 2 | | 2 iterationsPC 2 | | 3 iterationsPC 2 |= | 4 iterationsPC 2 |= | 5 iterationsPC 2 |= | 6 iterationsPC 2 |= | 7 iterationsPC 2 |== | 8 iterationsPC 2 |== | 9 iterationsPC 2 |== | 10 iterationsPC 2 |== | 11 iterationsPC 2 |=== | 12 iterationsPC 2 |=== | 13 iterationsPC 2 |=== | 14 iterationsPC 2 |=== | 15 iterationsPC 2 |==== | 16 iterationsPC 2 |==== | 17 iterationsPC 2 |==== | 18 iterationsPC 2 |==== | 19 iterationsPC 2 |===== | 20 iterationsPC 2 |===== | 21 iterationsPC 2 |===== | 22 iterationsPC 2 |===== | 23 iterationsPC 2 |====== | 24 iterationsPC 2 |====== | 25 iterationsPC 2 |====== | 26 iterationsPC 2 |====== | 27 iterationsPC 2 |======= | 28 iterationsPC 2 |======= | 29 iterationsPC 2 |======= | 30 iterationsPC 2 |======= | 31 iterationsPC 2 |======== | 32 iterationsPC 2 |======== | 33 iterationsPC 2 |======== | 34 iterationsPC 2 |======== | 35 iterationsPC 2 |========= | 36 iterationsPC 2 |========= | 37 iterationsPC 2 |========= | 38 iterationsPC 2 |========= | 39 iterationsPC 2 |========== | 40 iterationsPC 2 |========== | 41 iterations
#> PC 3 | | 1 iterationsPC 3 | | 2 iterationsPC 3 | | 3 iterationsPC 3 |= | 4 iterationsPC 3 |= | 5 iterationsPC 3 |= | 6 iterationsPC 3 |= | 7 iterationsPC 3 |== | 8 iterationsPC 3 |== | 9 iterationsPC 3 |== | 10 iterationsPC 3 |== | 11 iterationsPC 3 |=== | 12 iterationsPC 3 |=== | 13 iterationsPC 3 |=== | 14 iterationsPC 3 |=== | 15 iterationsPC 3 |==== | 16 iterationsPC 3 |==== | 17 iterationsPC 3 |==== | 18 iterationsPC 3 |==== | 19 iterationsPC 3 |===== | 20 iterationsPC 3 |===== | 21 iterationsPC 3 |===== | 22 iterationsPC 3 |===== | 23 iterationsPC 3 |====== | 24 iterationsPC 3 |====== | 25 iterationsPC 3 |====== | 26 iterationsPC 3 |====== | 27 iterationsPC 3 |======= | 28 iterationsPC 3 |======= | 29 iterationsPC 3 |======= | 30 iterationsPC 3 |======= | 31 iterationsPC 3 |======== | 32 iterationsPC 3 |======== | 33 iterationsPC 3 |======== | 34 iterationsPC 3 |======== | 35 iterationsPC 3 |========= | 36 iterationsPC 3 |========= | 37 iterationsPC 3 |========= | 38 iterationsPC 3 |========= | 39 iterationsPC 3 |========== | 40 iterationsPC 3 |========== | 41 iterationsPC 3 |========== | 42 iterationsPC 3 |========== | 43 iterationsPC 3 |=========== | 44 iterationsPC 3 |=========== | 45 iterationsPC 3 |=========== | 46 iterationsPC 3 |=========== | 47 iterationsPC 3 |============ | 48 iterationsPC 3 |============ | 49 iterationsPC 3 |============ | 50 iterationsPC 3 |============ | 51 iterationsPC 3 |============= | 52 iterationsPC 3 |============= | 53 iterationsPC 3 |============= | 54 iterationsPC 3 |============= | 55 iterationsPC 3 |============== | 56 iterationsPC 3 |============== | 57 iterationsPC 3 |============== | 58 iterationsPC 3 |============== | 59 iterationsPC 3 |=============== | 60 iterationsPC 3 |=============== | 61 iterationsPC 3 |=============== | 62 iterationsPC 3 |=============== | 63 iterationsPC 3 |================ | 64 iterationsPC 3 |================ | 65 iterationsPC 3 |================ | 66 iterationsPC 3 |================ | 67 iterationsPC 3 |================= | 68 iterationsPC 3 |================= | 69 iterationsPC 3 |================= | 70 iterationsPC 3 |================= | 71 iterationsPC 3 |================== | 72 iterationsPC 3 |================== | 73 iterationsPC 3 |================== | 74 iterationsPC 3 |================== | 75 iterationsPC 3 |=================== | 76 iterationsPC 3 |=================== | 77 iterationsPC 3 |=================== | 78 iterationsPC 3 |=================== | 79 iterationsPC 3 |==================== | 80 iterationsPC 3 |==================== | 81 iterationsPC 3 |==================== | 82 iterationsPC 3 |==================== | 83 iterationsPC 3 |===================== | 84 iterationsPC 3 |===================== | 85 iterationsPC 3 |===================== | 86 iterationsPC 3 |===================== | 87 iterationsPC 3 |====================== | 88 iterationsPC 3 |====================== | 89 iterationsPC 3 |====================== | 90 iterationsPC 3 |====================== | 91 iterationsPC 3 |======================= | 92 iterationsPC 3 |======================= | 93 iterationsPC 3 |======================= | 94 iterationsPC 3 |======================= | 95 iterationsPC 3 |======================== | 96 iterationsPC 3 |======================== | 97 iterationsPC 3 |======================== | 98 iterationsPC 3 |======================== | 99 iterationsPC 3 |========================= | 100 iterationsPC 3 |========================= | 101 iterationsPC 3 |========================= | 102 iterationsPC 3 |========================= | 103 iterationsPC 3 |========================== | 104 iterationsPC 3 |========================== | 105 iterations
#> PC 4 | | 1 iterationsPC 4 | | 2 iterationsPC 4 | | 3 iterationsPC 4 |= | 4 iterationsPC 4 |= | 5 iterationsPC 4 |= | 6 iterationsPC 4 |= | 7 iterationsPC 4 |== | 8 iterationsPC 4 |== | 9 iterationsPC 4 |== | 10 iterationsPC 4 |== | 11 iterationsPC 4 |=== | 12 iterationsPC 4 |=== | 13 iterationsPC 4 |=== | 14 iterationsPC 4 |=== | 15 iterationsPC 4 |==== | 16 iterationsPC 4 |==== | 17 iterationsPC 4 |==== | 18 iterationsPC 4 |==== | 19 iterationsPC 4 |===== | 20 iterationsPC 4 |===== | 21 iterationsPC 4 |===== | 22 iterationsPC 4 |===== | 23 iterationsPC 4 |====== | 24 iterationsPC 4 |====== | 25 iterationsPC 4 |====== | 26 iterationsPC 4 |====== | 27 iterationsPC 4 |======= | 28 iterationsPC 4 |======= | 29 iterationsPC 4 |======= | 30 iterationsPC 4 |======= | 31 iterationsPC 4 |======== | 32 iterationsPC 4 |======== | 33 iterationsPC 4 |======== | 34 iterationsPC 4 |======== | 35 iterationsPC 4 |========= | 36 iterationsPC 4 |========= | 37 iterationsPC 4 |========= | 38 iterationsPC 4 |========= | 39 iterationsPC 4 |========== | 40 iterationsPC 4 |========== | 41 iterationsPC 4 |========== | 42 iterationsPC 4 |========== | 43 iterationsPC 4 |=========== | 44 iterationsPC 4 |=========== | 45 iterationsPC 4 |=========== | 46 iterationsPC 4 |=========== | 47 iterationsPC 4 |============ | 48 iterationsPC 4 |============ | 49 iterationsPC 4 |============ | 50 iterationsPC 4 |============ | 51 iterationsPC 4 |============= | 52 iterationsPC 4 |============= | 53 iterationsPC 4 |============= | 54 iterationsPC 4 |============= | 55 iterationsPC 4 |============== | 56 iterationsPC 4 |============== | 57 iterationsPC 4 |============== | 58 iterationsPC 4 |============== | 59 iterationsPC 4 |=============== | 60 iterationsPC 4 |=============== | 61 iterationsPC 4 |=============== | 62 iterationsPC 4 |=============== | 63 iterationsPC 4 |================ | 64 iterationsPC 4 |================ | 65 iterationsPC 4 |================ | 66 iterationsPC 4 |================ | 67 iterationsPC 4 |================= | 68 iterationsPC 4 |================= | 69 iterationsPC 4 |================= | 70 iterationsPC 4 |================= | 71 iterationsPC 4 |================== | 72 iterationsPC 4 |================== | 73 iterationsPC 4 |================== | 74 iterationsPC 4 |================== | 75 iterationsPC 4 |=================== | 76 iterationsPC 4 |=================== | 77 iterationsPC 4 |=================== | 78 iterationsPC 4 |=================== | 79 iterationsPC 4 |==================== | 80 iterationsPC 4 |==================== | 81 iterationsPC 4 |==================== | 82 iterations
#> PC 5 | | 1 iterationsPC 5 | | 2 iterationsPC 5 | | 3 iterationsPC 5 |= | 4 iterationsPC 5 |= | 5 iterationsPC 5 |= | 6 iterationsPC 5 |= | 7 iterationsPC 5 |== | 8 iterationsPC 5 |== | 9 iterationsPC 5 |== | 10 iterationsPC 5 |== | 11 iterationsPC 5 |=== | 12 iterationsPC 5 |=== | 13 iterationsPC 5 |=== | 14 iterationsPC 5 |=== | 15 iterationsPC 5 |==== | 16 iterationsPC 5 |==== | 17 iterationsPC 5 |==== | 18 iterationsPC 5 |==== | 19 iterationsPC 5 |===== | 20 iterationsPC 5 |===== | 21 iterationsPC 5 |===== | 22 iterationsPC 5 |===== | 23 iterationsPC 5 |====== | 24 iterationsPC 5 |====== | 25 iterationsPC 5 |====== | 26 iterationsPC 5 |====== | 27 iterationsPC 5 |======= | 28 iterationsPC 5 |======= | 29 iterationsPC 5 |======= | 30 iterationsPC 5 |======= | 31 iterationsPC 5 |======== | 32 iterationsPC 5 |======== | 33 iterationsPC 5 |======== | 34 iterationsPC 5 |======== | 35 iterationsPC 5 |========= | 36 iterationsPC 5 |========= | 37 iterationsPC 5 |========= | 38 iterationsPC 5 |========= | 39 iterationsPC 5 |========== | 40 iterationsPC 5 |========== | 41 iterationsPC 5 |========== | 42 iterationsPC 5 |========== | 43 iterationsPC 5 |=========== | 44 iterationsPC 5 |=========== | 45 iterationsPC 5 |=========== | 46 iterationsPC 5 |=========== | 47 iterationsPC 5 |============ | 48 iterationsPC 5 |============ | 49 iterationsPC 5 |============ | 50 iterationsPC 5 |============ | 51 iterationsPC 5 |============= | 52 iterationsPC 5 |============= | 53 iterationsPC 5 |============= | 54 iterationsPC 5 |============= | 55 iterationsPC 5 |============== | 56 iterationsPC 5 |============== | 57 iterationsPC 5 |============== | 58 iterationsPC 5 |============== | 59 iterationsPC 5 |=============== | 60 iterationsPC 5 |=============== | 61 iterationsPC 5 |=============== | 62 iterationsPC 5 |=============== | 63 iterationsPC 5 |================ | 64 iterationsPC 5 |================ | 65 iterationsPC 5 |================ | 66 iterationsPC 5 |================ | 67 iterationsPC 5 |================= | 68 iterationsPC 5 |================= | 69 iterationsPC 5 |================= | 70 iterationsPC 5 |================= | 71 iterationsPC 5 |================== | 72 iterations
#> PC 6 | | 1 iterationsPC 6 | | 2 iterationsPC 6 | | 3 iterationsPC 6 |= | 4 iterationsPC 6 |= | 5 iterationsPC 6 |= | 6 iterationsPC 6 |= | 7 iterationsPC 6 |== | 8 iterationsPC 6 |== | 9 iterationsPC 6 |== | 10 iterationsPC 6 |== | 11 iterationsPC 6 |=== | 12 iterationsPC 6 |=== | 13 iterationsPC 6 |=== | 14 iterationsPC 6 |=== | 15 iterationsPC 6 |==== | 16 iterationsPC 6 |==== | 17 iterationsPC 6 |==== | 18 iterationsPC 6 |==== | 19 iterationsPC 6 |===== | 20 iterationsPC 6 |===== | 21 iterationsPC 6 |===== | 22 iterationsPC 6 |===== | 23 iterationsPC 6 |====== | 24 iterationsPC 6 |====== | 25 iterationsPC 6 |====== | 26 iterationsPC 6 |====== | 27 iterationsPC 6 |======= | 28 iterationsPC 6 |======= | 29 iterationsPC 6 |======= | 30 iterationsPC 6 |======= | 31 iterationsPC 6 |======== | 32 iterationsPC 6 |======== | 33 iterationsPC 6 |======== | 34 iterationsPC 6 |======== | 35 iterationsPC 6 |========= | 36 iterationsPC 6 |========= | 37 iterationsPC 6 |========= | 38 iterationsPC 6 |========= | 39 iterationsPC 6 |========== | 40 iterationsPC 6 |========== | 41 iterationsPC 6 |========== | 42 iterationsPC 6 |========== | 43 iterationsPC 6 |=========== | 44 iterationsPC 6 |=========== | 45 iterationsPC 6 |=========== | 46 iterationsPC 6 |=========== | 47 iterationsPC 6 |============ | 48 iterationsPC 6 |============ | 49 iterationsPC 6 |============ | 50 iterationsPC 6 |============ | 51 iterationsPC 6 |============= | 52 iterationsPC 6 |============= | 53 iterationsPC 6 |============= | 54 iterationsPC 6 |============= | 55 iterationsPC 6 |============== | 56 iterationsPC 6 |============== | 57 iterationsPC 6 |============== | 58 iterationsPC 6 |============== | 59 iterationsPC 6 |=============== | 60 iterationsPC 6 |=============== | 61 iterationsPC 6 |=============== | 62 iterationsPC 6 |=============== | 63 iterationsPC 6 |================ | 64 iterationsPC 6 |================ | 65 iterationsPC 6 |================ | 66 iterationsPC 6 |================ | 67 iterationsPC 6 |================= | 68 iterationsPC 6 |================= | 69 iterationsPC 6 |================= | 70 iterationsPC 6 |================= | 71 iterationsPC 6 |================== | 72 iterationsPC 6 |================== | 73 iterationsPC 6 |================== | 74 iterationsPC 6 |================== | 75 iterationsPC 6 |=================== | 76 iterationsPC 6 |=================== | 77 iterationsPC 6 |=================== | 78 iterationsPC 6 |=================== | 79 iterations
#> PC 7 | | 1 iterationsPC 7 | | 2 iterationsPC 7 | | 3 iterationsPC 7 |= | 4 iterationsPC 7 |= | 5 iterationsPC 7 |= | 6 iterationsPC 7 |= | 7 iterationsPC 7 |== | 8 iterationsPC 7 |== | 9 iterationsPC 7 |== | 10 iterationsPC 7 |== | 11 iterationsPC 7 |=== | 12 iterationsPC 7 |=== | 13 iterationsPC 7 |=== | 14 iterationsPC 7 |=== | 15 iterationsPC 7 |==== | 16 iterationsPC 7 |==== | 17 iterationsPC 7 |==== | 18 iterationsPC 7 |==== | 19 iterationsPC 7 |===== | 20 iterationsPC 7 |===== | 21 iterationsPC 7 |===== | 22 iterationsPC 7 |===== | 23 iterationsPC 7 |====== | 24 iterationsPC 7 |====== | 25 iterationsPC 7 |====== | 26 iterationsPC 7 |====== | 27 iterationsPC 7 |======= | 28 iterationsPC 7 |======= | 29 iterationsPC 7 |======= | 30 iterationsPC 7 |======= | 31 iterationsPC 7 |======== | 32 iterationsPC 7 |======== | 33 iterationsPC 7 |======== | 34 iterationsPC 7 |======== | 35 iterationsPC 7 |========= | 36 iterationsPC 7 |========= | 37 iterationsPC 7 |========= | 38 iterationsPC 7 |========= | 39 iterationsPC 7 |========== | 40 iterationsPC 7 |========== | 41 iterationsPC 7 |========== | 42 iterationsPC 7 |========== | 43 iterationsPC 7 |=========== | 44 iterationsPC 7 |=========== | 45 iterationsPC 7 |=========== | 46 iterationsPC 7 |=========== | 47 iterationsPC 7 |============ | 48 iterationsPC 7 |============ | 49 iterationsPC 7 |============ | 50 iterationsPC 7 |============ | 51 iterationsPC 7 |============= | 52 iterationsPC 7 |============= | 53 iterationsPC 7 |============= | 54 iterationsPC 7 |============= | 55 iterationsPC 7 |============== | 56 iterationsPC 7 |============== | 57 iterationsPC 7 |============== | 58 iterationsPC 7 |============== | 59 iterationsPC 7 |=============== | 60 iterationsPC 7 |=============== | 61 iterationsPC 7 |=============== | 62 iterationsPC 7 |=============== | 63 iterationsPC 7 |================ | 64 iterationsPC 7 |================ | 65 iterationsPC 7 |================ | 66 iterationsPC 7 |================ | 67 iterationsPC 7 |================= | 68 iterationsPC 7 |================= | 69 iterationsPC 7 |================= | 70 iterationsPC 7 |================= | 71 iterationsPC 7 |================== | 72 iterationsPC 7 |================== | 73 iterationsPC 7 |================== | 74 iterationsPC 7 |================== | 75 iterationsPC 7 |=================== | 76 iterationsPC 7 |=================== | 77 iterationsPC 7 |=================== | 78 iterationsPC 7 |=================== | 79 iterationsPC 7 |==================== | 80 iterationsPC 7 |==================== | 81 iterationsPC 7 |==================== | 82 iterationsPC 7 |==================== | 83 iterationsPC 7 |===================== | 84 iterationsPC 7 |===================== | 85 iterationsPC 7 |===================== | 86 iterationsPC 7 |===================== | 87 iterationsPC 7 |====================== | 88 iterationsPC 7 |====================== | 89 iterationsPC 7 |====================== | 90 iterationsPC 7 |====================== | 91 iterationsPC 7 |======================= | 92 iterationsPC 7 |======================= | 93 iterationsPC 7 |======================= | 94 iterationsPC 7 |======================= | 95 iterationsPC 7 |======================== | 96 iterationsPC 7 |======================== | 97 iterationsPC 7 |======================== | 98 iterationsPC 7 |======================== | 99 iterationsPC 7 |========================= | 100 iterationsPC 7 |========================= | 101 iterationsPC 7 |========================= | 102 iterationsPC 7 |========================= | 103 iterationsPC 7 |========================== | 104 iterationsPC 7 |========================== | 105 iterationsPC 7 |========================== | 106 iterationsPC 7 |========================== | 107 iterationsPC 7 |=========================== | 108 iterationsPC 7 |=========================== | 109 iterationsPC 7 |=========================== | 110 iterationsPC 7 |=========================== | 111 iterationsPC 7 |============================ | 112 iterationsPC 7 |============================ | 113 iterationsPC 7 |============================ | 114 iterationsPC 7 |============================ | 115 iterationsPC 7 |============================ | 116 iterationsPC 7 |============================= | 117 iterationsPC 7 |============================= | 118 iterationsPC 7 |============================= | 119 iterationsPC 7 |============================== | 120 iterationsPC 7 |============================== | 121 iterationsPC 7 |============================== | 122 iterationsPC 7 |============================== | 123 iterationsPC 7 |=============================== | 124 iterationsPC 7 |=============================== | 125 iterationsPC 7 |=============================== | 126 iterationsPC 7 |=============================== | 127 iterationsPC 7 |================================ | 128 iterationsPC 7 |================================ | 129 iterationsPC 7 |================================ | 130 iterationsPC 7 |================================ | 131 iterationsPC 7 |================================= | 132 iterationsPC 7 |================================= | 133 iterationsPC 7 |================================= | 134 iterationsPC 7 |================================= | 135 iterations
#> PC 8 | | 1 iterationsPC 8 | | 2 iterationsPC 8 | | 3 iterationsPC 8 |= | 4 iterationsPC 8 |= | 5 iterationsPC 8 |= | 6 iterationsPC 8 |= | 7 iterationsPC 8 |== | 8 iterationsPC 8 |== | 9 iterationsPC 8 |== | 10 iterationsPC 8 |== | 11 iterationsPC 8 |=== | 12 iterationsPC 8 |=== | 13 iterationsPC 8 |=== | 14 iterationsPC 8 |=== | 15 iterationsPC 8 |==== | 16 iterationsPC 8 |==== | 17 iterationsPC 8 |==== | 18 iterationsPC 8 |==== | 19 iterationsPC 8 |===== | 20 iterationsPC 8 |===== | 21 iterationsPC 8 |===== | 22 iterationsPC 8 |===== | 23 iterationsPC 8 |====== | 24 iterationsPC 8 |====== | 25 iterationsPC 8 |====== | 26 iterationsPC 8 |====== | 27 iterationsPC 8 |======= | 28 iterationsPC 8 |======= | 29 iterationsPC 8 |======= | 30 iterationsPC 8 |======= | 31 iterationsPC 8 |======== | 32 iterationsPC 8 |======== | 33 iterationsPC 8 |======== | 34 iterationsPC 8 |======== | 35 iterationsPC 8 |========= | 36 iterationsPC 8 |========= | 37 iterationsPC 8 |========= | 38 iterationsPC 8 |========= | 39 iterationsPC 8 |========== | 40 iterationsPC 8 |========== | 41 iterationsPC 8 |========== | 42 iterationsPC 8 |========== | 43 iterationsPC 8 |=========== | 44 iterationsPC 8 |=========== | 45 iterationsPC 8 |=========== | 46 iterationsPC 8 |=========== | 47 iterationsPC 8 |============ | 48 iterationsPC 8 |============ | 49 iterationsPC 8 |============ | 50 iterationsPC 8 |============ | 51 iterationsPC 8 |============= | 52 iterationsPC 8 |============= | 53 iterationsPC 8 |============= | 54 iterationsPC 8 |============= | 55 iterationsPC 8 |============== | 56 iterationsPC 8 |============== | 57 iterationsPC 8 |============== | 58 iterationsPC 8 |============== | 59 iterationsPC 8 |=============== | 60 iterationsPC 8 |=============== | 61 iterationsPC 8 |=============== | 62 iterationsPC 8 |=============== | 63 iterationsPC 8 |================ | 64 iterationsPC 8 |================ | 65 iterationsPC 8 |================ | 66 iterationsPC 8 |================ | 67 iterationsPC 8 |================= | 68 iterationsPC 8 |================= | 69 iterationsPC 8 |================= | 70 iterationsPC 8 |================= | 71 iterationsPC 8 |================== | 72 iterationsPC 8 |================== | 73 iterationsPC 8 |================== | 74 iterationsPC 8 |================== | 75 iterationsPC 8 |=================== | 76 iterationsPC 8 |=================== | 77 iterationsPC 8 |=================== | 78 iterationsPC 8 |=================== | 79 iterationsPC 8 |==================== | 80 iterationsPC 8 |==================== | 81 iterationsPC 8 |==================== | 82 iterationsPC 8 |==================== | 83 iterationsPC 8 |===================== | 84 iterationsPC 8 |===================== | 85 iterationsPC 8 |===================== | 86 iterationsPC 8 |===================== | 87 iterationsPC 8 |====================== | 88 iterationsPC 8 |====================== | 89 iterationsPC 8 |====================== | 90 iterationsPC 8 |====================== | 91 iterationsPC 8 |======================= | 92 iterationsPC 8 |======================= | 93 iterationsPC 8 |======================= | 94 iterationsPC 8 |======================= | 95 iterationsPC 8 |======================== | 96 iterationsPC 8 |======================== | 97 iterationsPC 8 |======================== | 98 iterationsPC 8 |======================== | 99 iterationsPC 8 |========================= | 100 iterationsPC 8 |========================= | 101 iterationsPC 8 |========================= | 102 iterationsPC 8 |========================= | 103 iterationsPC 8 |========================== | 104 iterationsPC 8 |========================== | 105 iterationsPC 8 |========================== | 106 iterationsPC 8 |========================== | 107 iterationsPC 8 |=========================== | 108 iterationsPC 8 |=========================== | 109 iterationsPC 8 |=========================== | 110 iterationsPC 8 |=========================== | 111 iterationsPC 8 |============================ | 112 iterationsPC 8 |============================ | 113 iterationsPC 8 |============================ | 114 iterationsPC 8 |============================ | 115 iterationsPC 8 |============================ | 116 iterationsPC 8 |============================= | 117 iterationsPC 8 |============================= | 118 iterationsPC 8 |============================= | 119 iterationsPC 8 |============================== | 120 iterationsPC 8 |============================== | 121 iterationsPC 8 |============================== | 122 iterationsPC 8 |============================== | 123 iterationsPC 8 |=============================== | 124 iterationsPC 8 |=============================== | 125 iterationsPC 8 |=============================== | 126 iterationsPC 8 |=============================== | 127 iterationsPC 8 |================================ | 128 iterationsPC 8 |================================ | 129 iterationsPC 8 |================================ | 130 iterationsPC 8 |================================ | 131 iterationsPC 8 |================================= | 132 iterationsPC 8 |================================= | 133 iterationsPC 8 |================================= | 134 iterationsPC 8 |================================= | 135 iterationsPC 8 |================================== | 136 iterationsPC 8 |================================== | 137 iterationsPC 8 |================================== | 138 iterationsPC 8 |================================== | 139 iterationsPC 8 |=================================== | 140 iterationsPC 8 |=================================== | 141 iterationsPC 8 |=================================== | 142 iterationsPC 8 |=================================== | 143 iterationsPC 8 |==================================== | 144 iterationsPC 8 |==================================== | 145 iterationsPC 8 |==================================== | 146 iterationsPC 8 |==================================== | 147 iterationsPC 8 |===================================== | 148 iterationsPC 8 |===================================== | 149 iterationsPC 8 |===================================== | 150 iterationsPC 8 |===================================== | 151 iterationsPC 8 |====================================== | 152 iterationsPC 8 |====================================== | 153 iterationsPC 8 |====================================== | 154 iterationsPC 8 |====================================== | 155 iterationsPC 8 |======================================= | 156 iterationsPC 8 |======================================= | 157 iterationsPC 8 |======================================= | 158 iterationsPC 8 |======================================= | 159 iterationsPC 8 |======================================== | 160 iterationsPC 8 |======================================== | 161 iterationsPC 8 |======================================== | 162 iterationsPC 8 |======================================== | 163 iterationsPC 8 |========================================= | 164 iterationsPC 8 |========================================= | 165 iterationsPC 8 |========================================= | 166 iterationsPC 8 |========================================= | 167 iterationsPC 8 |========================================== | 168 iterationsPC 8 |========================================== | 169 iterationsPC 8 |========================================== | 170 iterationsPC 8 |========================================== | 171 iterationsPC 8 |=========================================== | 172 iterationsPC 8 |=========================================== | 173 iterationsPC 8 |=========================================== | 174 iterationsPC 8 |=========================================== | 175 iterationsPC 8 |============================================ | 176 iterationsPC 8 |============================================ | 177 iterationsPC 8 |============================================ | 178 iterationsPC 8 |============================================ | 179 iterationsPC 8 |============================================= | 180 iterationsPC 8 |============================================= | 181 iterationsPC 8 |============================================= | 182 iterationsPC 8 |============================================= | 183 iterationsPC 8 |============================================== | 184 iterationsPC 8 |============================================== | 185 iterationsPC 8 |============================================== | 186 iterationsPC 8 |============================================== | 187 iterationsPC 8 |=============================================== | 188 iterationsPC 8 |=============================================== | 189 iterationsPC 8 |=============================================== | 190 iterationsPC 8 |=============================================== | 191 iterationsPC 8 |================================================ | 192 iterationsPC 8 |================================================ | 193 iterationsPC 8 |================================================ | 194 iterationsPC 8 |================================================ | 195 iterationsPC 8 |================================================= | 196 iterationsPC 8 |================================================= | 197 iterationsPC 8 |================================================= | 198 iterationsPC 8 |================================================= | 199 iterationsPC 8 |==================================================| 200 iterations
#> PC 9 | | 1 iterationsPC 9 | | 2 iterationsPC 9 | | 3 iterationsPC 9 |= | 4 iterationsPC 9 |= | 5 iterationsPC 9 |= | 6 iterationsPC 9 |= | 7 iterationsPC 9 |== | 8 iterationsPC 9 |== | 9 iterationsPC 9 |== | 10 iterationsPC 9 |== | 11 iterationsPC 9 |=== | 12 iterationsPC 9 |=== | 13 iterationsPC 9 |=== | 14 iterationsPC 9 |=== | 15 iterationsPC 9 |==== | 16 iterationsPC 9 |==== | 17 iterationsPC 9 |==== | 18 iterationsPC 9 |==== | 19 iterationsPC 9 |===== | 20 iterationsPC 9 |===== | 21 iterationsPC 9 |===== | 22 iterationsPC 9 |===== | 23 iterationsPC 9 |====== | 24 iterationsPC 9 |====== | 25 iterationsPC 9 |====== | 26 iterationsPC 9 |====== | 27 iterationsPC 9 |======= | 28 iterationsPC 9 |======= | 29 iterationsPC 9 |======= | 30 iterationsPC 9 |======= | 31 iterationsPC 9 |======== | 32 iterationsPC 9 |======== | 33 iterationsPC 9 |======== | 34 iterationsPC 9 |======== | 35 iterationsPC 9 |========= | 36 iterationsPC 9 |========= | 37 iterationsPC 9 |========= | 38 iterationsPC 9 |========= | 39 iterationsPC 9 |========== | 40 iterationsPC 9 |========== | 41 iterationsPC 9 |========== | 42 iterationsPC 9 |========== | 43 iterationsPC 9 |=========== | 44 iterationsPC 9 |=========== | 45 iterationsPC 9 |=========== | 46 iterationsPC 9 |=========== | 47 iterationsPC 9 |============ | 48 iterationsPC 9 |============ | 49 iterationsPC 9 |============ | 50 iterationsPC 9 |============ | 51 iterationsPC 9 |============= | 52 iterationsPC 9 |============= | 53 iterationsPC 9 |============= | 54 iterationsPC 9 |============= | 55 iterationsPC 9 |============== | 56 iterationsPC 9 |============== | 57 iterationsPC 9 |============== | 58 iterationsPC 9 |============== | 59 iterationsPC 9 |=============== | 60 iterationsPC 9 |=============== | 61 iterationsPC 9 |=============== | 62 iterationsPC 9 |=============== | 63 iterationsPC 9 |================ | 64 iterationsPC 9 |================ | 65 iterationsPC 9 |================ | 66 iterationsPC 9 |================ | 67 iterationsPC 9 |================= | 68 iterationsPC 9 |================= | 69 iterationsPC 9 |================= | 70 iterationsPC 9 |================= | 71 iterationsPC 9 |================== | 72 iterationsPC 9 |================== | 73 iterationsPC 9 |================== | 74 iterationsPC 9 |================== | 75 iterationsPC 9 |=================== | 76 iterationsPC 9 |=================== | 77 iterationsPC 9 |=================== | 78 iterationsPC 9 |=================== | 79 iterationsPC 9 |==================== | 80 iterationsPC 9 |==================== | 81 iterationsPC 9 |==================== | 82 iterationsPC 9 |==================== | 83 iterationsPC 9 |===================== | 84 iterationsPC 9 |===================== | 85 iterationsPC 9 |===================== | 86 iterationsPC 9 |===================== | 87 iterationsPC 9 |====================== | 88 iterationsPC 9 |====================== | 89 iterationsPC 9 |====================== | 90 iterationsPC 9 |====================== | 91 iterationsPC 9 |======================= | 92 iterationsPC 9 |======================= | 93 iterationsPC 9 |======================= | 94 iterationsPC 9 |======================= | 95 iterationsPC 9 |======================== | 96 iterationsPC 9 |======================== | 97 iterationsPC 9 |======================== | 98 iterationsPC 9 |======================== | 99 iterationsPC 9 |========================= | 100 iterationsPC 9 |========================= | 101 iterationsPC 9 |========================= | 102 iterationsPC 9 |========================= | 103 iterationsPC 9 |========================== | 104 iterationsPC 9 |========================== | 105 iterationsPC 9 |========================== | 106 iterationsPC 9 |========================== | 107 iterationsPC 9 |=========================== | 108 iterationsPC 9 |=========================== | 109 iterationsPC 9 |=========================== | 110 iterationsPC 9 |=========================== | 111 iterationsPC 9 |============================ | 112 iterationsPC 9 |============================ | 113 iterationsPC 9 |============================ | 114 iterationsPC 9 |============================ | 115 iterationsPC 9 |============================ | 116 iterationsPC 9 |============================= | 117 iterationsPC 9 |============================= | 118 iterationsPC 9 |============================= | 119 iterationsPC 9 |============================== | 120 iterationsPC 9 |============================== | 121 iterationsPC 9 |============================== | 122 iterationsPC 9 |============================== | 123 iterationsPC 9 |=============================== | 124 iterationsPC 9 |=============================== | 125 iterationsPC 9 |=============================== | 126 iterationsPC 9 |=============================== | 127 iterationsPC 9 |================================ | 128 iterationsPC 9 |================================ | 129 iterationsPC 9 |================================ | 130 iterationsPC 9 |================================ | 131 iterationsPC 9 |================================= | 132 iterationsPC 9 |================================= | 133 iterationsPC 9 |================================= | 134 iterationsPC 9 |================================= | 135 iterationsPC 9 |================================== | 136 iterationsPC 9 |================================== | 137 iterationsPC 9 |================================== | 138 iterationsPC 9 |================================== | 139 iterationsPC 9 |=================================== | 140 iterationsPC 9 |=================================== | 141 iterationsPC 9 |=================================== | 142 iterationsPC 9 |=================================== | 143 iterationsPC 9 |==================================== | 144 iterationsPC 9 |==================================== | 145 iterationsPC 9 |==================================== | 146 iterationsPC 9 |==================================== | 147 iterationsPC 9 |===================================== | 148 iterationsPC 9 |===================================== | 149 iterationsPC 9 |===================================== | 150 iterationsPC 9 |===================================== | 151 iterationsPC 9 |====================================== | 152 iterationsPC 9 |====================================== | 153 iterationsPC 9 |====================================== | 154 iterationsPC 9 |====================================== | 155 iterationsPC 9 |======================================= | 156 iterationsPC 9 |======================================= | 157 iterationsPC 9 |======================================= | 158 iterationsPC 9 |======================================= | 159 iterationsPC 9 |======================================== | 160 iterationsPC 9 |======================================== | 161 iterationsPC 9 |======================================== | 162 iterationsPC 9 |======================================== | 163 iterationsPC 9 |========================================= | 164 iterationsPC 9 |========================================= | 165 iterationsPC 9 |========================================= | 166 iterationsPC 9 |========================================= | 167 iterationsPC 9 |========================================== | 168 iterationsPC 9 |========================================== | 169 iterationsPC 9 |========================================== | 170 iterationsPC 9 |========================================== | 171 iterationsPC 9 |=========================================== | 172 iterationsPC 9 |=========================================== | 173 iterationsPC 9 |=========================================== | 174 iterationsPC 9 |=========================================== | 175 iterationsPC 9 |============================================ | 176 iterationsPC 9 |============================================ | 177 iterationsPC 9 |============================================ | 178 iterationsPC 9 |============================================ | 179 iterationsPC 9 |============================================= | 180 iterationsPC 9 |============================================= | 181 iterationsPC 9 |============================================= | 182 iterationsPC 9 |============================================= | 183 iterationsPC 9 |============================================== | 184 iterationsPC 9 |============================================== | 185 iterationsPC 9 |============================================== | 186 iterationsPC 9 |============================================== | 187 iterationsPC 9 |=============================================== | 188 iterationsPC 9 |=============================================== | 189 iterationsPC 9 |=============================================== | 190 iterationsPC 9 |=============================================== | 191 iterationsPC 9 |================================================ | 192 iterationsPC 9 |================================================ | 193 iterationsPC 9 |================================================ | 194 iterationsPC 9 |================================================ | 195 iterationsPC 9 |================================================= | 196 iterationsPC 9 |================================================= | 197 iterationsPC 9 |================================================= | 198 iterationsPC 9 |================================================= | 199 iterations
#> PC 10 | | 1 iterationsPC 10 | | 2 iterationsPC 10 | | 3 iterationsPC 10 |= | 4 iterationsPC 10 |= | 5 iterationsPC 10 |= | 6 iterationsPC 10 |= | 7 iterationsPC 10 |== | 8 iterationsPC 10 |== | 9 iterationsPC 10 |== | 10 iterationsPC 10 |== | 11 iterationsPC 10 |=== | 12 iterationsPC 10 |=== | 13 iterationsPC 10 |=== | 14 iterationsPC 10 |=== | 15 iterationsPC 10 |==== | 16 iterationsPC 10 |==== | 17 iterationsPC 10 |==== | 18 iterationsPC 10 |==== | 19 iterationsPC 10 |===== | 20 iterationsPC 10 |===== | 21 iterationsPC 10 |===== | 22 iterationsPC 10 |===== | 23 iterationsPC 10 |====== | 24 iterationsPC 10 |====== | 25 iterationsPC 10 |====== | 26 iterationsPC 10 |====== | 27 iterationsPC 10 |======= | 28 iterationsPC 10 |======= | 29 iterationsPC 10 |======= | 30 iterationsPC 10 |======= | 31 iterationsPC 10 |======== | 32 iterationsPC 10 |======== | 33 iterationsPC 10 |======== | 34 iterationsPC 10 |======== | 35 iterationsPC 10 |========= | 36 iterationsPC 10 |========= | 37 iterationsPC 10 |========= | 38 iterationsPC 10 |========= | 39 iterationsPC 10 |========== | 40 iterationsPC 10 |========== | 41 iterationsPC 10 |========== | 42 iterationsPC 10 |========== | 43 iterationsPC 10 |=========== | 44 iterationsPC 10 |=========== | 45 iterationsPC 10 |=========== | 46 iterationsPC 10 |=========== | 47 iterationsPC 10 |============ | 48 iterationsPC 10 |============ | 49 iterationsPC 10 |============ | 50 iterationsPC 10 |============ | 51 iterationsPC 10 |============= | 52 iterationsPC 10 |============= | 53 iterationsPC 10 |============= | 54 iterationsPC 10 |============= | 55 iterationsPC 10 |============== | 56 iterationsPC 10 |============== | 57 iterationsPC 10 |============== | 58 iterationsPC 10 |============== | 59 iterationsPC 10 |=============== | 60 iterationsPC 10 |=============== | 61 iterationsPC 10 |=============== | 62 iterationsPC 10 |=============== | 63 iterationsPC 10 |================ | 64 iterationsPC 10 |================ | 65 iterationsPC 10 |================ | 66 iterationsPC 10 |================ | 67 iterationsPC 10 |================= | 68 iterationsPC 10 |================= | 69 iterationsPC 10 |================= | 70 iterationsPC 10 |================= | 71 iterationsPC 10 |================== | 72 iterationsPC 10 |================== | 73 iterationsPC 10 |================== | 74 iterationsPC 10 |================== | 75 iterationsPC 10 |=================== | 76 iterationsPC 10 |=================== | 77 iterationsPC 10 |=================== | 78 iterationsPC 10 |=================== | 79 iterationsPC 10 |==================== | 80 iterationsPC 10 |==================== | 81 iterationsPC 10 |==================== | 82 iterationsPC 10 |==================== | 83 iterationsPC 10 |===================== | 84 iterationsPC 10 |===================== | 85 iterationsPC 10 |===================== | 86 iterationsPC 10 |===================== | 87 iterationsPC 10 |====================== | 88 iterationsPC 10 |====================== | 89 iterationsPC 10 |====================== | 90 iterationsPC 10 |====================== | 91 iterationsPC 10 |======================= | 92 iterationsPC 10 |======================= | 93 iterationsPC 10 |======================= | 94 iterationsPC 10 |======================= | 95 iterationsPC 10 |======================== | 96 iterationsPC 10 |======================== | 97 iterationsPC 10 |======================== | 98 iterationsPC 10 |======================== | 99 iterationsPC 10 |========================= | 100 iterationsPC 10 |========================= | 101 iterationsPC 10 |========================= | 102 iterationsPC 10 |========================= | 103 iterationsPC 10 |========================== | 104 iterationsPC 10 |========================== | 105 iterationsPC 10 |========================== | 106 iterationsPC 10 |========================== | 107 iterationsPC 10 |=========================== | 108 iterationsPC 10 |=========================== | 109 iterationsPC 10 |=========================== | 110 iterationsPC 10 |=========================== | 111 iterationsPC 10 |============================ | 112 iterationsPC 10 |============================ | 113 iterationsPC 10 |============================ | 114 iterationsPC 10 |============================ | 115 iterationsPC 10 |============================ | 116 iterationsPC 10 |============================= | 117 iterationsPC 10 |============================= | 118 iterationsPC 10 |============================= | 119 iterationsPC 10 |============================== | 120 iterationsPC 10 |============================== | 121 iterationsPC 10 |============================== | 122 iterationsPC 10 |============================== | 123 iterationsPC 10 |=============================== | 124 iterationsPC 10 |=============================== | 125 iterationsPC 10 |=============================== | 126 iterationsPC 10 |=============================== | 127 iterationsPC 10 |================================ | 128 iterationsPC 10 |================================ | 129 iterationsPC 10 |================================ | 130 iterationsPC 10 |================================ | 131 iterationsPC 10 |================================= | 132 iterationsPC 10 |================================= | 133 iterationsPC 10 |================================= | 134 iterationsPC 10 |================================= | 135 iterationsPC 10 |================================== | 136 iterationsPC 10 |================================== | 137 iterationsPC 10 |================================== | 138 iterationsPC 10 |================================== | 139 iterationsPC 10 |=================================== | 140 iterationsPC 10 |=================================== | 141 iterationsPC 10 |=================================== | 142 iterationsPC 10 |=================================== | 143 iterationsPC 10 |==================================== | 144 iterationsPC 10 |==================================== | 145 iterationsPC 10 |==================================== | 146 iterationsPC 10 |==================================== | 147 iterationsPC 10 |===================================== | 148 iterationsPC 10 |===================================== | 149 iterationsPC 10 |===================================== | 150 iterationsPC 10 |===================================== | 151 iterationsPC 10 |====================================== | 152 iterationsPC 10 |====================================== | 153 iterationsPC 10 |====================================== | 154 iterationsPC 10 |====================================== | 155 iterationsPC 10 |======================================= | 156 iterationsPC 10 |======================================= | 157 iterationsPC 10 |======================================= | 158 iterationsPC 10 |======================================= | 159 iterationsPC 10 |======================================== | 160 iterationsPC 10 |======================================== | 161 iterationsPC 10 |======================================== | 162 iterationsPC 10 |======================================== | 163 iterationsPC 10 |========================================= | 164 iterationsPC 10 |========================================= | 165 iterationsPC 10 |========================================= | 166 iterationsPC 10 |========================================= | 167 iterationsPC 10 |========================================== | 168 iterationsPC 10 |========================================== | 169 iterationsPC 10 |========================================== | 170 iterationsPC 10 |========================================== | 171 iterationsPC 10 |=========================================== | 172 iterationsPC 10 |=========================================== | 173 iterationsPC 10 |=========================================== | 174 iterationsPC 10 |=========================================== | 175 iterationsPC 10 |============================================ | 176 iterationsPC 10 |============================================ | 177 iterationsPC 10 |============================================ | 178 iterationsPC 10 |============================================ | 179 iterationsPC 10 |============================================= | 180 iterationsPC 10 |============================================= | 181 iterationsPC 10 |============================================= | 182 iterationsPC 10 |============================================= | 183 iterationsPC 10 |============================================== | 184 iterationsPC 10 |============================================== | 185 iterationsPC 10 |============================================== | 186 iterationsPC 10 |============================================== | 187 iterationsPC 10 |=============================================== | 188 iterationsPC 10 |=============================================== | 189 iterationsPC 10 |=============================================== | 190 iterationsPC 10 |=============================================== | 191 iterationsPC 10 |================================================ | 192 iterationsPC 10 |================================================ | 193 iterationsPC 10 |================================================ | 194 iterationsPC 10 |================================================ | 195 iterationsPC 10 |================================================= | 196 iterationsPC 10 |================================================= | 197 iterationsPC 10 |================================================= | 198 iterationsPC 10 |================================================= | 199 iterationsPC 10 |==================================================| 200 iterations
#> PC 11 | | 1 iterationsPC 11 | | 2 iterationsPC 11 | | 3 iterationsPC 11 |= | 4 iterationsPC 11 |= | 5 iterationsPC 11 |= | 6 iterationsPC 11 |= | 7 iterationsPC 11 |== | 8 iterationsPC 11 |== | 9 iterationsPC 11 |== | 10 iterationsPC 11 |== | 11 iterationsPC 11 |=== | 12 iterationsPC 11 |=== | 13 iterationsPC 11 |=== | 14 iterationsPC 11 |=== | 15 iterationsPC 11 |==== | 16 iterationsPC 11 |==== | 17 iterationsPC 11 |==== | 18 iterationsPC 11 |==== | 19 iterationsPC 11 |===== | 20 iterationsPC 11 |===== | 21 iterationsPC 11 |===== | 22 iterationsPC 11 |===== | 23 iterationsPC 11 |====== | 24 iterationsPC 11 |====== | 25 iterationsPC 11 |====== | 26 iterationsPC 11 |====== | 27 iterationsPC 11 |======= | 28 iterationsPC 11 |======= | 29 iterationsPC 11 |======= | 30 iterationsPC 11 |======= | 31 iterationsPC 11 |======== | 32 iterationsPC 11 |======== | 33 iterations
#> PC 12 | | 1 iterations
#> PC 13 | | 1 iterations
$plot_tpo pca
The optimal parameter values is \(\eta=\) 1.
summary(pca, k = 3)
#>
#> Sparse Multi-Source PCA Summary
#> ==============================================
#> Number of groups (N): 23
#> Number of variables (p): 13
#> Number of components (k): 13
#> Sparsity parameters (gamma, eta): 0.5 , 1
#>
#> Component-wise Summary:
#>
#> PC1:
#> Group | Explained Var (%) | Non-zero Loadings
#> -----------------------------------------------
#> 2001 | 51.05% | 10 / 13
#> 2002 | 56.84% | 10 / 13
#> 2003 | 40.68% | 13 / 13
#> 2004 | 53.00% | 8 / 13
#> 2005 | 52.43% | 10 / 13
#> 2006 | 44.01% | 12 / 13
#> 2007 | 43.87% | 10 / 13
#> 2008 | 41.83% | 9 / 13
#> 2009 | 47.69% | 9 / 13
#> 2010 | 45.79% | 10 / 13
#> 2011 | 33.91% | 13 / 13
#> 2012 | 44.37% | 11 / 13
#> 2013 | 36.62% | 13 / 13
#> 2014 | 38.06% | 13 / 13
#> 2015 | 31.58% | 13 / 13
#> 2016 | 43.72% | 13 / 13
#> 2017 | 39.56% | 13 / 13
#> 2018 | 43.75% | 12 / 13
#> 2019 | 36.66% | 12 / 13
#> 2020 | 30.45% | 13 / 13
#> 2021 | 39.32% | 13 / 13
#> 2022 | 35.62% | 12 / 13
#> 2023 | 38.86% | 13 / 13
#>
#> PC2:
#> Group | Explained Var (%) | Non-zero Loadings
#> -----------------------------------------------
#> 2001 | 21.88% | 13 / 13
#> 2002 | 19.63% | 12 / 13
#> 2003 | 29.19% | 12 / 13
#> 2004 | 20.36% | 12 / 13
#> 2005 | 20.47% | 12 / 13
#> 2006 | 26.38% | 12 / 13
#> 2007 | 26.27% | 13 / 13
#> 2008 | 26.35% | 12 / 13
#> 2009 | 25.37% | 10 / 13
#> 2010 | 25.79% | 10 / 13
#> 2011 | 32.70% | 11 / 13
#> 2012 | 25.82% | 11 / 13
#> 2013 | 31.09% | 11 / 13
#> 2014 | 30.30% | 11 / 13
#> 2015 | 33.98% | 12 / 13
#> 2016 | 26.33% | 12 / 13
#> 2017 | 30.02% | 12 / 13
#> 2018 | 28.08% | 11 / 13
#> 2019 | 28.22% | 11 / 13
#> 2020 | 31.04% | 13 / 13
#> 2021 | 26.74% | 12 / 13
#> 2022 | 27.45% | 11 / 13
#> 2023 | 25.38% | 12 / 13
#>
#> PC3:
#> Group | Explained Var (%) | Non-zero Loadings
#> -----------------------------------------------
#> 2001 | 10.59% | 11 / 13
#> 2002 | 9.12% | 11 / 13
#> 2003 | 11.17% | 13 / 13
#> 2004 | 10.04% | 11 / 13
#> 2005 | 10.03% | 11 / 13
#> 2006 | 10.45% | 11 / 13
#> 2007 | 11.71% | 11 / 13
#> 2008 | 11.44% | 11 / 13
#> 2009 | 9.57% | 13 / 13
#> 2010 | 9.93% | 13 / 13
#> 2011 | 11.37% | 13 / 13
#> 2012 | 9.77% | 13 / 13
#> 2013 | 10.91% | 13 / 13
#> 2014 | 10.31% | 13 / 13
#> 2015 | 11.17% | 13 / 13
#> 2016 | 10.83% | 13 / 13
#> 2017 | 11.59% | 13 / 13
#> 2018 | 9.59% | 13 / 13
#> 2019 | 12.31% | 13 / 13
#> 2020 | 13.32% | 13 / 13
#> 2021 | 12.07% | 13 / 13
#> 2022 | 12.08% | 13 / 13
#> 2023 | 12.67% | 13 / 13
#>
#> Convergence:
#> Converged: Yes Yes Yes Yes Yes Yes Yes No Yes No Yes Yes Yes
#> Steps: 32 41 105 82 72 79 135 200 199 200 33 1 1
#>
#> Use `plot()` to visualize components.
When deciding how many PCs are enough to describe the data well, a scree-plot inspired box-plot scree-plot can visualize the explained variance well for multiple groups. Note, that we adjust the amount of sparsity for further components based on the remaining variance possible to explain.
# plot scree plot
screeplot(x = pca,
text = TRUE,
size = 3,
gnames = 2001:2023,
cutoff = 0.8)
#> [[1]]
#>
#> [[2]]
We select the first three PCs as sufficient, since 80% of overall variance is explained by them.
# optimal number of components
= 3 optimal_k
When it comes to plotting, we also need to align the loadings for a
clear picture. Multiple approaches are possible and implemented in the
function align
with different type
settings.
?align#> Hilfe zum Thema 'align' in den folgenden Paketen gefunden:
#>
#> Package Library
#> pillar C:/Users/puchhammer/AppData/Local/R/win-library/4.5
#> ssMRCD C:/Users/puchhammer/AppData/Local/Temp/RtmpwHmXH2/Rinst38c4ac21456
#>
#>
#> Nutze ersten passenden ...
$PC[, 1:optimal_k, ] = align(PC = pca$PC[, 1:optimal_k, ],type = "mean") pca
Loadings can be plotted via the function plot
with
type = "loadings"
. Keep in mind, that each PC for each
source is unique only up to a factor -1. While in theory this is not
remarkable, for comparing results in a sensible manner, the PCs should
be oriented to reflect similarities specifically. The function
align_PC
provides various approach to orient them in a
similar direction and for applications different type
arguments can be explored.
# plot aligned loadings
plot(x = pca,
type = "loadings",
gnames = 2001:2023,
k = 1)
#> $loadings
#> list()
#>
#> $<NA>
plot(x = pca,
type = "loadings",
gnames = 2001:2023,
k = 2)
#> $loadings
#> list()
#>
#> $<NA>
plot(x = pca,
type = "loadings",
gnames = 2001:2023,
k = 3)
#> $loadings
#> list()
#>
#> $<NA>
Also something like a biplot can be visualized to see the differences in the loadings.
biplot(pca)
To improve interpretation of the components, we calculate the scores
as well as the score distance and the orthogonal distance with the
function scores
. You can either use the ssMRCD object, then
the data from the covariance estimation is used and centered
accordingly, or you can specify the input manually.
= scores(X = X_data, groups = weather$year, PC = pca$PC, mu = ssMRCD_weather$MRCDmu, Sigma = ssMRCD_weather$MRCDcov)
sc = scores(PC = pca$PC, ssMRCD = ssMRCD_weather) sc2
Possible visualizations include univariate densities for each group via histograms of the scores.
plot(x = pca, ssMRCD = ssMRCD_weather, type = "scores")
#> $scores
#> list()
#>
#> $<NA>
#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
The score distance and orthogonal distance are calculated via the
scores
function. Some densities can be shown for each group
similar to Puchhammer, Wilms and Filzmoser (2024).
# distances
= sc$SD
score_sd = sc$OD
score_od
= data.frame(time = weather$time,
dat year = weather$year,
OD = score_od,
SD = score_sd,
groups = weather$year)
= dat %>% tidyr::pivot_longer(cols = c("OD", "SD"))
dat_melt
ggplot(dat_melt %>%
::filter(name %in% c( "SD", "OD"))) +
dplyr::geom_density_ridges_gradient(aes(x = value,
ggridgesy = groups,
fill = as.factor(groups),
group = groups),
scale = 10,
rel_min_height = 0.01,
gradient_lwd = 0.5) +
scale_x_continuous(expand = c(0.03, 0)) +
scale_y_discrete(expand = c(0.0, 0, 0.1, 0)) +
scale_fill_discrete(name = "") +
::theme_ridges(font_size = 13, grid = TRUE) +
ggridgestheme(axis.title.y = element_blank(),
legend.position = "right",
panel.grid.major.y = element_line()
+
) labs(x = "") +
facet_grid(cols = vars(name), scales = "free")
#> Picking joint bandwidth of 1.03e-06
#> Picking joint bandwidth of 1.8
Also, a distance-distance plot can be plotted.
plot(pca, type = "score_distances", ssMRCD = ssMRCD_weather, k = 3)
#> $score_distances
#> list()
#>
#> $<NA>
For more fun, the two distances can be visualized via Gif in a bivariate way for each group separately.
# use function saveGIF
library(animation)
= 2001:2023
param
saveGIF(interval = 0.1,
movie.name = "PCA_scoreDist_bivariate.gif",
expr = {
for (i in param ){
= ggplot(dat %>% dplyr::filter (year %in% seq(i-5, i+5, 1))) +
g geom_density_2d_filled(aes(x = SD,
y = OD),
alpha = 1) +
scale_x_sqrt(limits = c(0,40)) +
ylim(c(0, 6.2)) +
labs(title = i)
print(g)
}} )
GeoSphere Austria (2022): https://data.hub.geosphere.at.
Puchhammer, P., & Filzmoser, P. (2024). Spatially smoothed robust covariance estimation for local outlier detection. Journal of Computational and Graphical Statistics, 33(3), 928-940.https://doi.org/10.1080/10618600.2023.2277875.
Puchhammer, P., Wilms, I., & Filzmoser, P. (2024). Sparse outlier-robust PCA for multi-source data. arXiv preprint arXiv:2407.16299. https://doi.org/10.48550/arXiv.2407.16299.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.