رگرسیون چند متغیره، یکی از متدهای آماری مقدماتی جهت پیش بینی روند متغییری وابسته به دو یا چند متغیر مستقل است.
از این روش میتوان برای تصمیم گیری در مورد خرید های پروژه استفاده های زیادی کرد. به عنوان مثال میتوان عادلانه بودن قیمت پیشنهادی برای یکی از ماشین آلات دست دوم را مورد بررسی قرار داد.
به این صورت که قیمت را در دوره های گذشته برای ماشین های مشابه با متغیرهای متفاوت، ( مثلاً مدت کارکرد و مدل ماشین ) مورد بررسی قرار داده و تابع قیمت را بر اساس فاکتورهای مدت کارکرد و مدل تخمین زد.
میزان انحراف قیمت پیشنهادی از قیمت تخمین زده شده توسط تکنیک رگرسیون خطی چند متغیره میتواند شاخص مناسبی در تصمیم گیری جهت خرید باشد.
رگرسیون درmatlab به صورت های زیر تعریف شده است.
xreglinear/regression
REGRESSION returns the regression matrix for the model m
[r,ok]=regression(m)
function [r,ok]=regression(m)
%REGRESSION returns the regression matrix for the model m
%
% [r,ok]=regression(m)
% Copyright 2000-2007 The MathWorks, Inc. and Ford Global Technologies, Inc.
% $Revision: 1.2.2.3 $ $Date: 2007/06/18 22:38:40 $
if ~isfield(m.Store,’Q’)
error(‘mbc:xreglinear:InvalidState’,…
‘Use InitStore first to initialize data in model’);
end
r=m.Store.X;
if ~isempty(r)
r=r(:,terms2(m));
end
if nargout>1
% rank check on regression matrix
ok=~(rank(r)
end
localsurface/regression
r=REGRESSION(m) returns the regression matrix for the model m
function [r,ok]=regression(m)
% r=REGRESSION(m) returns the regression matrix for the model m
% Copyright 2000-2004 The MathWorks, Inc. and Ford Global Technologies, Inc.
% $Revision: 1.2.2.2 $ $Date: 2004/02/09 07:42:28 $
[r,ok]=regression(m.userdefined);
لازم به ذکر است که تابع رگرسیون به صورت doubleکار میکند وبصورت زیر فراخوانی میشود.
R =regression(m)
اما ما میتوانیم تابع مورد نظرمان را با انتخاب گزینه ی file>>new>>…..و هر یک از گزینه های new، تعریف کنیم.
برای استفاده از تابع Ridge :
X = [x1 x2 x3];
D = x2fx(X,’interaction’);
D(:,1) = []; % No constant term
k = 0:1e-5:5e-3;
b = ridge(y,D,k);
Plot the ridge trace:
figure
plot(k,b,’LineWidth’,2)
ylim([-100 100])
grid on
xlabel(‘Ridge Parameter’)
ylabel(‘Standardized Coefficient’)
title(‘{\bf Ridge Trace}’)
legend(‘x1′,’x2′,’x3′,’x1x2′,’x1x3′,’x2x3’)
———————————————-
مثالی از رگرسیون ریج
Example of a matlab ridge regression function:
function bks=ridge(Z,Y,kvalues)
% Ridge Function of Z (centered, explanatory)
% Y is the response,
es where to compute
[n,p]=size(Z);
ZpY=Z’
% kvalues are the val
u*Y;
ZpZ=Z’*Z;
m=length(kvalues);
bks=ones(p,m);
for k =1:m
.۵)
kvalues =
Columns 1 through 7
bks(:,k)=(ZpZ+diag(kvalues(k)))\ZpY;
end
values=(0:.05
>> k
: ۰ ۰٫۰۵۰۰ ۰٫۱۰۰۰ ۰٫۱۵۰۰ ۰٫۲۰۰۰ ۰٫۲۵۰۰ ۰٫۳۰۰۰
Columns 8 through 11
۱٫۵۵۱۱ ۱٫۵۱۷۶ ۱٫۴۸۸۲ ۱٫۴۶۲۲
۰٫۳۵۰۰ ۰٫۴۰۰۰ ۰٫۴۵۰۰ ۰٫۵۰۰۰ >> ridge(Z,Y,(0:.05:.5)) ans = Columns 1 through 7 ۱٫۴۳۹۰ ۱٫۴۱۸۳ ۱٫۳۹۹۶ ۰٫۵۱۰۲ ۰٫۴۷۷۵ ۰٫۴۴۸۸ ۰٫۴۲۳۴ ۰٫۴۰۰۹ ۰٫۳۸۰۶ ۰٫۳۶۲۴
-۰٫۲۲۹۲ -۰٫۲۵۱۴ -۰٫۲۷۱۳ -۰٫۲۸۹۲
Columns 8 through 11
۱٫
۰٫۱۰۱۹ ۰٫۰۶۷۸ ۰٫۰۳۷۸ ۰٫۰۱۱۳ -۰٫۰۱۲۲ -۰٫۰۳۳۴ -۰٫۰۵۲۴ -۰٫۱۴۴۱ -۰٫۱۷۶۲ -۰٫۲۰۴۳ ۳۸۲۷ ۱٫۳۶۷۳ ۱٫۳۵۳۲ ۱٫۳۴۰۳ ۰٫۳۴۵۹ ۰٫۳۳۰۹ ۰٫۳۱۷۲ ۰٫۳۰۴۶ -۰٫۰۶۹۶ -۰٫۰۸۵۳ -۰٫۰۹۹۷ -۰٫۱۱۲۸ -۰٫۳۰۵۴ -۰٫۳۲۰۱ -۰٫۳۳۳۶ -۰٫۳۴۶۰
۲٫۶۹۷۳
>> k=(4*5.9829)/2.6973
%Formula gives for choice of k: >> norm(Yhat-Yc)^2 ans = ۴۷٫۸۶۳۶ >> 47.8636/(13-5) ans = ۵٫۹۸۲۹ % estimates the variance sigma^2 >> bk0'*bk0 ans = k =
.۸۷۲۴ % This is a suggested value for k
۸