Министерство высшего образования Российской Федерации
Кубанский государственный университет
Кафедра численного анализа
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе по предмету
статистический анализ в экономике
тема курсовой работы:
«Математическая модель метода главных компонент».
Выполнил : студент гр. 42
…
Руководитель : доц. каф. численного анализа
…
Краснодар
2001
РЕФЕРАТ
Курсовая работа содержит 14 страниц, 1 рисунок,
3 источника, 1 приложение.
МОДЕЛЬ, ГЛАВНАЯ КОМПОНЕНТА, КОРРЕЛЯЦИЯ, СОБСТВЕННЫЙ ВЕКТОР, ХАРАКТЕРНЫЙ ПРИЗНАК.
Целью работы являлось составление программы, реализующей выделение в данном факторном пространстве исходных признаковmглавных компонент, или обобщенных признаков. Характерной особенностью пространства главных компонент является его ортогональность.
В результате выполнения курсовой работы была изучена математическая модель процесса поиска главных компонент, а также приемы программной реализации этого метода на языке программированияTurbo Pascal 7.0.
СОДЕРЖАНИЕ
Введение ……………………………………………………….4
1 Краткие теоретические сведения…………………………..5
2 Описание программной реализации……………………….7
Заключение……………………………………………………..9
Приложение А – Текст программы метода главных компонент………………………………………………………10
ВВЕДЕНИЕ
Из числа методов, позволяющих обобщать значения элементарных признаков, метод главных компонент выделяется простой логической конструкцией и в то же время на его примере становятся понятными общая идея и целевые установки многочисленных методов факторного анализа.
Метод главных компонент дает возможность поm– числу исходных признаков выделитьmглавных компонент, или обобщенных признаков. Пространство главных компонент ортогонально.
Математическая модель метода главных компонент базируется на логичном допущении, что значения множества взаимосвязанных признаков порождают некоторый общий результат.
1 Краткие теоретические сведения
Решение задачи методом главных компонент сводится к поэтапному преобразованию матрицы исходных данныхX(рисунок 1.1):
Рисунок 1.1 – Схема математических преобразований
На рисунке обозначено:X– матрица исходных данных размерностьюn*m(n– число объектов наблюдения,m– число элементарных аналитических признаков);Z– матрица центрированных и нормированных значений признаков, элементы матрицы вычисляют по формуле:
;R– матрица парных корреляций:R = (1/n)*Z’*Z.
Если предварительнаястандартизация данных не проводилась, то на данном шаге получают матрицуS = (1/n)*X’*X, элементы матрицыXдля расчета будут центрированными величинами.
Опишем дальнейшие шаги вычислений для метода главных компонент и объясним математический смысл полученных результатов.
– диагональная матрица собственных (характеристических) чисел.
Множество решенийjнаходят решением характеристического уравнения |R - E| =0.j– это характеристики вариации, точнее, показатели дисперсии каждой главной компоненты. Суммарное значениеjравно сумме дисперсий элементарных признаковXj. При условии стандартизации исходных данных, эта сумма равна числу элементарных признаковm.
Решив характеристическое уравнение, находят его корниj. После этого вычисляют собственные векторы матрицыR. Реально это означает решениеmсистем линейных уравнений для каждогоjприj = 1..m. В общем виде система имеет вид:
(1.1)
Приведенная система объединяет однородные линейные уравнения, и так как число ее уравнений равно числу неизвестных, она имеет бесконечное множество решений. Конкретные значения собственных векторов при этом можно найти, задавая произвольно по крайней мере величину одной компоненты каждого вектора.
A– матрица факторного отображения, ее элементыarj– весовые коэффициенты. ВначалеAимеет размерностьm*m– по числу элементарных признаковXj, затем в анализе остаетсяrнаиболее значимых компонент,r m. Вычисляют матрицуAпо известным данным матрицы собственных чисели нормированных собственных векторовVпо формулеA = V1/2.
F– матрица значений главных компонент размерностьюr*n,F = A-1Z’. Эта матрица в общем виде записывается:
(1.2)
2 Описание программной реализации
Программа для реализации метода главных компонент была написана на языкеTurbo Pascal 7.0. Все вычисления выполнены в последовательности, представленной на рисунке 1.1. Обозначения программных переменных и массивов по возможности соответствуют изложенным выше. Программа является в достаточной степени универсальной, т.к. приспособлена для обработки массивов данных любой размерности (их размер ограничен только объемом доступной памяти). Однако в программе не предусмотрен ввод данных с клавиатуры. Размерность массивов задана константами, а массив исходных данных инициализируется также в теле программы. При необходимости ввода других данных можно легко скорректировать исходный текст программы.
Отдельной процедурой в программе описан вывод на экран матрицы m*m. В программе часто приходится проделывать эту операцию, поэтому она оформлена как процедура out.
Первой процедурой является центрирование и нормирование исходных данных. Оно выполняется в соответствии с описанными выше формулами.
Далее запрограммировано нахождение коэффициентов характеристического уравнения для корреляционной матрицыR. Оно производится в соответствии с рекуррентными соотношениями Фаддеева, т.е по следу матриц, производных изR, по формулам:
Ai-1=ABi-2;Pi-1=1/(m-1)trAi-1;Bi-1=Ai-1-Pi-1E;i=1,2..m. (2.1)
После вычисления рекуррентных соотношений находится характеристический полином:
Pm()= m - P1 m-1 - P2 m-2 -…- Pm. (2.2)
Известно, что приm > 4(2.2) не имеет общего решения. Однако мы знаем, что это уравнение имеет все вещественные корни, и что их число равноm. Для их нахождения используется итерационный метод Ньютона, поскольку исследуемая функция – полином и нет затруднений в вычислении ее производной. Итерационная формула Ньютона дляi-й точки имеет вид:
, (2.3)
гдеj– номер итерации.
Далее в соответствии с (1.1) находим собственные векторы матрицыR. Для решения систем уравнений применялся метод Гаусса. Однако предварительно необходимо было исключить одно неизвестное. Для этого переменнымumjбыли присвоены единичные значения, последний столбец перенесен в правую часть с обратным знаком, а последнее уравнение исключено из рассмотрения.
После получения матрицы собственных векторовUбыло проведено ее нормирование, в результате чего была получена матрица нормированных собственных векторовV.
Затем вычисляется матрица факторного отбраженияAв соответствии с правилами умножения матриц.
Далее находится матрица, обратная кA, методомm-кратного пересчета элементов [3,с.358] по рекуррентным формулам:
гдеk– номер итерации,k=1..m. На заключительном этапеA-1= -A(k).
После нахождения матрицы, обратнойA, находим матрицуF– матрицу факторного отображения и выводим ее на экран в транспонированном виде в соответствии с (1.2). На этом расчеты по методу главных компонент завершены.
ЗАКЛЮЧЕНИЕ
В данной курсовой работе была построена математическая модель и программная реализация метода главных компонент. Следует отметить, что в работе не была рассмотрена методика отсева несущественных факторов, и поэтому результирующая модель, выдаваемая программой на экран, содержит число компонент, равное числу исходных элементарных признаковm. К достоинствам разработанной программы можно отнести то, что она может работать с массивами исходных данных достаточно большой размерности.
ЛИТЕРАТУРА
1 Сошникова Л.А., Тамашевич В.Н., Уебе Г., Шебер М. Многомерный статистический анализ в экономике: Учеб. Пособие для вузов/Под ред. проф. Тамашевича. – М.: ЮНИТИ-ДАНА, 1999. –598с.
2 А. Епанешников, В. Епанешников. Программирование в среде Turbo Pascal 7.0. –3-е изд., стер. –М.: “ДИАЛОГ-МИФИ”, 1997. –288с.
3 Жуков Л.А., Стратан И.П. Установившиеся режимы сложных электрических сетей и систем: Методы расчетов. –М.: Энергия, 1979. – 416 с.
ПРИЛОЖЕНИЕ А
Текст программы метода главных компонент
Program gl_komp;
const
m=3;{число признаков}
n=4;{число объектов}
type
matrix=array[1..m,1..m]of real;
var
x,z:array[1..n,1..m]of real;
f:array[1..m,1..n]of real;
a_,b_,_a_,_b_:matrix;{для алгоритма Фаддеева}
c:array[1..m-1,1..m-1]of real;
d:array[1..m-1]of real;
l,r,u,a,a_1,v:matrix;
p:array[0..m]of real;
i,j,k,q:integer;
s,x_,b,_b,w:real;
{-------процедура вывода на экран матрицы m*m----------}
procedure out(t:matrix);
var
i1,j1:integer;
begin
for i1:=1 to m do
begin
for j1:=1 to m do
write(' ',t[i1,j1]:3:3,' ');
writeln