主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

多項式の曲線近似

この例では,曲线拟合工具箱™を使用して6次までの多項式による国勢調査データへの近似方法を示します。また,単項指数方程式で近似し,多項式モデルと比較する方法も説明します。

その手順では,以下を実行する方法を示します。

  • データを読み込み,異なるライブラリモデルを使用して近似を作成。

  • グラフィカルな近似結果の比較と,近似係数および適合度の統計量を含む数値的な近似結果の比較により,最適な近似を探索。

データの読み込みとプロット

この例のデータはファイルcensus.matです。

负载人口普查

ワークスペースには次の2つの新しい変数が含まれています。

  • cdateは1790年から1990年までの10年ごとの年度を示す列ベクトルです。

  • 流行は,cdateの年度に対応する米国の人口数が記された列ベクトルです。

cdate流行
名称大小字节类属性cdate 21x1 168 double pop 21x1 168 double
情节(cdate、流行,“o”

图中包含一个轴。轴包含一个线条类型的对象。

2次多項式の作成とプロット

関数适合を使用して,多項式でデータを近似します。文字列“poly2”で2次多項式を指定します。适合の最初の出力は多項式で,2番目の出力gofには,後の手順で調べる適合度の統計量が含まれます。

[population2, gof] =适合(cdate、流行、“poly2”);

近似をプロットするには関数情节を使用します。左上隅に凡例を追加します。

情节(population2、cdate、流行);传奇(“位置”“西北”);

图中包含一个轴。轴包含2个线型对象。这些对象代表数据,拟合曲线。

一連の多項式の作成とプロット

さまざまな次数の多項式で近似するには,たとえば3次多項式用に“poly3”を使用してfittypeの文字列を変更します。入力cdateのスケールはかなり大きいため,データをセンタリングおよびスケーリングすると,より適切な結果が得られます。これを行うには,“正常化”オプションを使用します。

population3 =适合(cdate、流行、“poly3”“正常化”“上”);population4 =适合(cdate、流行、“poly4”“正常化”“上”);population5 =适合(cdate、流行、“poly5”“正常化”“上”);population6 =适合(cdate、流行、“poly6”“正常化”“上”);

人口増加の簡単なモデルから,指数方程式がこの国勢調査データによく合うだろうということがわかります。単項指数モデルで近似するには,fittypeとして“exp1”を使用します。

populationExp =适合(cdate、流行、“exp1”);

すべての近似を一度にプロットし,プロットの左上隅に意味のある凡例を追加します。

持有情节(population3“b”);情节(population4‘g’);情节(population5“米”);情节(population6“b——”);情节(populationExp“r——”);持有传奇(“cdate v流行”“poly2”“poly3”“poly4”“poly5”“poly6”“exp1”...“位置”“西北”);

图中包含一个轴。轴包含7个类型线对象。这些对象代表cdate v pop, poly2, poly3, poly4, poly5, poly6, exp1。

残差のプロットによる近似の評価

残差をプロットするには,関数情节にプロットタイプとして“残差”を指定します。

情节(population2 cdate、流行、“残差”);

图中包含一个轴。轴包含2个线型对象。这些对象代表数据,零线。

多項方程式の近似と残差はどれも似ているため,最適なものを選択することが難しくなっています。

残差が体系的なパターンを示している場合,それはモデルがデータを適切に近似していないという明白な印です。

情节(populationExp cdate、流行、“残差”);

图中包含一个轴。轴包含2个线型对象。这些对象代表数据,零线。

単項指数方程式の近似と残差は,全体的に近似が適切でないことを示しています。したがって,これは不適切な選択であり,最適な近似の候補から指数近似を削除できます。

データ範囲外の近似の検証

2050年までの近似の振る舞いを検証します。国勢調査データの近似の目標は,最適な近似を外挿して将来の人口値を予測することです。

既定の設定では,近似はデータの範囲全体についてプロットされます。別の範囲で近似をプロットするには,近似をプロットする前にx軸範囲を設定します。たとえば,近似から外挿された値を確認するには,x軸範囲の上限を2050に設定します。

情节(cdate、流行,“o”);xlim((1900、2050));持有情节(population6);持有

图中包含一个轴。轴包含2个线型对象。该对象表示拟合曲线。

プロットを検証します。データ範囲外での6次多項式近似の振る舞いから,これは外挿に適した選択ではないため,この近似は棄却できます。

予測区間のプロット

予測区間をプロットするには,プロットタイプとして“predobs”または“predfun”を使用します。たとえば2050年までの新しい観測値について5次多項式の予測限界を確認するには次のようにします。

情节(cdate、流行,“o”);xlim((1900、2050))情节(population5“predobs”);持有

图中包含一个轴。轴包含4个类型线对象。这些对象代表拟合曲线,预测界限。

3次多項式の予測区間を2050年までプロットします。

情节(cdate、流行,“o”);xlim((1900、2050))情节(population3“predobs”)举行

图中包含一个轴。轴包含4个类型线对象。这些对象代表拟合曲线,预测界限。

適合度の統計量の検証

構造体gofは近似“poly2”の適合度の統計量を示します。前述の手順で関数适合を使用して近似“poly2”を作成したとき,gof出力引数を指定しました。

gof
gof =结构体字段:Sse: 159.0293 rsquare: 0.9987 dfe: 18 adjrsquare: 0.9986 rmse: 2.9724

誤差の二乗和(SSE)と自由度調整済み決定係数の統計量を検証すると,最適な近似の決定に役立ちます。上交所の統計量は近似の最小二乗誤差であり,値がゼロに近いほど近似が適切であることを示します。一般に,自由度調整済み決定係数の統計量は,係数をモデルに追加するときに近似品質の最も優れた指標になります。

“exp1”の大きなSSEは,この近似が適切でないことを示しています。これについては,近似と残差の検証により既に判断済みです。上交所値が最小なのは“poly6”です。ただし,データ範囲外でのこの近似の振る舞いから,これは外挿に適した選択ではありません。新しい軸の範囲を使用したプロットの検証により,この近似は棄却済みです。

その次にSSE値が適切なのは5次多項式近似“poly5”であり,これが最適な近似である可能性があります。ただし,残りの多項式近似のSSEと自由度調整済み決定係数の値はすべて互いに非常に近い値です。どれを選択したら良いでしょうか。

係数および信頼限界の比較による適切な近似の決定

最適な近似の問題を解決するために,残りの近似である5次多項式と2次多項式の係数と信頼限界を検証します。

モデル,近似係数,近似係数の信頼限界を表示して,population2population5を検証します。

population2
系数(95%置信范围):p1 = 0.006541 (0.006124, 0.006958) p2 = -23.51 (-25.09, -21.93) p3 = 2.113e+04 (1.964e+04, 2.262e+04)
population5
population5 =线性模型Poly5: population5 (x) = p1 * x ^ 5 + p2 * x ^ 4 + p3 * x ^ 3 + p4 * x ^ 2 + p5 * x + p6 x是由平均1890和std 62.05归一化系数(95%置信界限):p1 = 0.5877 (-2.305, 3.48) p2 = 0.7047 (-1.684, 3.094) p3 = -0.9193 (-10.19, 8.356) p4 = 23.47 (17.42, 29.52) p5 = 74.97 (68.37, 81.57) p6 = 62.23 (59.51, 64.95)

confintを使用して信頼区間を取得することもできます。

ci = confint (population5)
ci =2×6-2.3046 -1.6841 -10.1943 17.4213 68.3655 59.5102 3.4801 3.0936 8.3558 29.5199 81.5696 64.9469

係数の信頼限界によって係数の精度が決まります。近似方程式 (f (x) = p1 * x + p2 *……など)を確認し,各係数のモデル項を調べます。p2“poly2”の項p2 * x“poly5”の項p2 * x ^ 4を示していることに注意してください。正規化した係数と正規化していない係数を直接比較しないでください。

5次多項式の係数p1p2およびp3については,範囲がゼロと交差します。そのため,これらの係数がゼロではないという確信はもてません。高次数のモデル項の係数がゼロになる場合,それらの項は近似に寄与しておらず,このモデルが国勢調査データに過適合していることを示しています。

定数項1次および2次の項に関連する近似係数は正規化されたどの多項方程式でもほぼ同一です。ただし,多項式の次数が大きくなると,高次の項に関連する係数範囲がゼロと交差し,過適合の可能性があることがわかります。

一方,2次近似ではp1p2およびp3の信頼限界が小さくゼロと交差しないため,近似係数がかなり正確に求められたことを示しています。

こうして,グラフィカルな近似結果と数値的な近似結果の両方を検証すると,国勢調査データを外挿するための最適な近似として2次多項式のpopulation2を選択することになります。

新しいクエリ点での最適な近似の評価

この国勢調査データを外挿するための最適な近似population2を選択しました。ここで,いくつかの新しいクエリ点で近似を評価してみます。

cdateFuture =(2000:10:2020)。';popFuture = population2 (cdateFuture)
popFuture =3×1274.6221 301.8240 330.3341

将来の人口の予測について95%信頼限界を計算するために,predintメソッドを使用します。

ci = predint (population2 cdateFuture, 0.95,“观察”
ci =3×2266.9185 282.3257 293.5673 310.0807 321.3979 339.2702

近似とデータに対して,予測された将来の人口を信頼区間と共にプロットします。

情节(cdate、流行,“o”);xlim((1900、2040))plot(population2) h = errorbar(cdateFuture,popFuture,popFuture-ci(:,1),ci(:,2)-popFuture,“。”);持有传奇(“cdate v流行”“poly2”“预测”...“位置”“西北”

图中包含一个轴。轴包含3个对象的类型线,errorbar。这些对象代表cdate v pop, poly2, prediction。

詳細は,多項式モデルを参照してください。