Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

i-808190579

.pdf
Скачиваний:
27
Добавлен:
26.03.2016
Размер:
4.39 Mб
Скачать

x(N)=x(N-1); histfit(x) pause

xsr = mean(x); SX2=var(x);

x0 =x-xsr; Rxx=xcov(x,'unbiased'); [Kxx,ti]=xcov(x,'coeff'); for j=1:tm

Rx(j)=Rxx(N-1+j); rx(j)=Kxx(N-1+j); tn(j)=j;

end plot(tn-1,Rx,'--',tn-1,rx); grid on

title('Оценки Rxx,rx'); hleg1 = legend('Rxx','rx'); pause

[Px,w] = pwelch(x0,[],[],[],1); [Sx,w] = pburg(x0,1,[],1); plot(w,Px,'--',w,Sx);

grid on

title('Оценки Px ,Sx'); hleg1 = legend('Px','Sx'); pause

[Kux,ti]=xcov(U,x,'coeff');%Расчет взаимной корреляционной функции

[Rux,ti]=xcov(U,x,'unbiased'); plot(ti,Rux,'--',ti,Kux);

grid on

title('Оценка Rux,rux'); hleg1 = legend('Rux','rux'); pause

[Pux,w]=cpsd(U0,x0,[],1);%Оценка взаимного спектра plot(w,abs(Pux));

grid on

title('Оценка absPux'); pause

%Прохождение случайного процесса через нелинейное звено: for t=1:N

y(t)=(x0(t))^2;

end

%Построение графиков t=0:N-1; plot(t',[y']);

grid on xlabel('t'); ylabel('y(t)');

title('Прохождение случайного процесса через нелинейное звено)'); hleg2 = legend('y(t)=x(t)^2');

histfit(y) sptool

31

Рис. 2.1. Реализация случайного процесса U (k) типа «белый шум» и оценка его автокорреляционных функций Ruu (r) , ruu (r)

Рис. 2.2. Оценка СПМ Suu (ω) функцией

Рис. 2.3. Гистограмма случайного

periodogram и pwelch

процесса x(t)

Рис. 2.4. Оценки корреляционной функции Rxx (r) , rxx (r) и спектральной плотности мощности S xx (ω) функцией pwelch и pburg

Рис. 2.5. Оценки взаимной корреляционной функции Rux (r) , rux (r) и плотности кросс-спектра Sux (ω)

Рис. 2.6. Гистограмма временного ряда y(k) x(k)2

Рис. 2.7. Окна программы sptool

Рис. 2.8. Реализация случайного процесса x0(k) и оценка его спектральной плотности мощности

ЛАБОРАТОРНАЯ РАБОТА № 3

МЕТОДЫ РЕГРЕССИОННОГО АНАЛИЗА

Цель работы – обработка результатов пассивного эксперимента на статическом объекте методом регрессионного анализа, рекуррентным методом наименьших квадратов и стандартными средствами Mathcad и Matlab.

КРАТКОЕ ТЕОРЕТИЧЕСКОЕ ОПИСАНИЕ

Теоретические сведения приведены в разделах 4.2÷4.4 и 3.4 [1]. Зависимость выходной переменной от входных переменных предста-

вим в виде

y f (x,a) V ,

(3.1)

где a – вектор неизвестных параметров (коэффициентов) модели; f ( ) – век-

тор заданных (известных) базисных функций, х – вектор входных переменных размерности n 1 1, y – наблюдаемая входная переменная, V – помеха.

Если х – скаляр, то имеем функцию одной переменной, например, полиноминальная модель второго порядка (quadratic)

y a

a x a

2

x2

V ,

(3.2)

0

1

 

 

 

линейную относительно неизвестных параметров а, сепарабельную модель

y a

a x a

2

sin 2x a e 0.1x V ,

(3.3)

0

1

3

 

также линейную относительно неизвестного вектора а.

 

Многомерные модели, линейные относительно вектора а, имеют вид

y a x a x ... an xn V ,

(3.4)

где x j – линеаризованные переменные (регрессоры); a j – неизвестные пара-

метры.

Как правило, первый член уравнения (3.4) представляет собой свободный член и поэтому переменную x называют фиктивной переменной.

Результаты наблюдений (эксперимента) для рассмотренных моделей представим в виде входной и выходной матриц наблюдения

x

x

x ...

 

 

 

x

x

x ...

X

 

 

...

...

... ...

 

 

 

 

xN

xN ...

xN

где N – число наблюдений.

x n x n

...

xNn N n

 

y

 

 

 

 

 

 

 

y

 

 

 

...

 

 

Y

 

,

(3.5)

 

...

 

 

 

 

 

 

 

...

 

 

 

 

 

 

