Главная > Математика > Факторный анализ (Иберла К.)
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

8.8. ОБРАБОТКА ДАННЫХ НА ЭВМ И ФАКТОРНЫЙ АНАЛИЗ

Внедрение в практику быстродействующих ЭВМ оказало сильное влияние на развитие теории факторного анализа и сделало возможным реализацию метода для очень больших корреляционных матриц. Специалисту, работающему в теоретической области, и практику, применяющему факторный анализ при конкретных исследованиях, приходится использовать ЭВМ. Кайзер [164; 3] придерживался мнения, что КВМ или средние ЭВМ следует применять лишь на начальных стадиях исследования для тех процедур, которые дают лишь приближенные оценки и представляют собой незаконченные вычислительные «компромиссы» по отношению к более совершенным процедурам. Всем вышесказанным объясняется необходимость рассмотрения вопроса о применении ЭВМ для вычислительных процедур факторного анализа.

Чтобы понять преимущества, которые дает ЭВМ, и уметь пользоваться машинными алгоритмами, нужно разобраться в логике построения ЭВМ и сущности процессов, протекающих в машине. Литература по данному вопросу указана в библиографии (например, Борко [25], Штайнбух [276]). Имеются также соответствующие справочники и техническая документация по эксплуатации ЭВМ. Мы остановимся лишь на некоторых моментах. Дело в том, что многие пользователи ориентируются на стандартные программы факторного анализа, не вникая в суть их алгоритма. Это часто приводит к ошибочным результатам.

8.8.1. Структура и принцип действия ЭВМ

Принцип действия ЭВМ описывается рядом логических преобразований, которые могут быть дополнены различными техническими подробностями. Мы остановимся только на узловых моментах, характеризующих принцип действия ЭВМ.

Изложенный здесь материал является частью ранее опубликованной работы Коллера и Иберла [177], а также доклада Гумина [111].

Наибольшее распространение для записи чисел получила десятичная система счисления. В этой системе каждое целое положительное число представляется в виде суммы единиц, десятков, сотен и т. д., т. е. в виде суммы различных степеней числа 10 с коэффициентами, которые могут принимать значения от 0 до 9 включительно. В каждом разряде числа могут стоять цифры от 0 до 9. Числа 10, 20 и т. д. принимаются за единицы следующих разрядов. Имеются два принципиально различных способа технической реализации чисел путем представления их в аналоговой и в цифровой форме (рис. 8.6).

При аналоговой форме представления числа отражают какие-то физические величины, например длину, вес, силу тока, напряжение, угловую скорость и т. д. В самом простом случае 0 приблизительно соответствует длине 0 см, число 1 — длине 1 см и т. д. На логарифмической линейке длины отрезков на двух шкалах являются аналогами логарифмов чисел, подлежащих умножению или делению. Сумма двух отрезков является аналогом суммы логарифмов. Подобно этому число 0,5 можно представить, например, через напряжение 0,5 MB, число 1 — через напряжение 1 MB и т. д. Имеются такие логические ячейки, которые могут складывать или вычитать напряжение, а следовательно, с их помощью можно выполнять операции сложения и вычитания соответствующих чисел. Как и на логарифмической линейке, с помощью логических ячеек можно осуществлять также операции умножения и деления в любой последовательности. Логарифмическая линейка является простейшим примером аналогового вычислительного устройства, и, поскольку ее шкалы проградуированы в антилогарифмах, она работает как аналоговое множительное или делительное устройство с непосредственным отсчетом. Итак, аналоговая вычислительная машина означает устройство, работающее с величинами, являющимися аналогами величин, заданных в исходной задаче, которая должна быть решена. При этом аналоговые величины изменяются так же, как исходные, что позволяет заменить последние соответствующими аналоговыми значениями. Такие аналоговые вычислительные машины оказались эффективными при решении многих задач. Их преимущество заключается в том, что они могут выполнять непрерывные действия, а дифференциальные уравнения решают за один прогон. Существенным недостатком аналоговых машин является ограничение разрядности получаемого результата. Точность аналоговых машин колеблется от 1% до Эта точность недостаточна при решении многих задач, особенно если приходится делать много шагов при вычислениях. В этом случае погрешность быстро возрастает и уже через несколько шагов достигает верхней границы допустимого значения.

