Ранговый метод оценивания параметров регрессионной модели

Пример кода, вычисляющий результаты эксперимента по сравнинию ранговой оценки, МНК - и МНМ-оценок параметров для модели с гауссовским распределением шумов:

M=2;

N=50;

ReT=[2;5;-3];

Ls=0;

Rk=0;

La=0;

For k=1:1000

X1=ones(n,1);

Xr=5*rand(n, m);

X=[X1,Xr];

Ep=randn(n,1);

Y=X*reT+ep;

LsT=((X'*X)^-1)*X'*Y;

Ls=ls+sum((lsT-reT).^2)/1000;

RkT=rankreg(Xr, Y);

Rk=rk+sum((rkT-reT).^2)/1000;

[laT, S]=fminsearch(@(T) LAVal(Y, X,T), ones(m+1,1));

La=la+sum((laT-reT).^2)/1000;

End

Rk

Ls

La

Отдельным файлом для вычисления приближенной МНМ-оценки параметров прописывается функция потерь для МНМ:

Function S = LAVal(Y, X, T)

S=sum(abs(Y-X*T));

End

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

Load iris. dat

Y=iris(51:100,3);

X1=iris(51:100,1);

X2=iris(51:100,2);

Xc=[X1 X2];

RkT1=rankreg(Xc, Y)

[x1 x2]=meshgrid(0:0.1:75,0:0.1:40);

Y=rkT1(1) + rkT1(2)*x1 + rkT1(3)*x2;

Surf(x1,x2,y,'FaceAlpha',0.6,'EdgeColor','none')

Hold on

Plot3(X1,X2,Y,'ko')

X=[ones(50,1) Xc];

LsT1=((X'*X)^-1)*X'*Y

[laT1,S]=fminsearch(@(T) LAVal(Y, X,T), ones(3,1));

LaT1

It=fix(50*rand(1));

Y(it)=5*Y(it);

RkT2=rankreg(Xc, Y)

LsT2=((X'*X)^-1)*X'*Y

[laT2,S]=fminsearch(@(T) LAVal(Y, X,T), ones(3,1));

LaT2

D1=sum((rkT1-rkT2).^2)

D2=sum((lsT1-lsT2).^2)

D3=sum((laT1-laT2).^2)

Похожие статьи




Ранговый метод оценивания параметров регрессионной модели

Предыдущая | Следующая