yN N

 

 

35

В матричной форме результаты наблюдений

 

Y Xa V ,

(3.6)

где размерности матриц Y N , X N n , a (n 1) 1 , V N .

Матрица X ранга n известна (это результаты наблюдений).

Задача метода регрессионного анализа (МРА) состоит в получении оценок неизвестных параметров а и статистическом анализе полученных результатов.

Для получения оценок используют метод наименьших квадратов (МНК). В матричной форме МНК – оценки вычисляют по формуле

 

^

1

X T Y ,

 

 

где M X T X

a X T X

– матрица Фишера, симметричная квадратная матрица раз-

мерности n n ; C X T X – дисперсионная матрица размерности

n n .

Модель регрессионного анализа для линеаризованных переменных

^ ^

 

^

^

 

^

 

y a0

x

a1 x

... an x

n

aT x .

(3.7)

 

0

1

 

 

 

Согласно (3.1) для исходных входных переменных и базисных функций модель регрессионного анализа имеет вид

^

^

 

y aT f x .

(3.8)

Методика статистического анализа и его предпосылки приведены в разделе 4.2 [1].

Рекуррентные методы оценивания.

Для моделей линейных по параметрам, выражение (3.7) на k-ом наблюдении представим моделью вида

 

^

^

n ^

 

y(k) aT (k 1)

x(k) a j (k 1)x j (k) , k , ,..., (3.9)

 

 

 

j 0

^

–вектор оценок параметров, полученных на предыдущем (k )

где a(k 1)

шаге; x(k) x0 (k)x1 (k)...xn (k) – вектор наблюденных линеаризованных пе-

^

ременных на k-ом шаге, размерности (n 1) 1; y(k) – предсказанное значе-

ние выходной переменной.

Процедура рекуррентного метода наименьших квадратов (РМНК) обеспечивает на k-ом такте вычисление: вектора оценок коэффициентов

^

a(k) , ковариационной матрицы оценок C(k) , остаточной суммы квадратов S(k) и остаточной дисперсии Sv (k) .

36

Идентификация параметров моделей, нелинейных относительно параметров, например, вида

y

 

 

a x2

V ,

 

 

1

a

2

sin x a x

 

 

3

 

осуществляется рекуррентными методами (нелинейный МНК и др.) (см. раз-

дел 4.4 [1]).

Стандартные функции регрессии Mathcad приведены в меню

Help→Functions→Curve Fitting and Smooth, в [2] или на сайте [4]. Рассмотрим некоторые из них.

Полиномиальная регрессия. Если зависимость (3.1) выражена полиномом n-ой степени переменной x

y a

a x a

 

x ... a

n

xn ,

(3.10)

 

 

 

 

 

то можно воспользоваться стандартной функцией регрессии a:=regress(X, Y, n)

где а – вектор оценок коэффициентов полинома, X – вектор наблюденных значений аргумента (переменной х); Y – вектор наблюденных значений функции; n – степень полинома, обычно n 4 .

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

экспонента

f (x) aebx c ,

a0:= – начальная точка a:=expfit(X, Y, a0)

y1(x):=a0·exp(a1·x)+a2

синусоида

f (x) asin(x b) c

a0:= – начальная точка a:=sinfit(X, Y, a0)

y2(x):=a0·sin(x+a1)+a2

степенная зависимость f (x) a xb c

a0:= – начальная точка a:=pwrfit(X, Y, a0)

37

 

y3(x):=a0· xa1

a 2

логистическая функция

 

 

 

 

f (x) a / 1 b e cx

 

 

 

 

 

 

 

 

 

a0:= – начальная точка

a:=lgsfit(X, Y, a0)

 

 

 

 

 

 

 

 

 

 

 

y4(x):=

 

a 0

 

i a

1

e a2x

 

 

 

 

логарифмическая функция

 

 

 

 

f (x) a ln( x b) c

 

 

 

 

 

 

 

 

 

a0:= – начальная точка

a:=logfit(X, Y, a0)

 

 

 

 

 

 

 

 

 

 

y5(x):=a0·ln(x+a1)+a2

Обобщенная регрессия.

Для модели одной переменной с известным базисом fi (x) (сепарабельная модель) вида

 

 

 

 

 

Q(x) a0 f0 (x) a1 f1 (x) ... an fn (x)

 

f

0

(x)

 

 

 

 

 

 

 

f1

(x)

 

Q(x):=

 

 

 

 

a:=linfit(X, Y, Q)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fn (x)

 

f(x):=aT·Q(x).

Для моделей одной переменной, нелинейных относительно парамет-

ров,

f (x) a0 x a1x2 a2 sin x a3 x