Принципиально иным способом является представление чисел в цифровой форме, где каждое число выражается в виде последовательности решений «да-нет». Решение «да» записывается в виде знака решение «нет» — в виде знака 0. В двоичной системе счисления, например, числу «нуль» соответствует последовательность числу «один» - последовательность 001.

(см. скан)

Рис. 8.6. Схема представления чисел при обработке информации

В то время как при аналоговом представлении числа соответствуют определенным физическим величинам, при цифровой форме они соответствуют последовательностям решений «да—нет». Этим решениям можно противопоставить наличие или отсутствие тока в цепи, намагничивание или размагничивание сердечника электрокатушки. Отдельное такое положение, которое можно принять за решение «да» или «нет», называется термином «бит». Несколько битов могут быть объединены в одну ячейку. Тогда говорят о «слове», которое может, например, состоять из 24 бит. Такое слово делится на части, например на 4 символа по 6 бит каждый. Целесообразно объединять последовательности бит определенной длины в слова или символы, рассматривая эти объединения как единицы, с которыми можно оперировать дальше.

С числами в цифровой форме также можно выполнять вычислительные операции. В противоположность аналоговому цифровое представление чисел имеет то преимущество, что соответствующие физические величины, например напряжение, не должны точно измеряться. Нужно только зафиксировать, есть ли в определенный момент и в определенном месте ток или его нет, намагничивается сердечник электрокатушки или нет. Цифровые системы нечувствительны к помехам. Далее, при цифровом представлении чисел имеется возможность накапливать числа на внешних носителях, например на перфолентах или на перфокартах, причем логическое решение «да» воспроизводится через перфорацию в определенной позиции, логическое решение «нет» — через отсутствие этой перфорации. Проблема точности при цифровом изображении числа практически не возникает, так как эти числа можно представлять во всех позициях. Кодирование можно производить в прямой последовательности в виде букв или служебных символов. Определенная последовательность логических решений «да—нет» соответствует, например, букве А, другая последовательность — букве В и т. д. Далее будем рассматривать обработку данных устройствами, которые работают с цифровым представлением чисел.

Под данными в общем случае понимается любая информация, представленная в виде конечной последовательности цифр, букв или специальных символов. Так, число 19,3, фамилия больного или его год рождения являются отдельными данными. Длина и вес изделий, результаты лабораторных исследований, вся история болезни являются совокупностью данных. Последовательность букв в этой главе можно также рассматривать как совокупность данных.

При цифровом представлении чисел такие данные кодируются с помощью последовательности импульсов тока, а именно путем чередования наличия и отсутствия тока в определенный момент времени в определенном месте. Под обработкой данных понимают преобразование структуры входных данных в структуры выходных данных заранее указанным способом. Это преобразование осуществляется с помощью вычислительного устройства, которое изображается в виде логической схемы. Импульсы, соответствующие входным данным, преобразуются в импульсы, соответствующие выходным данным, с помощью логической схемы.

Все вышеуказанное дает общее представление о цифровой обработке данных. Из большого числа типов составления программ ДЛЯ логических схем можно выделить три группы:

1. Составление программ логических схем с жесткой структурой. Такие программы создаются для определенных классов задач обработки данных, как, например, сложение и деление. Они преобразуют входные данные определенным и фиксированным образом в выходные данные и не могут применяться для других задач преобразования, так как Имеют жесткую структуру. Эта группа программ широко распространена для специальных задач и создания автономных модулей.

