11.11. Проверка программ
В статье Longley (1967) приведен ряд методов, с помощью которых пользователь может проверить точность заданной программы, реализующей метод наименьших квадратов. Упомянем вкратце некоторые из них: (1) сравнение получаемых средних со средними, вычисленными вручную; (2) проверка равенства суммы остатков нулю в пределах ошибки округления; (3) прогонка программы с малыми значениями переменных х и у и повторная ее прогонка с добавлением к обеим частям слагаемых вида 100, 1000, 10000 с целью выявления границ применимости программы; (4) сравнение регрессий для с целью проверки аддитивности результатов; (5) использование линейных комбинаций регрессоров, сохраняющих линейную независимость (например, замена на и проверка с использованием того же самого равенств перетасовка столбцов матрицы X и повторная прогонка задачи; (7) проверка нескольких уравнений вручную. К этому списку можно добавить также такие способы: (8) проверка соотношения использование двойной точности при выполнении арифметических операций [Freund (1963)].
Наиболее очевидным способом проверки точности программы является прогонка программы с такой совокупностью данных, для которой, коэффициенты регрессии и некоторые статистики критериев известны точно. Longley (1967) приводит совокупность экономических данных с рядом замечательных свойств. К сожалению, подходящие совокупности тестовых данных получить трудно. Поэтому обычно удобнее генерировать данные (ср. с
Warnpier (1970, тестовые данные, порожденные с помощью полиномов), Hastings (1972, методы построения тестовых данных)). В то же время точность программы существенно ухудшается, если матрица данных плохо обусловлена. Поэтому, чтобы проверить точность программы с помощью такого метода при плохой обусловленности матрицы данных, пользователь должен взять такую матрицу данных, которая столь же плохо обусловлена, как и матрица, которую он хочет прогнать. В связи с этим представляется более приемлемым проверять точность решения каждой отдельной задачи, а не прогонять тестовые данные. Для проверки влияния ошибки округления полезна следующая процедура, предложенная Mullet, Murray (1971):
(1) Ищется регрессия У на
(2) Ищется регрессия на том же множестве регрессоров.
(3) Этап (2) повторяется с другими значениями а и (по же ланию) с другими
Очевидно, что оценки наименьших квадратов в (2) для всех будут инвариантны относительно а, за исключением оценки которая возрастает с ростом а. Инвариантными будут также вектор остатков и . Mullet, Murray (1971) применили свой метод к совокупности данных, взятых из Huang (1970), и получили результаты, приведенные в табл. 11.1.
Таблица 11.1 (см. скан) Метод Mullet, Murray (1971) для проверки точности аппроксимации регрессии, примененный к данным из Huang (1970)
Оценки для согласуются в пределах четырех, а оценки для и RSS — в пределах пяти значащих цифр. Хотя исходные данные обусловлены и не особенно плохо, тем не менее они указывают на тот факт, что получаемые с ЭВМ распечатки результатов, содержащие по восемь или даже более "значащих" цифр, совсем не обязательно обеспечивают наблюдаемую при этом точность.
В заключение этого параграфа приведем формальное доказательство указанного выще свойства инвариантности,
Теорема 11.1. Пусть
Тогда
(i) , где — единичный вектор, у которого равны нулю все элементы, кроме равного единице.
Доказательство, (i) Мы имеем
или
Поэтому
и
(ii) В силу (i)
Упражнения к гл. 11
(см. скан)