В
предыдущем выпуске мы выяснили, что нормирование и приведение к единой шкале увеличивают
информативность данных. Однако этого оказывается недостаточно. Известно, что
если факторы статистически зависимы, то их совместная энтропия меньше суммы
энтропий отдельных факторов, т.е.:
.
Тривиальным примером этого есть процесс покупки,
например, телевизора и видеомагнитофона. Очевидно, что неопределенность при
покупке TV и VCR одной марки меньше, чем если бы они
приобретались в разное время или разных марок. В качестве определяющих
факторов здесь выступают потребительские свойства.
При
достижении статистической независимости входов тем самым будет достигнута
максимальная информационная насыщенность каждого из входных факторов в отдельности.
Статистическая независимость - условие, достигнуть которого достаточно сложно,
поэтому в качестве первого шага осуществим декорреляцию входов по следующему
алгоритму (“выбеливание входов”):
Шаг 1. Для каждого входного фактора найдем его
среднее значение
.
Напомню, что входные данные для расчетов
представлены в таблице 1.
Таблица 1
Шаг 2. Вычислим ковариационную матрицу , элементы которой рассчитаем по формуле
.
Шаг 3. Ищем линейное преобразование, которое
диагонализирует ковариационную матрицу. Это позволит сделать матрица,
составленная из столбцов, которые являются собственными векторами матрицы :
,
где - собственные числа
матрицы .
Шаг 4. Осуществляем преобразование
,
где матрица получается из вычитанием
из элементов каждого столбца его среднего значения.
В
результате такого преобразования все входы становятся некоррелированными и
имеют единичную дисперсию. Очевидно, что вследствие такого преобразования
совместная энтропия увеличивается, поскольку распределение элементов в выборке
выравнивается и становится ближе к равномерному. Легко
осуществить и обратное преобразование.
Ниже приведен текст модуля для прямого и обратного
преобразования. Для того. чтобы
не загружать читателя подробностями расчета обратной матрицы и собственных векторов
и чисел, программа написана на внутреннем языке Matlabа.
Дана
матрица Х: три входа пять наблюдений.
Процедура “выбеливания” входов.
x=[1 2 3;
2 4 7;
3 6 10;
4 8 15;
6 10 20];
%
вычисление ковариационной матрицы
y=cov(x)
% v – матрица,
состоящая из собственных векторов, d – матрица, на диагонали
которой собственные числа
[v,d]=eig(y)
% с
– вектор средних значений входов
c=mean(x)
%
вычисляем матрицу
for i=1:5
for
j=1:3
z(i,j)=x(i,j)-c(j);
end
end
% вычисляем матрицу
l=z*v
for i=1:5
for
j=1:3
m(i,j)=l(i,j)/sqrt(d(j,j));
end
end
%
печатаем результат и его характеристики
m
mean(m)
corrcoef(m)
var(m)
% А
теперь преобразование в обратном направлении – для проверки
for i=1:5
for
j=1:3
l(i,j)=m(i,j)*sqrt(d(j,j));
end
end
z=l*inv(v);
for i=1:5
for
j=1:3
x(i,j)=z(i,j)+c(j);
end
end
x
|