применяется функция genfit. При этом, в последних версиях Mathcad, вычисление частных производных по неизвестным параметрам не требуется (см.

раздел 4.4. [1]).

Задаем

a:= – начальный вектор коэффициентов

38

 

f(x, a):=

a

0

x a

1

x 2

 

 

 

 

 

a 2sin(x) a3x

b:=genfit(X, Y, a, f)

F(x):=f(x, b)

Существуют различные наборы вектора оценок b, удовлетворяющие критерию минимума квадрата невязки. Поэтому не всегда процедура сходится к «истинным» коэффициентам.

Примеры совместного использования процедур регрессии и интерполяции приведены в [2].

Многомерная регрессия. Для модели (3.1) необходимо провести линеаризацию переменных и перейти к модели (3.4).

Полученные результаты эксперимента матрицы (3.5), следует подставить в процедуру regress для степени полинома n 1

a:=regress(X, Y, 1).

Матрица Х может быть и без столбца x0 1. В процедуре он формиру-

ется программно.

Параметры, выводимые функцией на печать (в виде вектора): 3 – номер функции regress в списке функций, 3 – параметр функции для других функций, n – степень полинома, 0 – признак использования матрицы Х со столбцом x0 1 (свободный член). Если без него, то этот параметр отсутствует,

параметры

(коэффициенты) уравнения регрессии в последовательности

^ ^ ^

^ ^

a1, a2 , a3 ,...,an , a0 ).

Построение 2D- и 3D-графиков для полученного уравнения регрессии (3.4) следует проводить по каждой переменной (двум переменным) при фиксированных остальных. Полученные кривые (или поверхности) отражают существенные свойства модели.

Стандартные функции регрессии в системе Matlab (R2008b).

Curve Fitting Toolbox это набор пользовательских графических интерфейсов (GUIs) и M-функций, созданных в вычислительной среде Matlab. Пакет обеспечивает первичную обработку данных, аппроксимацию, интерполяцию, МНК-сглаживание, анализ результатов, преимущественно для одномерных моделей, типовых и создаваемых пользователем (прил. 1). В версии Matlab R2012b можно обрабатывать данные функции двух переменных с построением 3D-графиков.

Вызов приложения

>> cftool

Появляется окно приложения (рис. П.1).

Активизируя кнопку Data, получим окно Data (рис. П.2), далее кнопки X Data, Y Data, вводим (импортируем) массивы X и Y из рабочей области Matlab, указывая их имена (идентификаторы). После этого, строится поле регрессии Y(x). Далее в окне Data set name зададим запоминающееся имя

39

данных и активизируем клавишу Creat data set.

В первом окне активизируем кнопку Fitting. Появляется диалоговое окно Fitting (рис. П.3), в котором следует нажать кнопку New fit, после чего все элементы управления данного окна становятся доступными.

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

Описание процедур с примерами дано по ссылке Help→Product Help→Curve Fitting Toolbox→Interactive Curve Fitting→Data Fitting.

Тестовый пример приведен в прил. 3.

Обработка результатов эксперимента в пакете Statistics Toolbox [3].

Множественная линейная регрессия.

Для исходных данных вида (3.5) функция

[b,bint,r,rint,stats] = regress(Y,X)

возвращает: b – вектор оценок коэффициентов линейного по параметрам уравнения регрессии, bint – матрицу интервальных оценок параметров линейной регрессии, r - вектор остатков, rint – матрицу 95% доверительных

интервалов остатков, stats - структуру, содержащую значения статистики R2 с соответствующими ей F-статистикой и уровнем значимости p для регрессионной модели.

Размерность матрицы bint составляет n×2, где первый столбец матрицы задает нижнюю границу 95% доверительного интервала, второй – верхнюю границу 95% доверительного интервала параметра. Количество элементов вектора r равно N. Размерность матрицы rint равна N×2, где первый и второй столбцы используются для задания нижней и верхней границ 95% доверительного интервала по каждому из N наблюдений.

Статистический анализ полученных результатов осуществляет функция regstats [4].

Тестовый пример приведен в прил. 4.

Пошаговая регрессия в интерактивном режиме.

Функция

stepwise(X,Y)

позволяет получить в интерактивном режиме регрессионную модель для зависимой переменной y от независимых переменных – столбцов матрицы X (вида 3.5). Функция отображает три графических окна для управления процессом пошаговой регрессии, т.е. последовательным включением (исключением) пользователем параметра (столбца) модели.

График значений коэффициентов регрессии и их 95% доверительных интервалов приведен на (рис. 3.1). Значения коэффициентов регрессии и границ их доверительных интервалов, включенные в модель, отображаются синим цветом. Коэффициенты регрессии, исключенные из регрессионной модели, выделяются красным цветом. Включение или исключение фактора из

40

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]