Программа регрессионного анализа

Автор работы: Пользователь скрыл имя, 19 Мая 2013 в 22:18, курсовая работа

Краткое описание

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

Прикрепленные файлы: 1 файл

ПЗ.doc

— 172.00 Кб (Скачать документ)


Белорусский национальный технический университет 

Факультет горного дела и инженерной экологии

 

 

 

 

 

 

КУРСОВАЯ  РАБОТА

по дисциплине «Информатика»

 

Тема: Программа регрессионного анализа

 

 

 

 

 

Исполнитель:                                       студент  ФГДЭ,  2 курса, гр. 302811,           Маринич Р.О.

 

Руководитель работы:                  ст. преподаватель 

                                                              Петренко С.М.

 

 

 

 

 

 

 

 

Минск 2013

 

Содержание

 

 

ВВЕДЕНИЕ

Многие объекты исследования характеризуются множеством параметров, и по результатам наблюдения за их функционированием формируются  совокупности экспериментальных данных – yi(xi) . Если составить таблицу этой совокупности, то один столбец соответствует показателю, для которого необходимо установить функциональную зависимость с параметрами, представленными вторым столбцом. Для нахождения функциональной зависимости y(x) применяют регрессионный анализ.

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

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

 

  1. Постановка задачи

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

Согласно методики проведения корреляционного  анализа задача разбивается на ряд подзадач:

  1. ввод исходных данных;
  2. вычисление средних  значений совокупности;
  3. вычисление величины дисперсии;
  4. вычисление величины  корреляционного момента.

В основной части программы производится определение коэффициентов линейного уравнения и вывод их на экран.

Количество пар значений yi(xi) и сами значения вводятся пользователем с клавиатуры.

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

 

  1. Математическая формулировка задачи

    1. Коэффициенты уравнения линейной регрессии

В результате проведенного множественного эксперимента имеются данные – совокупность из N пар значений  yi( x):

Если  предположить, что между x и y существует линейная взаимосвязь, т.е.

                    (2.5)

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

Пусть x1, x2, ..., xn  – совокупность значений независимого, факторного признака;  y1, y2, ..., yn  – совокупность соответствующих значений зависимого, результативного признака;  n   количество наблюдений.

Для нахождения уравнения регрессии  вычисляются следующие величины:

  1. Среднее значение для экзогенной переменной:

 

   (2.6)

 

  1. Среднее значение для эндогенной переменной;

 

(2.7)

 

  1. Отклонения от средних величин

(2.8)

 

  1. Величины дисперсии 


(2.9)

 

 

 

  1. Величина среднего квадратичного отклонения

 

(2.10)

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

  1. Вычисление корреляционного момента (коэффициента ковариации):

 

(2.11)

Корреляционный момент отражает характер взаимосвязи между x и y. Если Kx, y  > 0, то взаимосвязь прямая. Если Kx, y  < 0, то взаимосвязь обратная.

  1. Коэффициент корреляции вычисляется по формуле:


(2.12)

 

  1. Вычисление параметров регрессионного уравнения.

Коэффициент b находится по формуле

      

(2.13)

 

 После чего можно легко найти параметр a:

       (2.14)

 

 

  1. Алгоритмизация задачи

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

Ввод совокупностей значений организован  в виде цикла с параметром:

  1. ввод значений N;
  2. открытие цикла с параметром i=1..N;
  3. ввод X[i];
  4. ввод Y[i];
  5. логарифмирование переменной Y[i]=ln(Y[i]);
  6. закрытие цикла по i.

Алгоритм определения средних  значений для Xi и Yi (передаваемые в процедуру параметры - N и массив Z):

  1. z_=0 – сумма элементов массива;
  2. открытие цикла с параметром i=1..N;
  3. z_=z_+Z[i];
  4. закрытие цикла по i;
  5. z_=z_/N – среднее значение.

Алгоритм определения величины дисперсии (передаваемые параметры Z – массив выборки, z_– среднее значение, N – размер выборки):

  1. S=0;
  2. открытие цикла с параметром i=1..N;
  3. закрытие цикла по i;
  4. Dx=S/(N-1) – дисперсия.

Алгоритм определения величины корреляционного момента (передаваемые параметры X, Y  – массивы выборки, x_, y_– средние значения, N – размер выборки):

  1. S=0;
  2. открытие цикла с параметром i=1..N;
  3. S=S+(X[i]-x_).(Y[i]-y_);
  4. закрытие цикла по i;
  5. Kx,y=S/(N-1) – корреляционный момент.

