В исследованиях часто необходимо решать задачи выявления факторов, определяющие уровень и динамику того или иного процесса. Для достоверного отображения объективно существующих процессов необходимо выявлять существенные взаимосвязи и не только выявлять, но и дать им количественную оценку. Такой подход требует объяснения причинных зависимостей для принятия решений. Для этого как нельзя лучше подходит регрессионный анализ, с помощью которого можно решать экономические, физические и другие задачи, например, является ли какой-либо фактор определяющим при проведении эксперимента.
Регрессионный анализ стал настолько привычным, что мы уже давно не замечаем, как он проявляется в механизмах усреднения, процедурах сглаживания, принципах согласования противоречивых позиций, концепциях оптимальности и пр. [2].
Целью этой работы является краткое рассмотрение теоретических основ множественного регрессионного анализа и программирование получения результатов по конкретным данным исследований, которые позволят принять решение для конкретных задач экономической или другой деятельности человека.
Множественный регрессионный анализ позволяет производить оценку с любым количеством объясняющих переменных. В связи с этим возникает задача исследования зависимости одной зависимой переменной Y от нескольких объясняющих переменных X.
В матричной форме оценка модели по выборке имеет вид [1]:
Y=Xb+e,
где X — матрица значений объясняющих переменных; b и e — параметры, определяющие коэффициент регрессии и вектор случайных ошибок соответственно.
Для расчета b можно использовать следующее выражение:
Для оценки взаимосвязи между переменной и совокупности независимых переменных используется множественный коэффициент корреляции R.
где n — количество наблюдений Y.
Коэффициент R является обобщением коэффициента корреляции во множественной модели. В зависимости от тесноты связи R может принимать значения от 0 до 1.
Величина , называемая множественным коэффициентом детерминации, показывает меру качества уравнения регрессии, характеристику прогностической силы анализируемой регрессионной модели: чем ближе к единице, тем лучше регрессия описывает зависимость между объясняющими и зависимой переменными.
Если известен коэффициент детерминации, то критерий значимости уравнения регрессии может быть записан в виде:
,
где значение — критерий Фишера-Снедекора, а 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 beginfor j: = m-1 downto 1 doa[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 dofor j: = 0 to z-1 do beginS: = 0;for k: = 0 to y-1 doS: = S + a[i,k]*b[k,j];c[i,j]: = S;end;
Также в программе, кроме умножения матриц используется такая операция как умножение матрицы на вектор [5].
Последняя процедура, производящая действия над матрицами, это нахождение обратной матрицы. В процедуре используется метод исключения переменных:
for k: = 0 to n-1 do beginfor i: = 0 to n-1 dofor j: = 0 to n-1 do beginif (i = k) and (j = k) thensource[i,j]: = 1/Back[i,j];if (i = k) and (j k) thensource[i,j]: = -Back[i,j]/Back[k,k];if (i k) and (j = k) thensource[i,j]: = Back[i,k]/Back[k,k];if (i k) and (j k) thensource[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;beginF: = (rt*(n — m — 1))/((1 — rt)*2);writeln('введите фактическое значение F ');writeln('при альфа= 0.05 при k1= ',m-1,' и k2 = ', n-m-1,' из таблицы Фишера-Снедекора');readln(F1);if F > F1 thenwriteln('уравнение регрессии значимо. т.е. все переменные влияют на описанную модель')else beginwriteln('уравнение регрессии не достаточно описана. Рекомендуется проверить теоретическую значимость введенных переменных');end;end;
В процедуре производится сравнение значений и по результату этого сравнения происходит оценка переменных.
Таким образом, разработанное программное обеспечение может быть использовано в процессе осуществления расчетов, связанных с регрессионным анализом [4].
Следует подчеркнуть, что включение в регрессионную модель переменных не должно противоречить теоретическим положениям соответствующей предметной области моделируемого объекта. Меняя состав переменных, получаем новые уравнения регрессии. При этом в пользу добавления в модель (исключение из модели) каждой переменной могут свидетельствовать о значимости (незначимости) коэффициента регрессии.