Пусть
где:
$$Y$$ — $$n$$ -мерный вектор наблюдений;
$$Х$$ — матрица известных коэффициентов порядка $$n\times p$$ (матрица регрессоров);
$$\beta$$ — $$p$$ -мерный вектор неизвестных параметров, подлежащих определению;
$$\varepsilon$$ — $$n$$ -мерный случайный вектор (помехи);
$$\sigma^2$$ — неизвестный параметр;
$$E_{n}$$ —
$$M, D$$ — операторы взятия математического ожидания и дисперсии [1].
В случае применения метода наименьших квадратов для оценки параметров модели (11.1) приходим к нормальному уравнению
$$X^TX\tilde b=X^TY.$$Если $$rank X = r < p$$, то информационная матрица $$X^{T}X$$ является вырожденной (т. е. ее
Оценка общего решения нормального уравнения с вырожденной информационной матрицей может быть получена с помощью обобщенной обратной матрицы, которую обозначают как $$S ^{-}$$ и называют $$g$$ -обратной матрицей. Обобщенная обратная матрица всегда существует и не обязательно единственная [1, 17].
Определение. Пусть $$S — (m\times n)$$ -матрица произвольного ранга. Обобщенной обратной (или $$g$$ -обратной) матрицей для $$S$$ называется матрица $$S ^{-}$$ порядка $$n\times m$$, такая, что
$$SS ^{-}S=S$$Нормальное уравнение (11.2) запишем в виде
$$Sb = Q,$$где:
$$S=X^{T}X$$ — квадратная матрица порядка $$p$$ ;
$$Q=X^{T}Y$$ — $$p$$ -мерный вектор.
Если $$rank X = r < p$$, то матрица $$S$$ — вырожденная.
Общее решение неоднородного уравнения (11.4) есть сумма любого
Известно, что если $$S ^{-}$$ — обобщенная матрица для матрицы $$S$$, то частное решение уравнения (11.4) имеет вид
$$\tilde b=S ^{-}Q.$$Общее решение
где:
$$H=S^{-}S$$ — идемпотентная матрица ( $$H=H^{2},\mbox{ }rank\mbox{ }H = trace\mbox{ }H = p$$ );
$$E_{p}$$ —
$$z$$ — произвольный вещественный вектор порядка $$p$$, в том числе и равный тождественно нулю [1].
Общее решение уравнения (11.4) есть сумма
где $$E_{p-k}$$ —
Пример 1. Для заданной матрицы регрессоров неполного ранга и вектора значений функции отклика произведите оценку линейной регрессионной модели. Рассчитайте
Матрица регрессоров:
$$X= \left[\begin{array}{ccccc} 3.40223.02523.51783.86961.3751\\ -1.864910.25224.24634.67094.6601\\ 0.374110.3820-1.9841-2.18254.7191\\ 4.3259-3.82604.30704.7377-1.7391\\ 3.337710.48232.05892.26484.7647\\ 4.675910.2461-2.2197-2.44174.6573\\ 2.24591.9426-0.7720-0.84920.8830 \end{array}\right],$$вектор значений функции отклика (вектор наблюдений):
$$Y= \left[\begin{array}{c} 13.784\\ 13.617\\ 12.968\\ 14.713\\ 13.864\\ 12.847\\ 14.420 \end{array}\right].$$Сначала следует определить линейно зависимые столбцы и произвести преобразование матрицы с целью расположения первых $$k$$ линейно независимых столбцов. Величина $$k$$ будет равняться рангу матрицы. Как известно, столбцы матрицы — линейно зависимые, если значения одного столбца отличаются от значений другого столбца на постоянный множитель. Порядок расположения в матрице регрессоров не отразится на результате произведения этой матрицы на искомые коэффициенты
Программный код решения примера:
clear,clc,close
% Исходные данные
% Матрица регрессоров
X = [1.340, 1.630, -4.240, 2.412, 5.088;
1.610, 1.900, -3.970, 2.898, 4.764;
1.470, 1.760, -4.110, 2.646, 4.932;
2.610, 2.900, -2.970, 4.698, 3.564;
3.000, 3.290, -2.580, 5.400, 3.096;
2.040, 2.330, -3.540, 3.672, 4.248;
1.060, 1.470, -4.520, 1.908, 5.424];
% Вектор наблюдений - вектор выхода
Y = [13.784;13.617;12.968;14.713;13.864;12.847;14.420];
% Размерность вектора наблюдений
n = length(Y);
% Размерность искомого вектора коэффициентов линейной модели
p = size(X,2);
%%-------------------------------------------
% Вычисление ранга матрицы регрессоров
rankX = rank(X);
if rankX == p %% модель полного ранга
fprintf('\n Размерность вектора параметров модели: p = %d\n Модель наблюдений полного ранга: rank(X) = %d\n', p, rankX);
B = inv(X'*X)*X'*Y;
disp(' ')
disp(' Оценка вектора параметров B: ')
disp(B)
YY = X*B;
fprintf('\n Y - заданный вектор наблюдений;\n');
fprintf(' YY - расчетный вектор наблюдений;\n');
fprintf(' Error - относительная погрешность;\n');
fprintf('\tY\t\t\tYY\t\t Error\n');
erd = abs(Y-YY)./abs(Y)*100;
for J = 1 : length(Y)
fprintf(' %1.4f\t %1.4f\t %1.4f%%\n', Y(J), YY(J), erd(J));
end
RESS = (Y-YY)'*(Y-YY);
Cp = mean(abs(Y-YY)./abs(Y)*100);
fprintf('\n Величина RSS: %g\n', RESS);
fprintf(' Усредненная погрешность расчета вектора наблюдения: %g%%\n', Cp);
return
end
%% модель наблюдений неполного ранга
fprintf('\n Размерность вектора параметров модели: p = %d\n',p);
fprintf(' Модель наблюдений неполного ранга: rank(X) = %d\n', rankX);
% Определение номеров линейно зависимых столбцов
k1 = 0;
for N = 1 : p
for J = 1 : p
op = abs(X (:,J))./abs(X (:,N));
Pr(1:n,1) = op;
str = sprintf('%1.5f', Pr(1));
str2 = sprintf('%1.5f', Pr(end));
if str2num(str) == str2num(str2) str2num(str) ~= 1
k1 = k1 + 1;
NJ(k1,1:2) = [N,J];
end
end
end
k2 = 0;
en = size(NJ,1);
for I = 1 : size(NJ,1)
for J = 1 : size(NJ,2)
if NJ(I,J) == NJ(en-J+1,2)
k2 = k2 + 1;
EX(k2) = (en-J+1);
end
end
end
NJ(EX,:) = []
for J = 1 : size(NJ,1)
fprintf(' Столбец %d линейно зависит от столбца %d\n', NJ(J,2), NJ(J,1));
end
%%-------------------------------------------
X0 = X(:,1:rank(X));
X1 = X(:, rank(X)+1:end);
S = X'*X; %% информационная матрица
% Формирование g-обратной матрицы
B11 = inv(X0'*X0);
B12 = zeros(rank(X), p-rank(X));
B21 = zeros(p-rank(X), rank(X));
B22 = zeros(p-rank(X),p -rank(X) );
Sg = [B11, B12;B21,B22] % g-обратная матрица
H = Sg*S;
z = randn(size(X,2), 1); %%случайный вещественный вектор
P11 = inv(X0'*X0)*X0'*Y;
P21 = zeros(p - rank(X), 1);
% Z11 = zeros(rank(X));
% Z12 = inv(X0'*X0)*X0'*X1;
% Z21 = zeros(p - rank(X), rank(X));
% Z22 = -eye((p - rank(X)));
% B = [P11;P21]+ [Z11,Z12;Z21,Z22]*z
Ep = eye(p);
B = [P11;P21] + [H - Ep]*z;
disp(' ')
disp(' Оценка вектора параметров B: ')
disp(B)
YY = X*B;
fprintf('\n Y - заданный вектор наблюдений;\n');
fprintf(' YY - расчетный вектор наблюдений;\n');
fprintf(' Error - относительная погрешность;\n');
fprintf('\tY\t\t\tYY\t\t Error\n');
erd = abs(Y-YY)./abs(Y)*100;
for J = 1 : length(Y)
fprintf(' %1.4f\t %1.4f\t %1.4f%%\n', Y(J), YY(J), erd(J));
end
RESS = (Y-YY)'*(Y-YY);
Cp = mean(abs(Y-YY)./abs(Y)*100);
fprintf('\n Величина RSS: %g\n', RESS);
fprintf(' Усредненная погрешность расчета вектора наблюдения: %g%%\n', Cp);
Bopt = B;
k = 2;
d = 0;
for J = 0.79*Bopt(k) : 0.01 : 1.21*Bopt(k)
d = d + 1;
B(k) = J;
YY = X*B;
RESS(d) = (Y-YY)'*(Y-YY);
Xres(d) = J;
end
kmin = find(RESS == min(RESS));
bmin = Xres(kmin);
fig1 = figure(1);
set(fig1,'name','Зависимость RSS от параметра')
line(Xres, RESS, 'linew', 2)
grid on
ch = sprintf('%sОптимальное значение %d-го параметра: %s(%d) = %g','\bf\fontsize{11}\fontname{times}',
k, strcat('\beta', '_{opt}'), k,bmin);
title(ch);
ylabel('\bf\fontsize{12}\fontname{times}RSS');
ch2=sprintf('%s_%d','\bf\fontsize{12}\fontname{times}\beta',k);
xlabel(ch2);
В программе предусмотрен вариант расчета вектора параметров линейной регрессионной модели для случая наблюдений полного ранга. Если имеется полный ранг, то расчет ведется по решению нормального уравнения, в котором информационная матрица — не вырожденная. Притом с помощью оператора $$return$$ прекращается дальнейшее выполнение программы.
В программе усредненная погрешность расчета вектора параметра – это средняя величина от столбца
В программе произведено изменение 2-го параметра регрессионной модели. Его изменение выполнено слева и справа от оптимального значения.
Результат выполнения программы
Размерность вектора параметров модели: p = 5
Модель наблюдений неполного ранга: rank(X) = 3
Столбец 4 линейно зависит от столбца 1
Столбец 5 линейно зависит от столбца 3
Sg =
116.6611 -112.7327 -7.3650 0 0
-112.7327 109.0775 7.1933 0 0
-7.3650 7.1933 0.5164 0 0
0 0 0 0 0
0 0 0 0 0
Оценка вектора параметров B:
-7.8809
10.5189
-0.9992
-0.2349
0.5978
Y - заданный вектор наблюдений;
YY - расчетный вектор наблюдений;
Error - относительная погрешность;
Y YY Error
13.7840 13.2973 3.5308%
13.6170 13.4319 1.3592%
12.9680 13.3621 3.0392%
14.7130 13.9305 5.3187%
13.8640 14.1249 1.8817%
12.8470 13.6463 6.2216%
14.4200 14.4200 0.0000%
Величина RSS: 1.74575
Усредненная погрешность расчета вектора наблюдения: 3.05018%
Диаграмма зависимости RSS от величины 2-го компонента вектора параметров показана на рис. 11.1.
(рис 11.1) Зависимость RSS от 2-го компонента вектора параметров моделиЗадание 1
Пример 2. Вычислите коэффициенты $$а_{1},\mbox{ }а_{2},\mbox{ }а_{3}$$ уравнения линейной регрессии $$y = a_{1}x_{1} + a_{2}x_{2} + a_{3}x_{3}$$ при следующем заданном множестве измерений эксперимента:
| Результаты измерений эксперимента | ||||||||||||
| $$x_{1}$$ | 0.620 | 0.400 | 0.420 | 0.820 | 0.660 | 0.720 | 0.380 | 0.520 | 0.450 | 0.690 | 0.550 | 0.360 |
| $$x_{2}$$ | 12.000 | 14.200 | 14.600 | 12.100 | 10.800 | 8.200 | 13.000 | 10.500 | 8.800 | 17.000 | 14.400 | 12.800 |
| $$x_{3}$$ | 5.890 | 3.800 | 3.990 | 7.790 | 6.270 | 6.840 | 3.610 | 4.940 | 4.275 | 6.555 | 5.225 | 3.420 |
| $$y$$ | 51.60 | 49.90 | 48.50 | 50.60 | 49.70 | 48.80 | 42.60 | 45.90 | 37.80 | 64.80 | 53.40 | 45.30 |
Данные, приведенные в таблице 11.1, взяты с некоторыми изменениями из [7].
Составим матрицу регрессоров $$Х$$:
$$X= \left[\begin{array}{ccc} 0.62012.0005.890\\ 0.40014.2003.800\\ 0.42014.6003.990\\ 0.82012.1007.790\\ 0.66010.8006.270\\ 0.7208.2006.840\\ 0.38013.0003.610\\ 0.52010.5004.940\\ 0.4508.8004.275\\ 0.69017.0006.555\\ 0.55014.4005.225\\ 0.36012.8003.420 \end{array}\right].$$Составим вектор наблюдений $$Y$$:
$$Y= \left[\begin{array}{c} 51.60\\ 49.90\\ 48.50\\ 50.60\\ 49.70\\ 48.80\\ 42.60\\ 45.90\\ 37.80\\ 64.80\\ 53.40\\ 45.30 \end{array}\right].$$Программный код решения примера:
clear,clc
%% Исходные данные
%% Матрица регрессоров
X = [0.620, 12.000, 5.890;
0.400, 14.200, 3.800;
0.420, 14.600, 3.990;
0.820, 12.100, 7.790;
0.660, 10.800, 6.270;
0.720, 8.200, 6.840;
0.380, 13.000, 3.610;
0.520, 10.500, 4.940;
0.450, 8.800, 4.275;
0.690, 17.000, 6.555;
0.550, 14.400, 5.225;
0.360, 12.800, 3.420];
%% Вектор наблюдений - вектор выхода
Y = [51.60;49.90;48.50;50.60;49.70;48.80;42.60;45.90;37.80;...
64.80;53.40;45.30];
% Размерность вектора параметров - коэффициентов модели
p = size(X,2);
% Размерность вектора наблюдений
n = length(Y);
rankX = rank(X);
if rankX == p %% модель полного ранга
fprintf('\n Размерность вектора параметров модели:
p = %d\n Модель наблюдений полного ранга: rank(X) = %d\n', p, rankX);
B = inv(X'*X)*X'*Y;
disp(' ')
disp(' Оценка вектора параметров B: ')
disp(B)
return
end
%% модель наблюдений неполного ранга
fprintf('\n Размерность вектора параметров модели: p = %d\n',p);
fprintf(' Модель наблюдений неполного ранга: rank(X) = %d\n', rankX);
% Определение номеров линейно зависимых столбцов
k1 = 0;
for N = 1 : p
for J = 1 : p
op = abs(X (:,J))./abs(X (:,N));
Pr(1:n,1) = op;
str = sprintf('%1.4f', Pr(1));
str2 = sprintf('%1.4f', Pr(end));
if str2num(str) == str2num(str2) str2num(str) ~= 1
k1 = k1 + 1;
NJ(k1,1:2) = [N,J];
end
end
end
k2 = 0;
en = size(NJ,1);
for I = 1 : size(NJ,1)
for J = 1 : size(NJ,2)
if NJ(I,J) == NJ(en-J+1,2)
k2 = k2 + 1;
EX(k2) = (en-J+1);
end
end
end
for J = 1 : size(NJ(EX),1)
fprintf(' Столбец %d линейно зависит от столбца %d\n', NJ(J,2), NJ(J,1));
end
X0 = X(:,1:rank(X));
X1 = X(:, rank(X)+1:end);
S = X'*X; %% информационная матрица
% Формирование g-обратной матрицы
A11 = inv(X0'*X0);
A12 = zeros(rank(X), p-rank(X));
A21 = zeros(p-rank(X), rank(X));
A22 = zeros(p-rank(X),p -rank(X) );
Sg = [A11, A12;A21,A22]; % g-обратная матрица
% Определение решения нормального уравнения
H = Sg*S;
z = randn(size(X,2), 1); %%случайный вещественный вектор
P11 = inv(X0’*X0)*X0’*Y;
P21 = zeros(p - rank(X), 1);
% Z11 = zeros(rank(X));
% Z12 = inv(X0’*X0)*X0’*X1;
% Z21 = zeros(p - rank(X), rank(X));
% Z22 = -eye((p - rank(X)));
% A = [P11;P21]+ [Z11,Z12;Z21,Z22]*z
Ep = eye(p);
A = [P11;P21] + [H - Ep]*z;
disp(‘ ‘)
disp(' Оценка вектора параметров A: ')
disp(A)
Результат выполнения программы
Размерность вектора параметров модели: p = 3
Модель наблюдений неполного ранга: rank(X) = 2
Столбец 3 линейно зависит от столбца 1
Оценка вектора параметров A:
54.4373
2.4329
-2.1269
Задание 2
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.