2. Составление заменяемых программных пакетов (досок) для решения задач, состоящих из отдельных этапов. Рабочие области программного пакета соединяются коммутационными шнурами. Смена пакетов позволяет решать отдельные этапы различных задач и приспосабливать всю систему обработки данных к изменениям в их постановке.

Рис. 8.7. Функциональная схема обработки информации с применением ЭВМ

Так, например, перфорационная машина, табулятор, представляет собой набор программных пакетов, замена которых дает возможность выполнить специальные функции для решения определенных этапов задач.

3. Составление программ запоминающих устройств ЭВМ. Эта группа программ позволяет выполнять быструю смену задач обработки данных, так как она размещена в памяти ЭВМ и оттуда управляет этим процессом.

На рис. 8.7 представлена функциональная схема обработки данных с применением ЭВМ. На схеме выделены отдельные функциональные блоки независимо от их технической реализации. Данные вводятся в блок памяти, где они фиксируются. Блок управления выполняет функцию диспетчера над процессом функционирования системы обработки данных. С помощью блока обработки данных выполняется решение задачи. Стрелки, изображенные сплошными линиями, показывают направление движения потока данных через вычислительное устройство, пунктирные стрелки — контроль выполнения операций. На первом этапе работы в память на магнитных носителях записывается управляющая программа, которая в дальнейшем с помощью функциональных блоков запускается для решения задач по обработке данных.

Отсутствие управляющей программы делает невозможной обработку данных и выполнение различных логических операций. Лишь ее наличие позволяет решить поставленные задачи. Магнитное оперативное запо минающее устройство (МОЗУ) представляет собой набор магнитных ферритовых ячеек (матриц), на которых можно легко записать и стереть любую информацию. ЭВМ имеет возможность работать сразу по нескольким программам, выполненным в разных режимах, что позволяет производить обработку данных для большого количества задач.

Обратимся теперь к технической реализации функциональных блоков. В качестве блока ввода используют клавиатуру пишущих машинок, устройство ввода с перфокарт или с перфоленты. В качестве блока вывода пользуются алфавитно-цифровым печатающим устройством, ленточным или карточным перфоратором. В качестве блоков памяти применяются магнитные ленты, диски, барабаны и магнитные карты.

Рассмотрим подробнее процесс обработки данных при решении определенной задачи. Блок управления локализует соответствующую программу, накопленную в оперативной памяти в форме отдельных команд (слов). Последовательность этих команд, определяющая порядок выполнения операций при реализации заданного алгоритма, называется программой. Итак, блок управления локализует первую команду программы. Эта команда численно закодирована, т. е. она состоит из определенной последовательности логических решений «да—нет». Эта последовательность распознается блоком управления и влечет за собой выполнение того или иного решения, т. е. читаются нужные данные с запоминающего устройства, переносятся в блок обработки, где выполняются необходимые операции, и результат их выполнения записывается в определенные области внешнего запоминающего устройства. Для этих точно определяемых технических операций, которые выполняются достаточно быстро, укоренился ряд антропоморфных понятий. Например, последовательность двоичных разрядов интерпретируется как команда, чтобы определенная информация сообщалась из одной части устройства в другую; или говорят, что команды выполняются, распознаются и т. д. Блок управления выполняет команды последовательно одну за другой, вызывая их из оперативной памяти и отправляя в блок обработки данных, где выполняются соответствующие операции.

Электронно-вычислительные устройства для обработки данных характеризуются гибкостью, быстрой сменой программ, оперативной скоростью и большим объемом памяти, что позволяет решать сложные задачи. Причем объем информации не должен превышать объем внешней памяти на магнитных носителях, а управляющая программа должна соответствовать объему оперативной памяти.

Команды являются элементарными операциями, которые выполняются вычислительными машинами. Для каждой машины имеется определенное количество команд, которые в принципе составляют систему программирования для различных логических операций. Каждая команда, представляя собой соответствующую последовательность логи ческих решений «да—нет», является указанием, определяющим единичный шаг работы исполнительного устройства вычислительной машины в общем процессе выполнения программы.

