например, у нас есть следующие данные
X =
10.5720 3.1049 11.3570
9.9006 5.3971 10.8304
13.8345 13.6953 7.9372
10.7696 11.1401 10.4185
3.7841 11.7044 5.4435
13.1218 6.5599 10.6859
12.2868 11.9733 6.5255
12.2178 6.7505 3.1736
10.4777 8.1317 9.7029
15.0439 10.4151 10.2047
9.0041 5.2511 8.2246
15.2333 5.4717 8.4375
12.8940 8.9781 12.1112
12.3304 8.3102 8.6972
14.9862 7.2163 3.7159
6.1892 10.2348 7.8736
17.1267 5.9513 10.3071
10.6885 10.8199 7.1708
8.3460 10.9480 9.1208
10.3991 5.0058 13.7913
15.3103 14.7297 7.3875
19.0889 7.6657 6.8140
10.4589 8.6138 7.8456
13.9647 6.2520 10.6031
8.4215 7.0871 11.0461
12.9584 7.6198 0.8400
16.2182 3.9430 12.3646
12.4796 10.8249 6.5618
14.7202 13.7099 6.9863
13.9110 10.8402 11.7954
Я рассчитал ковариационную матрицу, собственные значения/собственные векторы и главные компоненты
>> Covariance=cov(X);
>> [V,D]=eig(Covariance);
>> principal=X*V;
как я могу восстановить X
из этого уравнения? Правильно ли это уравнение?
>> X1=principal*V';
Я получаю тот же результат, просто хочу убедиться, что он верен для всех данных.
Еще один вопрос, пожалуйста, если вместо прямого использования функции Matlab я сделаю это так:
>> mean1=mean(X);
>> centered=X-repmat(mean1,30,1);
>> covariance1=(centered'*centered)/29;
как восстановить исходную матрицу?