ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

polyconf

多項式信頼区間

構文

Y = polyconf(p,X)
[Y,DELTA] = polyconf(p,X,S)
[Y,DELTA] = polyconf(p,X,S,param1,val1,param2,val2,...)

説明

Y = polyconf(p,X) は、X の値における多項式 p を評価します。p は、降べきの順の係数のベクトルです。

[Y,DELTA] = polyconf(p,X,S) は、polyfit の出力 p および S を使用して、X の値の新しい観測値に対する 95% の予測区間 Y ± DELTA を生成します。

[Y,DELTA] = polyconf(p,X,S,param1,val1,param2,val2,...) は、以下のリストから選択されたオプションのパラメーターの名前と値のペアを指定します。

パラメーター
'alpha'

100*(1-alpha)% の信頼度を指定する 0 ~ 1 の範囲の値。既定の設定は 0.05 です。

'mu'

センタリングとスケーリングのパラメーターを含む 2 要素のベクトル。このオプションを指定すると、polyconfX の代わりに (X-mu(1))/mu(2) を使用します。

'predopt'

X の値における新しい観測値の予測区間を計算するための 'observation' (既定値)、または X の値において評価される近似の信頼区間を計算するための 'curve' のどちらか。以下を参照。

'simopt'

非同時区間に対する 'off' (既定値) または同時区間に対する 'on' のどちらか。以下を参照。

'predopt' および 'simopt' パラメーターの値は、次の関数で表現できます。

  • p(x) — 近似により予測される未知の平均関数

  • l(x) — 信頼限界の下限

  • u(x) — 信頼限界の上限

xn+1 で新しい観測 yn+1 を行うとします。

yn+1(xn+1) = p(xn+1) + εn+1

既定の設定では、区間 [ln+1(xn+1), un+1(xn+1)] は yn+1(xn+1) に対する 95% 信頼限界です。

'predopt' および 'simopt' パラメーターの次の組み合わせを使用すると、他の区間を指定できます。

'simopt''predopt'限界区間量
'off''observation'

yn+1(xn+1) (既定値)

'off''curve'

p(xn+1)

'on''observation'

すべての x に対する yn+1(x)

'on''curve'

すべての x に対する p(x)

一般的に、'observation' 区間は新しい応答値の予測に不確実性が追加されるため (曲線プラス確率的誤差)、'curve' 区間よりも広くなります。同様に、同時区間はすべての予測子 x に対する区間値の不確かさが加わるため、非同時区間よりも広くなります。

この例では、ドキュメンテーション例の関数 polydemo のコードを使用して、Figure のタイトルに表示される多項式のテキストに係数ベクトル p を変換するためにドキュメンテーション例の関数 polystr を呼び出します。ここでは関数 polyfitpolyvalroots、および polyconf を組み合わせて、多項式近似を含むデータの書式付き表示を生成します。

メモ

Statistics and Machine Learning Toolbox™ のドキュメンテーションの例ファイルは、MATLAB® のルート フォルダー (matlabroot) のサブディレクトリ \help\toolbox\stats\examples にあります。このサブディレクトリはインストール時に MATLAB のパス上にありません。このサブディレクトリのファイルを利用するには、このサブディレクトリを MATLAB のパスに追加するか (addpath)、現在の作業フォルダーにしなければなりません (cd)。

新しい観測値に対する 2 次の傾向、近似された 2 次多項式、および 95% 予測区間と共にシミュレートされたデータを表示します。

xdata = -5:5;
ydata = xdata.^2 - 5*xdata - 3 + 5*randn(size(xdata));

degree = 2;		% Degree of the fit
alpha = 0.05;	% Significance level

% Compute the fit and return the structure used by 
% POLYCONF.
[p,S] = polyfit(xdata,ydata,degree);

% Compute the real roots and determine the extent of the 
% data.
r = roots(p)'; 							% Roots as a row vector.
real_r = r(imag(r) == 0); 	% Real roots.

% Assure that the data are row vectors.
xdata = reshape(xdata,1,length(xdata));
ydata = reshape(ydata,1,length(ydata));

% Extent of the data.
mx = min([real_r,xdata]);
Mx = max([real_r,xdata]);
my = min([ydata,0]);
My = max([ydata,0]);

% Scale factors for plotting.
sx = 0.05*(Mx-mx);
sy = 0.05*(My-my);

% Plot the data, the fit, and the roots.
hdata = plot(xdata,ydata,'md','MarkerSize',5,...
		'LineWidth',2);
hold on
xfit = mx-sx:0.01:Mx+sx;
yfit = polyval(p,xfit);
hfit = plot(xfit,yfit,'b-','LineWidth',2);
hroots = plot(real_r,zeros(size(real_r)),...
              'bo','MarkerSize',5,...
              'LineWidth',2,...
              'MarkerFaceColor','b');
grid on
plot(xfit,zeros(size(xfit)),'k-','LineWidth',2)
axis([mx-sx Mx+sx my-sy My+sy])

% Add prediction intervals to the plot.
[Y,DELTA] = polyconf(p,xfit,S,'alpha',alpha);
hconf = plot(xfit,Y+DELTA,'b--');
plot(xfit,Y-DELTA,'b--')

% Display the polynomial fit and the real roots.
approx_p = round(100*p)/100; % Round for display.
htitle = title(['{\bf Fit:   }',...
		texlabel(polystr(approx_p))]);
set(htitle,'Color','b')
approx_real_r = round(100*real_r)/100; % Round for display.
hxlabel = xlabel(['{\bf Real Roots:     }',...
				num2str(approx_real_r)]);
set(hxlabel,'Color','b')

% Add a legend.
legend([hdata,hfit,hroots,hconf],...
        'Data','Fit','Real Roots of Fit',...
        '95% Prediction Intervals')

R2006a より前に導入