Имеются команды ввода и вывода данных; команды, выполняющие обычные вычислительные операции команды сравнения последовательностей двоичных разрядов и согласованности между ними; команды условных и безусловных переходов. Что касается команд сравнения и согласования, то организация рабочего цикла может быть сделана независимо от того, имеется ли согласование или нет.

Это приводит к запланированному заранее логическому решению задачи в машине и к условным и безусловным переходам. Наконец, имеются команды, позволяющие организовать циклы. Все команды гибко связаны с программами.

Используя команды сравнения, можно упорядочивать последовательность чисел или составлять различные таблицы частот, прибавляя в организованном счетчике по единице, когда число попадает в определенный реквизит таблицы. Буквы или слова могут быть отсортированы в алфавитном или в другом каком-либо порядке. Итак, устройства для обработки данных не ограничиваются только выполнением арифметических действий. При привязке соответствующих программ появляются следующие возможности:

1. Хранение, организация, перераспределение и выдача информации;

2. Выполнение сложных вычислительных операций;

3. Принятие различных логических решений, позволяющих обрабатывать информацию в различном запросе;

4. Выполнение операций в быстром режиме и с достаточной точностью.

Рис. 8.8. Укрупненная блок-схема медицинского обследования пациента. Обычно врач производит осмотр пациента в указанном порядке

Задача подготовки программы состоит из двух этапов. На первом этапе создаются алгоритм и блок-схема, детализированная до уровня элементарных операций, которые могут быть выполнены в машине. На втором этапе на основе разработанных алгоритмов происходит написание программы, которая вводится в вычислительную машину.

В качестве примера рассмотрим блок-схему и последовательность шагов решения еще не запрограммированной задачи из области медицины. Представленная на рис. 8.8 блок-схема, состоит из отдельных шагов, на которые можно разбить процесс терапевтического осмотра пациента. На рис. 8.9 изображена детализация второго шага, касающегося обследования щитовидной железы. Из схемы видно, что этот процесс может протекать различными путями, на которые указывают разветвления и логические связи между детализированными шагами. Такая детализация шагов позволяет учесть все возможности, которые могут встретиться при осмотре щитовидной железы, независимо от того, в какой последовательности эта процедура осуществляется. Последняя блок-схема представляет собой алгоритм решения данной задачи. Она устанавливает последовательность выполнения отдельных операций в вычислительной машине. Программисту при взгляде на эту блок-схему становится ясно, какие операции выполнять с помощью ЭВМ, а какие без нее.

При программировании применяются алгоритмы, которые однозначно указывают ход выполнения программы. Детализируя укрупненную блок-схему, программист доходит до уровня машинных команд, которые заложены в ЭВМ.

Рассмотрим процесс программирования задачи на простом примере, состоящем в вычислении среднего значения по 10 000 чисел. 10 000 чисел набиваются на перфокарты, одна из которых представлена на рис. 8.10.

Рис. 8.9. Детализированная блок-схема второго шага укрупненной блок-схемы

(см. скан)

Рис. 8.10. Форма перфокарты, используемой для записи данных путем сквозной пробивки кодовых отверстий, располагаемых в определенных кодовых позициях. Отперфорированная информация отражена в верхней части перфокарты

Рис. 8.11. Укрупненная блок-схема вычисления среднего значения

Данная перфокарта имеет 80 колонок и 12 строк с учетом 11-й и 12-й позиций. В первых пяти колонка отперфорировано число 35927. В каждой колонку при набивке цифровой информации перфорируется одно отверстие. Например, отверстие в строке 0 означает число 0, отверстие в строке 1 — число 1 и т. д. При перфорации буквенных символов выполняют сдвоенную пробивку в перфорационных позициях. Например, отверстия в колонке 39 означают букву А, а в колонке 40 - букву В. В первых пяти колонках каждой из 10 000 перфокарт перфорируются числа, по которым должно быть вычислено среднее значение. Таким образом осуществляется перфорация данных для дальнейшей обработки ее в машине.

