Об автоматизации множественного регрессионного анализа

NovaInfo 32, скачать PDF
Опубликовано
Раздел: Технические науки
Просмотров за месяц: 2
CC BY-NC

Аннотация

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

Ключевые слова

ЯЗЫК ПРОГРАММИРОВАНИЯ PASCAL, ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ, МНОЖЕСТВЕННЫЙ РЕГРЕССИОННЫЙ АНАЛИЗ, КОЭФФИЦИЕНТ КОРРЕЛЯЦИИ

Текст научной работы

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

Регрессионный анализ стал настолько привычным, что мы уже давно не замечаем, как он проявляется в механизмах усреднения, процедурах сглаживания, принципах согласования противоречивых позиций, концепциях оптимальности и пр. [2].

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

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

В матричной форме оценка модели по выборке имеет вид [1]:

Y=Xb+e,

где X — матрица значений объясняющих переменных; b и e — параметры, определяющие коэффициент регрессии и вектор случайных ошибок соответственно.

Для расчета b можно использовать следующее выражение:

b={{({{X}^{T}}X)}^{-1}}{{X}^{T}}Y.

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

R=\sqrt{\frac{{{b}^{T}}X{{Y}^{T}}-n{{{\bar{y}}}^{2}}}{{{Y}^{T}}Y-n{{{\bar{y}}}^{2}}}},

где n — количество наблюдений Y.

Коэффициент R является обобщением коэффициента корреляции во множественной модели. В зависимости от тесноты связи R может принимать значения от 0 до 1.

Величина {{R}^{2}}, называемая множественным коэффициентом детерминации, показывает меру качества уравнения регрессии, характеристику прогностической силы анализируемой регрессионной модели: чем ближе {{R}^{2}} к единице, тем лучше регрессия описывает зависимость между объясняющими и зависимой переменными.

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

F=\frac{{{R}^{2}}(n-p-1)}{(1-{{R}^{2}})p}>{{F}_{\alpha,{{k}_{1}},{{k}_{2}}}},

где значение {{F}_{\alpha,{{k}_{1}},{{k}_{2}}}} — критерий Фишера-Снедекора, а p — количество независимых переменных X.

Опишем алгоритмы процедур разработанной программы регрессионного анализа на языке программирования Pascal.

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

Код программы отвечающий за этот процесс следующий:

Writeln ('Введите исходные данные в текстовый файл 2.txt.'); Writeln ('В первой строке укажите через пробел:'); Writeln ('1. количество наблюдений — N;'); Writeln ('2. количество объясняющих переменных — X.'); Writeln ('Во второй и последующих укажите значения для каждой переменной через пробел.'); Writeln ('В последней строке укажите N-ое количество значений — Y.');

Затем программа из начальных данных последовательно производит вычисления.

Сначала создается и заполняется значениями матрица X в процедуре readformfile в процессе считывания с текстового файла. На следующим шаге в процедуре smecenie в матрицу добавляется столбец, состоящий из единиц, что подразумевают правила для составления такой матрицы.

Процедура smecenie имеет вид:

for i: = 0 to n-1 do begin  for j: = m-1 downto 1 do   a[i,j]: = a[i,j-1];  a[i,0]: = 1; end;

Теперь программа работает с новой матрицей X. Используя матрицу X, производится вычисления.

Транспонирование происходит в процедуре transponir (X, X1, nn, nm); где X — исходная матрица; X1 — матрица где будет хранится обратная от X; nn, nm — соответствующие размеры матрицы X (строки, столбцы).

Фрагмент процедуры умножения матриц следующий [3]:

for i: = 0 to x-1 do  for j: = 0 to z-1 do begin   S: = 0;   for k: = 0 to y-1 do    S: = S + a[i,k]*b[k,j];   c[i,j]: = S;  end;

Также в программе, кроме умножения матриц используется такая операция как умножение матрицы на вектор [5].

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

for k: = 0 to n-1 do begin  for i: = 0 to n-1 do   for j: = 0 to n-1 do begin    if (i = k) and (j = k) then     source[i,j]: = 1/Back[i,j];    if (i = k) and (j <> k) then     source[i,j]: = -Back[i,j]/Back[k,k];    if (i <> k) and (j = k) then     source[i,j]: = Back[i,k]/Back[k,k];    if (i <> k) and (j <> k) then     source[i,j]: = Back[i,j] — Back[k,j] *Back[i,k]/Back[k,k]; end;

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

procedure znacimost(rt:real; n:integer; m:integer); var F,F1:real; begin  F: = (rt*(n — m — 1))/((1 — rt)*2);  writeln('введите фактическое значение F ');  writeln('при альфа= 0.05 при k1= ',m-1,' и k2 = ', n-m-1,' из таблицы Фишера-Снедекора');  readln(F1);  if F > F1 then   writeln('уравнение регрессии значимо. т.е. все переменные влияют на описанную модель')  else begin   writeln('уравнение регрессии не достаточно описана. Рекомендуется проверить теоретическую значимость введенных переменных');  end; end;

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

Таким образом, разработанное программное обеспечение может быть использовано в процессе осуществления расчетов, связанных с регрессионным анализом [4].

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

Читайте также

Список литературы

  1. Кремер Н.Ш. Теория вероятности и математическая статистика, 3-е издание. М.: Юнити, 2010. 551 с.
  2. Левин Д.М., Стефан Д., Кребиль Т.С., Беренсон М.Л. Статистика для менеджеров с использованием Microsoft Excel, 4-е издание. М.: Вильямс, 2004. 1312 с.
  3. Дмитриев В.Л. Теория и практика решения задач по программированию. Уфа: РИЦ БашГУ, 2010. 264 с.
  4. Антипин А.Ф. Вопросы автоматизации семантического анализа программ // Автоматизация, телемеханизация и связь в нефтяной промышленности. 2014. № 7. С. 26–30.
  5. Антипин А.Ф. Особенности программной реализации многомерных логических регуляторов с переменными в виде совокупности аргументов двузначной логики // Автоматизация и современные технологии. 2014. № 2. С. 30–36.

Цитировать

Антипин, А.Ф. Об автоматизации множественного регрессионного анализа / А.Ф. Антипин, Г.М. Садекова. — Текст : электронный // NovaInfo, 2015. — № 32. — URL: https://novainfo.ru/article/3302 (дата обращения: 26.06.2022).

Поделиться