Новости           

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности

Гостевая книга

От автора

Прогнозирование и уравнение регрессии 

              Статистическая информация  часто  используется  для   вывода
         "обоснованных  предположений"  о будущем.  Хотя каждому известно,
         что на основе прошлого опыта не обязательно можно предсказать бу-
         дущее  и  что  каждое  правило имеет исключение,  все же данные о
         прошлом используются для этого.  Очень часто  тенденции,  имевшие
         место в прошлом и настоящем, сохраняются и в будущем. В этих слу-
         чаях вы можете определить конкретные значения для некоторого вре-
         мени в будущем. Этот процесс называется прогнозированием или ана-
         лизом тенденций.
              Например, рассмотрим  некое  исследование  продолжительности
         жизни за десятилетний период. Пусть получены следующие данные:

             Год             Продолжительность жизни
             1980                   69
             1981                   70
             1982                   72
             1983                   68
             1984                   73
             1985                   71
             1986                   75
             1987                   74
             1988                   78
             1989                   77

              Сначала следует понять,  если здесь какая-нибудь  тенденция?
         Если  она действительно имеется,  то можно узнать какой она имеет
         характер.  И,  наконец,  если наблюдается действительно  заметная
         тенденция,  то можно предсказать, например, среднюю продолжитель-
         ность в 1995 году.
              Сначала рассмотрим  столбиковую  диаграмму и точечный график
         для этих данных,  представленные на рис.26.  Исследуя  их,  можно
         сделать вывод, что средняя продолжительность жизни в целом увели-
         чивается. Если приложить линейку так, чтобы наилучшим образом ли-
         ния соответствовала графику,  и продолжить линию до 1995 года, то

         окажется,  что продолжительность жизни будет в районе 82. Однако,
         насколько  можно  быть  уверенным  в достоверности такого вывода?
         Несмотря на интуитивное ощущение правильности  такого  вывода  вы
         можете  захотеть использовать более формальные и точные методы по
         прогнозированию тенденции средней продолжительности жизни.
              Имея набор  изменяющихся во времени данных лучше всего полу-
         чать прогноз путем поиска линии наилучшего соответствия по  отно-
         шению  к имеющимся данным.  Именно это делалось с применением ли-
         нейки.  Линия  наилучшего  соответствия  располагается   наиболее
         близко  ко всем точкам и лучше всего отражает их тенденцию.  Хотя
         некоторые или даже все данные не будут находиться на  линии, сама
         линия хорошо представляет их. Достоверность линии зависит от бли-
         зости точек выборки.
              Линия в  двумерном  пространстве задается следующим основным
         уравнением:

                                 Y = a + bX,

         где Y является независимой переменной, Х является зависимой пере-
         менной,  "а" является точкой пересечения оси Y, а "в" задает нак-
         лон линии.  Таким образом, для определения линии наилучшего соот-
         ветствия выборки требуется определить "а" и "в".

             78                                  ¦
             .                           ¦       ¦   ¦
             .           ¦       ¦       ¦   ¦   ¦   ¦
             .   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦
             .   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦
             .   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦
             .   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦
             .   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦
             .   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦
             .   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦
             .   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦
             .   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦
             .   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦
             .   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦
           a ---------------------------------------------
             0                                         10

              Рис.26. Столбиковая диаграмма /а/ для прогноза средней  про-
                      должительности жизни

              Для определения значений этих параметров  можно использовать
         несколько  методов,  но  наиболее распространенным (и как правило
         наилучшим) является метод наименьших квадратов.  Этот метод пост-
         роен  на минимизации расстояния от действительных значений данных
         до линии.  Этот метод состоит из двух шагов:  сначала вычисляется
         "в"  (наклон  линии) и затем вычисляется "а" (пересечение оси Y).
              Вывод этой формулы выходит за рамки этой книги.  Получив "в"
         вы можете, используя этот параметр, вычислить "а":
              Определив значения параметров "а" и "в" вы можете, задав лю-
         бое значение Х,  найти соответствующее значение Y.  Например, ис-
         пользуя приведенные выше данные по средней продолжительности жиз-
         ни, можно получить следующее уравнение регрессии:

                       Y = 67,46 + 0,95 * X.

              Следовательно, для  нахождения  ожидаемой  продолжительности
         жизни в 1995 году (15 лет от 1980 года) делаются следующие вычис-
         ления:

                       67,46 + 0,95*15 = 82.

              Однако, даже  имея  для данных линию наилучшего соответствия
         вам может потребоваться знание действительной корреляции данных с
         этой линии. Если линия и данные слабо коррелированы, то будет ма-
         ло пользы от линии регрессии. Однако, если линия хорошо соответс-
         твует  данным,  то по ней можно делать очень достоверный прогноз.
         Наиболее распространенным способом  определения  и  представления
         корреляции данных и линии регрессии является вычисление коэффици-
         ентов корреляции,  которые могут принимать значения  от  нуля  до
         единицы.  Коэффициенты  корреляции по существу определяет степень
         близости каждой точки к линии.  Если коэффициент корреляции имеет
         единичное  значение,  то  данные хорошо соответствуют линии /т.е.
         каждый элемент выборки также находится на линии  регрессии/. Если
         коэффициент корреляции имеет нулевое значение,  то никакое значе-
         ние из выборки не располагается на линии. В действтительности ко-
         эффициент  корреляции может принимать любое значение из диапазона
         от нуля до единицы.  Коэффициент корреляции вычисляется по форму-
         ле, приведенной на следующей странице.
              Здесь М является средним значением координаты Х и М является
         средним значением координаты Y.  Обычно в качестве сильной корре-
         ляции рассматривается значение 0,81. В этом случае 66% данных со-
         ответствует линии регрессии.  Для получения процентного соотноше-
         ния необходимо просто возвести в  квадрат  значение  коэффициента
         корреляции.
              Ниже приводится функция "Regress".  В ней используется  опи-
         санный  выше метод поиска коэффициентов регрессии и коэффициентов
         корреляции:

         { вычисление коэффициентов регрессии и вывод линии регрессии }

                   procedure Regress(data: DataArray; num: integer);

                   var
                     a, b, x_avg, y_avg, temp, temp2, cor: real;
                     data2: DataArray
                     t, min, max: integer;
                     ch: char;

                   begin
                     { поиск среднего значения Х и У }
                     y_avg := 0; x_avg := 0;
                     for t := 1 to num do
                     begin
                       y_avg := y_avg + data[t];
                       x_avg := x_avg + t; { поскольку Х представляет
                                          собой время }
                     end;
                     x_avg := x_avg/num;
                     y_avg := y_avg/num;

                     { поиск коэффициента 'в' уравнения регрессии }
                     temp := 0; temp2 := 0;
                     for t := 1 to num do
                     begin
                       temp := temp +(data[t] - y_avg)*(t-x_avg);
                       temp2 := temp2 +(t - x_avg)*(t-x_avg);
                     end;
                     b := temp/temp2;

                     { поиск коэффициента 'a' уравнения регрессии }
                     a := y_avg-(b*x_avg);

                      { вычисление коэффициента корреляции }
                   for t := 1 to num do data2[t] := t;
                   cor := temp/num;
                   cor := cor/(StdDev(data, num)*StdDev(data2,num);
                   Writeln('Уравнение регресии : Y = ',
                   a: 15: 5, '+',b: 15: 5, '* X');
                   Writeln('Коэффициент корреляции :  ', cor: 15:5);
                   Writeln('Вывести данные и линию регрессии ? (y/n)');
                   Readln(ch);
                   ch := upcase(ch);
                   if ch <> 'N' then

                   begin
                     { установка режима 4 для адаптеров EGA и CGA }
                     GraphDriver := CGA ;
                     Craphmode := CGAC1 ;
                     InitGraph(GraphDriver, Craphmode, '');
                     SetColor(1);
                     SetLineStyle(Solid, 0, NormWidth);

                  { вывод графиков }
                  for t := 1 to num*2 do data2[t] := a+(b*t);
                  { массив регресси }
                  min:= getmin(data, num)*2;
                  max:= getmax(data, num)*2;
                  ScatterPlot(data, num, min, max. num*2);
                  ScatterPlot(data2, num*2, min, max, num*2);
                  ch := ReadKey;
                  RestoreCrtMode;
                end;
               end; { конец  процедуры вычисления коэффициентов регрессии
                      и корреляции }


              При проведении  прогнозирования подобно описанному выше сле-
         дует помнить, что по данным о прошлом не всегда можно предсказать
         будущее. Однако в тех случаях, когда это можно сделать, могут по-
         лучить очень интересные результаты.



(с)Все права защищены

По всем интересующим вопросампрошу писать на электронный адрес

    Rambler's Top100 PROext: Top 1000
    Rambler's Top100 Яндекс цитирования
Hosted by uCoz