Коэффициенты a и b для уравнения регрессии:

b= Kx,y/ Dx; a`=y_-b·x_;

 

 

 

 

  1. Идентификаторы  программы

Соответствие обозначений переменных в формулах математической формулировки и их идентификаторов в программе приведено в таблице  1.

 

Таблица 1 – Идентификаторы

 

Обозначение параметров

Смысл параметра

в формулах

в программе

n

 N

размер генеральной  выборки

yi( x)

X,Y

данные генеральной выборки

x_,y_

средние значения экзогенной  и эндогенной переменных

a, b

a, b

коэффициенты уравнений регрессии

Dx

Disp

величина дисперсии

Kx,y

Corl_M

корреляционный момент

i

i

индекс элементов массива, параметр циклов 


 

 

  1. Блок-схема алгоритма

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Текст программы

 

program Reg_ln;

uses Crt;

type

matr=array [1..100] of real;

var

N,i: integer;

X, Y: matr; {массивы}

mode: char;

x_, y_, a, b:real;

 

function st(a,b:real):real;

{функция вычисления }

begin

   if a=0 then st:=0

   else if a<0 then

   begin

      if frac(b/2)<>0 then  st:=-exp(b*ln(abs(a)))

      else if b=0 then st:=1

      else st:=exp(b*ln(abs(a)))

   end

   else if b>0 then st:=exp(b*ln(a))

   else if b=0 then st:=1

   else st:=1/exp(b*ln(abs(a)));

end;

function Aver_mean (Z:matr; N:integer):real;

{вычисляет среднее  значение совокупности}

var

i:integer;

z_:real;

begin

   z_:=0;

   for i:=1 to N do z_:=z_+Z[i];

   Aver_mean:=z_/N;

end;

function Disp(Z:matr;z_:real;N:integer):real;

{вычисляет величину  дисперсии}

var

i:integer;

S:real;

 

begin

   S:=0;

   for i:=1 to N do S:=S+sqr(Z[i]-z_);

   Disp:=S/(N-1);

end;

 

function Corel_M(X, Y:matr; x_, y_:real;N:integer): real;

{вычисляет значение корреляционного момента}

var

i:integer;

S:real;

 

begin

  S:=0;

  for i:=1 to N do S:=S+(X[i]-x_)*(Y[i]-y_);

  Corel_M:=S/(N-1);

end;

 

{основная часть  программы}

begin

   TextBackground(7);

   TextColor(0);

   ClrScr;

   Writeln('Программа  вычисления коэффициентов уравнения регрессии');

   Writeln;

   Writeln('Исходные  данные:');

   Write('Введите  объем выборки (N): ');

    Read(N);

   Writeln('Введите  значения элементов совокупности:');

   for i:=1 to N do

   begin

     Write('X[',i,']=');

     Read(X[i]);

     GotoXY(WhereX+12, WhereY-1);

     Write('Y[',i,']=');

     Read(Y[i]);

        end;

   {средние  значения}

   x_:=Aver_Mean(X,N);

   y_:=Aver_Mean(Y,N);

   {коэффициенты}

   b:=Corel_M(X,Y,x_,y_,N)/Disp(X,x_,N);

   a:=y_-b*x_;

   Writeln('a=',a:7:5,'; ','b=',b:7:5);

   Writeln('уравнение  регрессии: y=',a:7:5,'+',b:7:5,'*x)');

   Writeln;

   Writeln;

   Writeln('Для  завершения нажмите любую клавишу...');

   readkey;

end.

 

  1. Результат выполнения программы

Исходные  данные и результат  выполнения программы представлены на рисунке 1 .

 


 

 

Рисунок 1 – Введенные данные и  полученные результаты

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Анализ результатов

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

x

1

2

3

4

5

7

y

2

3

4

5

6

8


 

Рисунок 2 – Результат пересчета  в ЭТ


Рисунок 3 - Формулы задействованные в Excel для вычисления у

Рисунок 4 – График, полученный в результате вычислений значения у по полученной формуле (уравнению линейной регрессии)

 

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

 

Исходный текст программы  содержится в файле pravreg.pas. Исполняемым файлом является pravreg..exe, после запуска которого, на экране дисплея появляется сообщение согласно рисунку 1.

 

 

Пользователю необходимо ввести исходные данные – размера выборки и значения ее элементов (рисунок 1).

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

Завершение работы программы происходит после нажатия клавиши.

 

ЗАКЛЮЧЕНИЕ

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

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

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

Информация о работе Программа регрессионного анализа