Укрупненная блок-схема этой задачи представлена на рис. 8.11. Так как очередной шаг вычисления средней не детализирован, невозможно запрограммировать данную процедуру. Кроме того, исходные данные не занесены еще в оперативную память машины. Введение шагов ввода и вывода данных в блок-схеме на рис. 8.12 также еще не дает возможности запрограммировать задачу в целом. Окончательный вариант детализированной блок-схемы, которая является основой создания программы на машинном языке, изображен на рис. 8.13. Важным моментом в детализированной блок-схеме является организация цикла разветвления на 10 000 раз.

Блок-схема на рис. 8.13, описывающая задачу в общем виде, в то же время детализирует ее, разбивая на отдельные шаги, представленные в виде предписаний выполнения определенных операций. Эти предписания-команды затем записываются на языке программирования. На рис. 8.14 представлена запись процедуры вычисления среднего по 10 000 чисел на так называемом проблемно-ориентированном языке Фортран. Эта запись в виде нескольких строк позволяет ЭВМ провести действия над 10 000 чисел: сложить, вычислить среднее значение и выдать данные.

Такую программу называют программой на исходном языке. Она перфорируется на перфокарты и тем самым не является программой непосредственной обработки. Следующий этап работы заключается в формировании рабочей программы, а именно в кодировании команд, записанных на Фортране, в последовательности решений «да—нет», которые интерпретируются в ЭВМ как машинные команды. Последняя процедура при ручном выполнении занимает много времени, и исполнитель может допустить ошибки.

Рис. 8.12. Укрупненная блок-схема вычисления среднего значения с шагами ввода и вывода данных

ЭВМ располагает управляющей программой, или транслятором, который преобразует исходную программу в рабочую (машинную). Эта переведенная с одного языка на другой машинная программа выводится на внешние носители (перфокарты или перфоленты), а затем записывается в МОЗУ. Таким образом, ЭВМ сама выполняет процедуру программирования на понятном для нее языке, т. е. берет на себя ту часть работы, которая наиболее подвержена ошибкам. Программа-транслятор позволяет проверить, в каких областях исходная программа не соответствует правилу кодирования, и выдает диагностические указания по допущенным ошибкам, например отсутствие открывающей или закрывающей скобки, запятой или точки с запятой. В таких условиях определенная команда— переход, передача управления — не может быть выполнена. Диагностика ошибок в разных машинах осуществляется по-разному и является важнейшим вспомогательным средством при программировании. Развитие проблемно-ориентированных языков, а также создание программ управления и трансляторов способствовали еще более широкому применению ЭВМ. Изучение программно-ориелтированных языков не представляет особой трудности. Программы, написанные для одной ЭВМ, можно переносить на другую, но с определенными ограничениями на уровне проблемно-ориентированных языков. В то же время машинная программа, заложенная в ЭВМ, всегда специфична для нее.

Следует различать управляющую программу и подпрограмму, позволяющую выполнять любые сложные часто повторяющиеся операции. Подпрограмма допускает многократное обращение к ней из различных областей управляющей программы.

Рис. 8.13. Детализированная блок-схема вычисления среднего значения для дальнейшего программирования на проблемно-ориентированном языке Фортран

Для решения задач факторного аиализа привлекать большие ЭВМ более целесообразно, чем средние, даже если последние более доступны. Это связано с тем, что средние ЭВМ имеют меньший объем оперативной памяти и у них отсутствуют внешние запоминающие устройства.

Рис. 8.14. Исходная программа на Фортране, отражающая детализированную блок-схему на рис. 8.13

Одним из достоинств больших ЭВМ является то, что их математическое обеспечение располагает стандартными программами факторного анализа.

<< Предыдущий параграф Следующий параграф >>
Оглавление