variance explained & pca
25 ビュー (過去 30 日間)
古いコメントを表示
Hi! I want to report in a graph the variances explained as a function of PCs as shown in the graph. I have used the function "pareto(ExplVar)" but only the first 10 are represented and not all (there are 20 PCs in total). How can I represent them all?

2 件のコメント
Anmol Dhiman
2021 年 1 月 13 日
Hi Alberto ,
Could you share your code for better resolution of the issue
採用された回答
Ive J
2021 年 1 月 13 日
編集済み: Ive J
2021 年 1 月 13 日
pareto only shows the first 10 bars at maximum. You can do it easily with help of cumsum:
[~, ~, ~, ~, explained] = pca(rand(100,20));
hold on
bar(explained)
plot(1:numel(explained), cumsum(explained), 'o-', 'MarkerFaceColor', 'r')
yyaxis right
h = gca;
h.YAxis(2).Limits = [0 100];
h.YAxis(2).Color = h.YAxis(1).Color;
h.YAxis(2).TickLabel = strcat(h.YAxis(2).TickLabel, '%');

4 件のコメント
Ive J
2021 年 1 月 15 日
If you are calculating PCs with MATLAB pca built-in function, it can also return explained variances of PCs (explained in above example). If you want to show these explained variances (cumulatively), use explained; otherwise use PC scores if you prefer. It depends on your purposes of course (even you can use anything else to plot), but regardless, you can use my above example to reproduce similar graphs as pareto does, but without it's limitations (i.e. max 10 bars).
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Descriptive Statistics and Visualization についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!