プロット Excelの最小二乗法。 回帰分析

Excelの最小二乗法。 回帰分析

例。

変数の値に関する実験データ バツそして を表に示します。

それらを整列させた結果、次のような機能が得られます。

使用する 方法 最小二乗 、これらのデータを線形依存によって近似します。 y=ax+b(パラメータを見つける そして b)。 2 つの線のどちらが (最小二乗法の意味で) 実験データとよりよく一致しているかを見つけます。 図面を作成します。

最小二乗法 (LSM) の本質。

タスクは、2 つの変数の関数が次のような線形依存係数を見つけることです。 そして b は最小値をとります。 つまり、与えられた そして b見つかった直線からの実験データの偏差の二乗の合計が最小になります。 これが最小二乗法の要点です。

したがって、この例を解くことは、結局 2 つの変数の関数の極値を見つけることになります。

係数を見つけるための公式の導出。

2 つの未知数を含む 2 つの方程式系がコンパイルされ、解決されます。 関数の偏導関数を求める 変数による そして b、これらの微分値をゼロとみなします。

結果として得られる連立方程式を、任意の方法 (たとえば、 置換法によるまたは クレーマー法)、最小二乗法 (LSM) を使用して係数を見つけるための式を取得します。

与えられた そして b関数 は最小値をとります。 この事実の証明は与えられています ページの最後にあるテキストの下に.

これが最小二乗法全体の方法です。 パラメータを求める公式 ある sum 、、、パラメータが含まれます n- 実験データの量。 これらの金額の値を個別に計算することをお勧めします。 係数 b計算後に見つかった ある.

元の例を思い出してみましょう。

解決。

私たちの例では n=5。 必要な係数の式に含まれる量を計算する便宜のために、表に記入します。

表の4行目の値は、各数値ごとに2行目の値と3行目の値を乗算して得られます。 .

表の 5 行目の値は、各数値の 2 行目の値を 2 乗することで得られます。 .

表の最後の列の値は、各行の値の合計です。

最小二乗法の公式を使用して係数を見つけます そして b。 テーブルの最後の列の対応する値をそれらに代入します。

したがって、 y = 0.165x+2.184- 希望する近似直線。

どの行を見つけるかはまだ残っています y = 0.165x+2.184または 元のデータをより適切に近似します。つまり、最小二乗法を使用して推定を行います。

最小二乗法の誤差推定。

これを行うには、これらの行からの元のデータの偏差の二乗の合計を計算する必要があります。 そして 、値が小さいほど、最小二乗法の意味で元のデータによりよく近似する線に対応します。

以来、まっすぐ y = 0.165x+2.184元のデータによりよく近似します。

最小二乗法 (LS) 法の図解。

すべてがグラフにはっきりと表示されます。 赤い線は見つかった直線です y = 0.165x+2.184、青い線は , ピンクの点が元のデータです。

実際には、さまざまなプロセス、特に経済的、物理的、技術的、社会的プロセスをモデル化する場合、特定の固定点での既知の値から関数の近似値を計算する何らかの方法が広く使用されています。

この種の関数近似の問題はよく発生します。

    実験の結果として得られた表形式のデータを使用して、研究対象のプロセスの特性量の値を計算するための近似式を構築するとき。

    数値積分、微分、解法において 微分方程式等。;

    必要に応じて、考慮された間隔の中間点で関数の値を計算します。

    考慮された間隔外でプロセスの特性量の値を決定するとき、特に予測するとき。

テーブルで指定されたあるプロセスをモデル化するために、そのプロセスを最小二乗法に基づいて近似的に記述する関数を構築する場合、それを近似関数(回帰)と呼び、近似関数を構築するタスク自体を近似関数(回帰)と呼びます。近似問題。

この記事では、この種の問題を解決するための MS Excel パッケージの機能について説明します。さらに、表形式の回帰を構築 (作成) する方法とテクニックも提供します。 指定された関数(これが回帰分析の基礎です)。

Excel には回帰を構築するための 2 つのオプションがあります。

    研究対象のプロセス特性のデータ テーブルに基づいて構築された図に、選択した回帰 (傾向線) を追加します (図が構築されている場合のみ利用可能)。

    Excel ワークシートの組み込み統計関数を使用すると、ソース データ テーブルから直接回帰 (傾向線) を取得できます。

チャートに傾向線を追加する

プロセスを説明し、図で表されるデータの表について、Excel には次のことを可能にする効果的な回帰分析ツールがあります。

    最小二乗法に基づいて構築し、さまざまな精度で研究対象のプロセスをモデル化する 5 種類の回帰を図に追加します。

    構築された回帰式を図に追加します。

    選択した回帰とチャートに表示されたデータとの一致度を決定します。

Excel では、チャート データに基づいて、次の方程式で指定される線形回帰、多項式回帰、対数回帰、累乗回帰、指数回帰を取得できます。

y = y(x)

ここで、x は独立変数であり、多くの場合、一連の自然数 (1; 2; 3; ...) の値を受け取り、たとえば、研究対象のプロセスの時間 (特性) のカウントダウンを生成します。

1 。 線形回帰は、値が一定の割合で増加または減少する特性のモデリングに適しています。 これは、研究対象のプロセス用に構築する最も単純なモデルです。 これは次の方程式に従って構築されます。

y = mx + b

ここで、m は傾斜角の正接です。 線形回帰横軸へ。 b - 線形回帰と縦軸の交点の座標。

2 。 多項式傾向線は、いくつかの異なる極値 (最大値と最小値) を持つ特性を記述するのに役立ちます。 多項式の次数の選択は、研究対象の特性の極値の数によって決まります。 したがって、2 次多項式は、最大値または最小値が 1 つだけあるプロセスを適切に記述することができます。 3 次多項式 - 極値が 2 つまで。 4 次の多項式 - 極値が 3 つ以下など。

この場合、傾向線は次の方程式に従って作成されます。

y = c0 + c1x + c2x2 + c3x3 + c4x4 + c5x5 + c6x6

ここで、係数 c0、c1、c2、... c6 は、構築中に値が決定される定数です。

3 。 対数トレンド ラインは、値が最初に急速に変化し、その後徐々に安定する特性をモデル化する場合にうまく使用できます。

y = c ln(x) + b

4 。 研究対象の関係の値が成長率の一定の変化によって特徴付けられている場合、べき乗則の傾向線は良い結果をもたらします。 このような依存関係の例としては、自動車の等加速度運動のグラフが挙げられます。 データにゼロまたは負の値がある場合、累乗トレンド ラインは使用できません。

次の方程式に従って構築されます。

y = c xb

ここで、係数 b、c は定数です。

5 。 データの変化率が継続的に増加している場合は、指数関数的傾向線を使用する必要があります。 ゼロまたは負の値を含むデータの場合、このタイプの近似も適用できません。

次の方程式に従って構築されます。

y = c ebx

ここで、係数 b、c は定数です。

傾向線を選択すると、Excel は近似の信頼性を特徴付ける R2 の値を自動的に計算します。R2 値が 1 に近づくほど、傾向線は研究対象のプロセスに近似する信頼性が高くなります。 必要に応じて、R2 値を常にチャートに表示できます。

次の式で決定されます。

データ系列に傾向線を追加するには:

    一連のデータに基づいてグラフをアクティブにします。つまり、グラフ領域内をクリックします。 「ダイアグラム」項目がメインメニューに表示されます。

    この項目をクリックすると、画面にメニューが表示され、[トレンド ラインの追加] コマンドを選択する必要があります。

データ系列の 1 つに対応するグラフ上にマウス ポインタを移動して右クリックすることで、同じアクションを簡単に実装できます。 表示されるコンテキスト メニューで、[トレンド ラインの追加] コマンドを選択します。 [トレンド ライン] ダイアログ ボックスが、[タイプ] タブを開いた状態で画面に表示されます (図 1)。

この後、次のものが必要になります。

[タイプ] タブで必要な傾向線のタイプを選択します (デフォルトでは線形タイプが選択されています)。 [多項式] タイプの場合、[次数] フィールドで、選択した多項式の次数を指定します。

1 。 [Built on series] フィールドには、問題のグラフ内のすべてのデータ シリーズがリストされます。 特定のデータ シリーズに傾向線を追加するには、[構築されたシリーズ] フィールドでその名前を選択します。

必要に応じて、「パラメータ」タブ (図 2) に移動して、傾向線の次のパラメータを設定できます。

    [近似 (平滑化) 曲線の名前] フィールドでトレンド ラインの名前を変更します。

    「予測」フィールドで予測の期間数 (前方または後方) を設定します。

    傾向線の方程式をダイアグラム領域に表示します。これには、「ダイアグラム上に方程式を表示」チェックボックスを有効にする必要があります。

    ダイアグラム領域に近似信頼性値 R2 を表示します。これには、[ダイアグラム上に近似信頼性値を配置する (R^2)] チェックボックスを有効にする必要があります。

    傾向線と Y 軸の交点を設定します。これには、曲線と Y 軸の点での交点のチェックボックスを有効にする必要があります。

    「OK」ボタンをクリックしてダイアログボックスを閉じます。

すでに描画されているトレンド ラインの編集を開始するには、次の 3 つの方法があります。

    傾向線を事前に選択した状態で、「形式」メニューから「選択した傾向線」コマンドを使用します。

    コンテキスト メニューから [トレンド ラインのフォーマット] コマンドを選択します。このメニューは、トレンド ラインを右クリックすると表示されます。

    トレンドラインをダブルクリックします。

[傾向線の形式] ダイアログ ボックスが画面に表示され (図 3)、[表示]、[タイプ]、[パラメーター] の 3 つのタブが含まれます。最後の 2 つの内容は、[傾向線] ダイアログ ボックスの同様のタブ (図 1) と完全に一致します。 -2)。 「表示」タブでは、線の種類、色、太さを設定できます。

すでに描画されているトレンド ラインを削除するには、削除するトレンド ラインを選択して Delete キーを押します。

考慮された回帰分析ツールの利点は次のとおりです。

    データテーブルを作成せずにチャート上に傾向線を作成するのが比較的簡単であること。

    提案された傾向線の種類のかなり幅広いリスト。このリストには、最も一般的に使用される回帰の種類が含まれています。

    研究中のプロセスの動作を、(常識の範囲内で)任意のステップ数だけ前進および後退して予測する機能。

    傾向線の方程式を分析形式で取得する機能。

    必要に応じて、近似の信頼性の評価を取得する可能性。

デメリットとしては以下のようなものが挙げられます。

    傾向線の構築は、一連のデータに基づいて構築された図がある場合にのみ実行されます。

    得られた傾向線の方程式に基づいて研究対象の特性のデータ シリーズを生成するプロセスはやや乱雑です。必要な回帰方程式は、元のデータ シリーズの値が変化するたびに更新されますが、それは図の領域内のみです。 、 その間 データシリーズ古い傾向線の方程式に基づいて生成されたものは変更されません。

    ピボットグラフ レポートでは、グラフまたは関連するピボットテーブル レポートのビューを変更しても、既存の傾向線は保持されません。つまり、傾向線を描画する前、またはピボットグラフ レポートの書式を設定する前に、レポートのレイアウトが必要な要件を満たしていることを確認する必要があります。

傾向線は、グラフ、ヒストグラム、非標準化平坦面グラフ、棒グラフ、散布図、バブル チャート、株価チャートなどのチャート上に表示されるデータ シリーズを補足するために使用できます。

3D グラフ、正規化グラフ、レーダー グラフ、円グラフ、ドーナツ グラフのデータ系列に傾向線を追加することはできません。

Excelの組み込み関数を使用する

Excel には、グラフ領域の外側に傾向線をプロットするための回帰分析ツールもあります。 この目的に使用できる統計ワークシート関数は多数ありますが、それらはいずれも線形回帰または指数回帰のみを構築できます。

Excel には、特に次のような線形回帰を構築するための関数がいくつかあります。

    傾向;

  • スロープとカット。

また、特に次のような、指数関数的なトレンド ラインを構築するための関数もいくつかあります。

    LGRFPRIBL。

TREND 関数と GROWTH 関数を使用して回帰を作成する手法はほぼ同じであることに注意してください。 関数 LINEST と LGRFPRIBL のペアについても同じことが言えます。 これら 4 つの関数では、値のテーブルの作成に配列数式などの Excel 機能が使用されるため、回帰を構築するプロセスがやや煩雑になります。 また、私たちの意見では、線形回帰の構築は SLOPE 関数と INTERCEPT 関数を使用するのが最も簡単です。最初の関数は線形回帰の傾きを決定し、2 番目の関数は回帰によってインターセプトされるセグメントを決定します。 y 軸。

回帰分析用の組み込み関数ツールの利点は次のとおりです。

    傾向線を定義するすべての組み込み統計関数について、研究対象の特性のデータ シリーズを生成する、かなり単純で統一されたプロセス。

    生成されたデータ系列に基づいて傾向線を構築するための標準的な方法論。

    研究中のプロセスの動作を予測する能力 必要量前進または後退します。

欠点としては、Excel には他の (線形と指数を除く) タイプの傾向線を作成するための関数が組み込まれていないことが挙げられます。 この状況では、多くの場合、研究対象のプロセスの十分に正確なモデルを選択したり、現実に近い予測を取得したりすることができません。 さらに、TREND 関数と GROWTH 関数を使用する場合、傾向線の方程式はわかりません。

著者らは、回帰分析の過程をある程度完全に提示しようとしたわけではないことに注意してください。 その主な役割は、近似問題を解決する際の Excel パッケージの機能を具体的な例を使用して示すことです。 Excel が回帰と予測を構築するためにどのような効果的なツールを備えているかを示します。 回帰分析に関する広範な知識を持たないユーザーでも、このような問題を比較的簡単に解決できる方法を示しています。

具体的な問題の解決例

リストされた Excel ツールを使用して特定の問題を解決してみましょう。

問題1

1995 年から 2002 年の自動車運送事業の利益に関するデータの表付き。 次のことを行う必要があります。

    図を作成します。

    線形および多項式 (2 次および 3 次) の傾向線をグラフに追加します。

    傾向線の方程式を使用して、1995 年から 2004 年の傾向線ごとに企業利益に関する表形式のデータを取得します。

    2003 年と 2004 年の企業の利益を予測します。

問題の解決策

    Excelワークシートのセル範囲A4:C11に、図に示すワークシートを入力します。 4.

    セル範囲 B4:C11 を選択したら、図を作成します。

    作成した図をアクティブにし、上記の方法に従って、[傾向線] ダイアログ ボックス (図 1 を参照) で傾向線の種類を選択した後、線形、二次、三次の傾向線を交互に図に追加します。 同じダイアログ ボックスで、[パラメータ] タブを開き (図 2 を参照)、[近似 (平滑化) 曲線の名前] フィールドに追加するトレンドの名前を入力し、[今後の予測: 期間] フィールドに、 2 年先の利益予測を行う予定であるため、値 2 となります。 回帰式と近似信頼度値 R2 をダイアグラム領域に表示するには、「画面に式を表示」チェックボックスをオンにして、近似信頼度値 (R^2) をダイアグラム上に配置します。 視覚的にわかりやすくするために、作成される傾向線の種類、色、太さを変更します。これには、[傾向線の形式] ダイアログ ボックスの [表示] タブを使用します (図 3 を参照)。 傾向線を追加した結果の図を図に示します。 5.

    1995 年から 2004 年の傾向線ごとに企業利益に関する表データを取得します。 図に示されている傾向線の方程式を使用してみましょう。 5. これを行うには、範囲 D3:F3 のセルに、選択したトレンド ラインのタイプ (線形トレンド、二次トレンド、三次トレンド) に関するテキスト情報を入力します。 次に、セル D4 に線形回帰式を入力し、塗りつぶしマーカーを使用して、この式をセル範囲 D5:D13 への相対参照とともにコピーします。 セル範囲 D4:D13 の線形回帰式を持つ各セルは、引数として範囲 A4:A13 の対応するセルを持っていることに注意してください。 同様に、二次回帰の場合はセル範囲 E4:E13 を入力し、三次回帰の場合はセル範囲 F4:F13 を入力します。 こうして、2003 年と 2004 年の企業利益の予測がまとめられました。 3 つのトレンドを使用します。 結果の値の表を図に示します。 6.

問題 2

    図を作成します。

    対数、べき乗、および指数関数のトレンド ラインをグラフに追加します。

    得られた傾向線の方程式と、それぞれの近似値 R2 の信頼度値を導出します。

    傾向線の方程式を使用して、1995 年から 2002 年の傾向線ごとに企業の利益に関する表データを取得します。

    これらの傾向線を使用して、2003 年と 2004 年の会社の利益を予測します。

問題の解決策

問題 1 を解く際に示した方法に従って、対数、べき乗、および指数の近似曲線が追加された図が得られます (図 7)。 次に、得られた傾向線の方程式を使用して、2003 年と 2004 年の予測値を含む企業の利益の値の表を作成します。 (図8)。

図では、 5と図。 対数傾向を持つモデルが近似信頼性の最低値に対応していることがわかります。

R2 = 0.8659

R2 の最高値は、多項式傾向を持つモデル、つまり 2 次 (R2 = 0.9263) と 3 次 (R2 = 0.933) に対応します。

問題 3

タスク 1 で指定された 1995 年から 2002 年の自動車運送事業の利益に関するデータの表を使用して、次の手順を実行する必要があります。

    TREND 関数と GROW 関数を使用して、線形および指数関数的な近似曲線のデータ系列を取得します。

    TREND 関数と GROWTH 関数を使用して、2003 年と 2004 年の企業の利益を予測します。

    元のデータと結果のデータ系列の図を作成します。

問題の解決策

問題 1 のワークシートを使用してみましょう (図 4 を参照)。 TREND 関数から始めましょう。

    企業の利益に関する既知のデータに対応する TREND 関数の値を入力する必要があるセル範囲 D4:D11 を選択します。

    「挿入」メニューから「関数」コマンドを呼び出します。 表示される[関数ウィザード]ダイアログ ボックスで、[統計]カテゴリからTREND関数を選択し、[OK]ボタンをクリックします。 ボタンを押しても同様の操作が可能です(インサート機能) 標準パネルツール。

    表示される [関数の引数] ダイアログ ボックスで、[Known_values_y] フィールドにセル範囲 C4:C11 を入力します。 Known_values_x フィールド - セル範囲 B4:B11;

    入力した数式を配列数式にするには、 + + のキーの組み合わせを使用します。

数式バーに入力した数式は、=(TREND(C4:C11,B4:B11)) のようになります。

その結果、セル範囲 D4:D11 に TREND 関数の対応する値が入力されます (図 9)。

2003 年と 2004 年の企業の利益を予測するため。 必要:

    TREND 関数によって予測された値が入力されるセル範囲 D12:D13 を選択します。

    TREND 関数を呼び出し、表示される [関数の引数] ダイアログ ボックスで、[Known_values_y] フィールドにセル範囲 C4:C11 を入力します。 Known_values_x フィールド - セル範囲 B4:B11; New_values_x フィールド - セル範囲 B12:B13。

    Ctrl + Shift + Enter キーの組み合わせを使用して、この数式を配列数式に変換します。

    入力した数式は =(TREND(C4:C11;B4:B11;B12:B13)) のようになり、セル範囲 D12:D13 には TREND 関数の予測値が入力されます (図を参照)。 9)。

データ系列は同様に GROWTH 関数を使用して埋められます。この関数は非線形依存関係の分析に使用され、線形の対応する TREND とまったく同じように機能します。

図 10 に、数式表示モードのテーブルを示します。

初期データと得られたデータ系列については、図1に示すような図が得られます。 十一。

問題4

当月の 1 日から 11 日までの自動車運送事業者の配車サービスによるサービスの申し込みの受付に関するデータの表を使用して、次のアクションを実行する必要があります。

    線形回帰のデータ系列を取得: SLOPE 関数と INTERCEPT 関数を使用します。 LINEST関数を使用します。

    LGRFPRIBL 関数を使用して、指数回帰の一連のデータを取得します。

    上記の機能を利用して、当月12日から14日までの派遣サービスへの申込受付を予測します。

    元のデータ系列と受信したデータ系列の図を作成します。

問題の解決策

TREND 関数や GROWTH 関数とは異なり、上記の関数 (SLOPE、INTERCEPT、LINEST、LGRFPRIB) はいずれも回帰ではないことに注意してください。 これらの関数は、必要な回帰パラメータを決定するサポート的な役割のみを果たします。

関数 SLOPE、INTERCEPT、LINEST、LGRFPRIB を使用して構築された線形回帰および指数回帰の場合、TREND 関数および GROWTH 関数に対応する線形回帰および指数回帰とは対照的に、方程式の外観は常に既知です。

1 。 次の方程式を使用して線形回帰を作成してみましょう。

y = mx+b

SLOPE 関数と INTERCEPT 関数を使用します。回帰勾配 m は SLOPE 関数によって決定され、自由項 b は INTERCEPT 関数によって決定されます。

これを行うために、次のアクションを実行します。

    元のテーブルをセル範囲 A4:B14 に入力します。

    パラメータ m の値はセル C19 で決定されます。 「統計」カテゴリから「傾き関数」を選択します。 known_values_y フィールドにセル範囲 B4:B14 を入力し、known_values_x フィールドにセル範囲 A4:A14 を入力します。 セル C19 に数式が入力されます: =SLOPE(B4:B14,A4:A14);

    同様の手法を使用して、セル D19 のパラメータ b の値が決定されます。 その内容は =SEGMENT(B4:B14,A4:A14) のようになります。 したがって、線形回帰を構築するために必要なパラメータ m と b の値は、それぞれセル C19、D19 に格納されます。

    次に、セル C4 に =$C*A4+$D の形式で線形回帰式を入力します。 この数式では、セル C19 と D19 は絶対参照で書き込まれます (コピー中にセル アドレスが変更されるべきではありません)。 絶対参照記号 $ は、キーボードから入力するか、セル アドレスにカーソルを置いて F4 キーを使用して入力できます。 フィルハンドルを使用して、この数式をセル範囲 C4:C17 にコピーします。 必要なデータ系列を取得します (図 12)。 アプリケーションの数は整数であるため、[セル形式] ウィンドウの [数値] タブで、小数点以下の桁数を含む数値形式を 0 に設定する必要があります。

2 。 次に、次の方程式で与えられる線形回帰を作成しましょう。

y = mx+b

LINEST関数を使用します。

このために:

    LINEST 関数をセル範囲 C20:D20 に配列数式 =(LINEST(B4:B14,A4:A14)) として入力します。 その結果、セル C20 のパラメータ m の値とセル D20 のパラメータ b の値が得られます。

    セル D4 に数式を入力します: =$C*A4+$D;

    塗りつぶしマーカーを使用してこの数式をセル範囲 D4:D17 にコピーし、目的のデータ系列を取得します。

3 。 次の方程式を使用して指数回帰を構築します。

LGRFPRIBL 関数を使用すると、同様の方法で実行されます。

    セル範囲 C21:D21 に、配列数式 =( LGRFPRIBL (B4:B14,A4:A14)) として LGRFPRIBL 関数を入力します。 この場合、パラメータ m の値はセル C21 で決定され、パラメータ b の値はセル D21 で決定されます。

    セル E4 に数式が入力されます: =$D*$C^A4;

    塗りつぶしマーカーを使用すると、この数式がセル範囲 E4:E17 にコピーされます。ここに指数回帰のデータ系列が配置されます (図 12 を参照)。

図では、 図 13 は、必要なセル範囲で使用する関数と数式を確認できる表を示しています。

マグニチュード R 2 呼ばれた 決定係数.

回帰依存関係を構築するタスクは、係数 R が最大値をとるモデル (1) の係数 m のベクトルを見つけることです。

R の有意性を評価するには、次の式を使用して計算されるフィッシャーの F 検定が使用されます。

どこ n- サンプルサイズ(実験の数);

k はモデル係数の数です。

F がデータのある臨界値を超えた場合 nそして kと許容された信頼確率が一致する場合、R の値は有意であるとみなされます。 F の臨界値の表は、数理統計の参考書に記載されています。

したがって、R の有意性はその値だけでなく、実験の数とモデルの係数 (パラメーター) の数の比率によっても決まります。 実際、単純な線形モデルの n=2 の相関比は 1 に等しくなります (平面上の 2 点を通る単一の直線を常に引くことができます)。 ただし、実験データが確率変数である場合、そのような R の値は細心の注意を払って信頼する必要があります。 通常、有意な R と信頼性の高い回帰を得るために、実験の数がモデル係数の数を大幅に超えるように努めます (n>k)。

線形を構築するには 回帰モデル必要:

1) 実験データを含む n 行 m 列のリスト (出力値を含む列) を準備します。 Yリストの最初か最後になければなりません); たとえば、前のタスクのデータに「期間番号」という列を追加して、期間番号に 1 から 12 までの番号を付けてみましょう。(これらが値になります) バツ)

2) メニューに移動します データ/データ分析/回帰

「ツール」メニューで「データ分析」項目が利用できない場合は、同じメニューの「アドイン」項目に移動し、「分析パッケージ」チェックボックスをオンにする必要があります。

3) [回帰] ダイアログ ボックスで、次のように設定します。

· 入力間隔 Y;

· 入力間隔 X;

· 出力間隔 - 計算結果が配置される間隔の左上のセル (新しいワークシートに配置することをお勧めします)。

4) 「OK」をクリックして結果を分析します。

最も広範囲に応用できるのはどれか さまざまな分野科学と 実践的な活動。 これには、物理​​学、化学、生物学、経済学、社会学、心理学などが考えられます。 運命の意志で、私はしばしば経済に対処しなければならないので、今日はあなたのために、と呼ばれる素晴らしい国への旅行を手配します。 計量経済学=) ...欲しくないわけがない?! そこはとても良いことです。あとは決心をするだけです。 ...しかし、おそらくあなたが間違いなく望んでいることは、問題の解決方法を学ぶことです。 最小二乗法。 そして、特に勤勉な読者は、正確に解決できるだけでなく、非常に早く解決できるようになります ;-) まず最初に 問題の一般的な説明+ 付随する例:

ある分野において、定量的な表現を持つ指標を研究するとします。 同時に、指標が指標に依存すると考える十分な理由があります。 この仮定は、科学的な仮説である場合もあれば、初歩的な根拠に基づいている場合もあります。 常識。 ただし、科学のことは脇に置いて、もっと食欲をそそる分野、つまり食料品店を探索してみましょう。 で表しましょう:

– 食料品店の小売り面積、平方メートル、
– 食料品店の年間売上高、100万ルーブル。

それは完全に明らかです より広いエリア店舗にあるほど、ほとんどの場合、売上高は大きくなります。

観察/実験/計算/タンバリンダンスを実行した後、自由に使える数値データがあると仮定します。

食料品店の場合、すべてが明らかだと思います。 - これは 1 番目の店舗の面積、 - その年間売上高、 - 2 番目の店舗の面積、 - 年間売上高など。 ちなみに、機密資料にアクセスする必要はまったくありません。取引高のかなり正確な評価は、次の方法で取得できます。 数学的統計。 ただし、気を散らさないようにしましょう。商業スパイコースはすでに支払い済みです =)

表形式のデータは、ポイントの形式で記述し、使い慣れた形式で表現することもできます。 デカルト座標系 .

お答えします 重要な質問: 定性調査には何点必要ですか?

大きければ大きいほどいい。 最小許容セットは 5 ~ 6 点で構成されます。 また、そうでない場合は、 大量のデータの場合、「異常な」結果をサンプルに含めることはできません。 したがって、たとえば、小規模なエリート店は「その同僚」よりも桁違いに多くの収入を得ている可能性があり、それによって、見つける必要がある一般的なパターンが歪められてしまうのです。

非常に簡単に言うと、関数を選択する必要があります。 スケジュールポイントのできるだけ近くを通過する 。 この関数は呼び出されます 近似する (近似値 - 近似値)または 理論関数 。 一般的に言えば、ここでは明らかな「候補」がすぐに現れます。それは、グラフがすべての点を通過する高次多項式です。 しかし、このオプションは複雑であり、単純に間違っていることがよくあります。 (グラフは常に「ループ」し、主要な傾向をほとんど反映していないため).

したがって、求められる関数は非常に単純であると同時に、依存関係を適切に反映している必要があります。 ご想像のとおり、このような関数を見つけるためのメソッドの 1 つは、 最小二乗法。 まずはその本質を見てみましょう 一般的な見解。 いくつかの関数を実験データに近似させます。


この近似の精度を評価するにはどうすればよいでしょうか? 実験値と関数値の差(偏差)も計算してみましょう。 (私たちは絵を勉強します)。 最初に思い浮かぶのは、その合計がどれくらい大きいかを見積もることですが、問題はその差がマイナスになる可能性があることです。 (例えば、 ) そして、そのような合計の結果としての偏差は互いに打ち消し合います。 したがって、近似の精度の推定値として、次の合計が求められます。 モジュール偏差:

または折りたたまれた状態: (知らない人のために説明します: – これは合計アイコンです、そして – 1 から までの値を取る補助「カウンター」変数です).

実験点をさまざまな関数で近似すると、次のようになります。 さまざまな意味そして明らかに、この量が小さいほど、その関数はより正確になります。

そのようなメソッドが存在し、それは呼ばれます 最小弾性法。 しかし、実際にはそれははるかに普及しています 最小二乗法、可能性のある負の値はモジュールによってではなく、偏差を二乗することによって除去されます。

、その後、偏差の二乗和が次のような関数を選択することを目的としています。 できるだけ小さいものでした。 実際、これがメソッドの名前の由来です。

そして今、私たちは別のことに戻ります 大事なポイント: 上で述べたように、選択された関数は非常に単純である必要がありますが、そのような関数も多数あります。 線形 , 双曲線, 指数関数的, 対数, 二次関数 等 そしてもちろん、ここではすぐに「活動領域を縮小」したいと思います。 研究にはどのクラスの関数を選択すればよいですか? 原始的ですが、 効果的なテクニック:

– 最も簡単な方法は点を描くことです 図面上でその位置を分析します。 直線で走る傾向がある場合は、次の点を探す必要があります。 直線の方程式 最適値そして 。 言い換えれば、タスクは、偏差の二乗和が最小になるような SUCH 係数を見つけることです。

たとえば、点が次のような位置にある場合、 誇張の場合、線形関数の近似が不十分であることは明らかです。 この場合、双曲線方程式の最も「有利な」係数を探します。 - 与える人 最小額正方形 .

どちらの場合も、次のことについて話していることに注意してください。 2 つの変数の関数、その引数は 検索された依存関係パラメーター:

そして本質的に私たちは決定する必要があります 標準タスク- 探す 2 変数の最小関数.

例を思い出してください。「店舗」ポイントは直線上に配置される傾向があり、次のことを信じる十分な理由があるとします。 線形依存性小売スペースからの売上高。 偏差の二乗和が次のようになるような係数「a」と「be」を見つけてみましょう。 一番小さかったです。 すべてはいつも通りです - まずは 1階偏導関数。 によると 直線性の法則合計アイコンのすぐ下で区別できます。

この情報をエッセイや定期レポートに使用したい場合は、このような詳細な計算がいくつかの場所に記載されている情報源リストのリンクを参照してください。

作曲してみましょう 標準システム:

各式を「2」で減らし、さらに合計を「分解」します。

注記 : 合計アイコンを超えて「a」と「be」が取り出せる理由を独自に分析します。 ちなみに、正式にはこれは合計で行うことができます

システムを「応用」形式で書き直してみましょう。

その後、問題を解決するためのアルゴリズムが現れ始めます。

点の座標はわかっていますか? 私たちは知っています。 金額 見つけられるでしょうか? 簡単に。 最も単純なものを作りましょう 2 つの未知数における 2 つの線形方程式系(「a」と「be」)。 たとえば、次のようなシステムを解決します。 クレーマー法、その結果として得られるのは 静止点。 チェック中 極値の十分条件、この時点で関数が 正確に届く 最小。 このチェックには追加の計算が含まれるため、舞台裏に残しておきます。 (必要に応じて、不足しているフレームを表示できます)。 最終的な結論は次のとおりです。

関数 一番いい方法 (少なくとも他の線形関数と比較して)実験ポイントを近づける 。 大まかに言えば、そのグラフはこれらの点のできるだけ近くを通過します。 伝統的に 計量経済学結果の近似関数も呼ば​​れます 一対の線形回帰式 .

検討中の問題には大きな問題があります 実用的な重要性。 この例の状況では、式は次のようになります。 取引高を予測できます (「イグレック」)店舗は何らかの値の販売面積を持っています (「x」の何らかの意味)。 はい、結果として得られる予測は単なる予測ですが、多くの場合、非常に正確であることが判明します。

難しいことは何もないので、「実数」の問題を 1 つだけ分析します。すべての計算は 7 年生から 8 年生の学校のカリキュラムのレベルです。 95% のケースでは、一次関数だけを見つけるように求められますが、記事の最後で、最適な双曲線、指数関数、およびその他の関数の方程式を見つけることはそれほど難しくないことを示します。

実際、残っているのは、約束された特典を配布することだけです。そうすれば、そのような例題を正確に解決できるだけでなく、迅速に解決できるようになります。 私たちはこの規格を注意深く研究しています。

タスク

2 つの指標間の関係を研究した結果、次の数値のペアが得られました。

最小二乗法を使用して、経験的な値に最もよく近似する一次関数を見つけます。 (経験者)データ。 デカルト座標で描画を作成します。 長方形システム座標を計算し、実験点と近似関数のグラフを作成します。 。 経験値と理論値の間の偏差の二乗和を求めます。 機能が改善されるかどうかを確認する (最小二乗法の観点から)実験ポイントを近づけます。

「x」の意味は自然なものであり、これには特有の意味のある意味があることに注意してください。これについては後ほど説明します。 もちろん、小数にすることもできます。 また、特定のタスクの内容によっては、「X」と「ゲーム」の両方の値が完全または部分的にマイナスになる場合があります。 さて、私たちには「顔の見えない」任務が与えられ、それを始めます 解決:

システムの解として最適な関数の係数を見つけます。

よりコンパクトに記録するために、「カウンター」変数は省略できます。これは、合計が 1 から まで実行されることがすでに明らかであるためです。

必要な金額を表形式で計算すると便利です。


計算は微電卓でも実行できますが、Excel を使用した方が速く、エラーも発生しないため、はるかに優れています。 短いビデオを見る:

したがって、次のようになります。 システム:

ここで、2 番目の式に 3 を掛けて、 最初の式から項ごとに 2 番目の式を減算します。。 しかし、これは幸運です。実際には、システムは贈り物ではないことが多く、そのような場合にはそれが節約になります。 クレーマー法:
これは、システムに独自のソリューションがあることを意味します。

確認しよう。 そうしたくないのはわかりますが、絶対に見逃せないミスをなぜスキップするのでしょうか? 見つかった解をシステムの各方程式の左辺に代入してみましょう。

対応する方程式の右辺が得られます。これは、システムが正しく解決されたことを意味します。

したがって、必要な近似関数は次のようになります。 – から みんな 一次関数 実験データを最もよく近似するのは彼女です。

とは異なり 真っ直ぐ 店舗の売上高の面積への依存性。検出された依存性は次のとおりです。 逆行する (原則「多ければ多いほど少ない」)、そしてこの事実は否定的な意見によってすぐに明らかになります。 スロープ。 関数 特定のインジケーターが 1 単位増加すると、依存するインジケーターの値が減少することを示します 平均 0.65単位ずつ。 よく言われるように、ソバの価格が高くなると、ソバは売れなくなります。

近似関数のグラフをプロットするには、その 2 つの値を見つけます。

そして描画を実行します。


構築された直線を次のように呼びます。 トレンドライン (つまり、直線的な傾向線。つまり、一般的な場合、傾向は必ずしも直線であるとは限りません)。 「トレンドに乗る」という表現は誰もがよく知っている言葉であり、この言葉について補足する必要はないと思います。

偏差の二乗和を計算してみましょう 経験値と理論値の間。 幾何学的には、これは「ラズベリー」セグメントの長さの二乗の合計です。 (そのうちの2つは小さすぎて見えません).

計算を表にまとめてみましょう。


繰り返しになりますが、念のために手動で行うこともできます。最初の点については例を示します。

しかし、すでに知られている方法でそれを行う方がはるかに効果的です。

もう一度繰り返します。 得られた結果にはどのような意味があるのでしょうか?から すべての線形関数 y関数 インジケーターは最小です。つまり、そのファミリーの中で最良の近似値です。 ちなみに、この問題の最後の疑問は偶然ではありません。提案された指数関数が次の場合はどうなるでしょうか。 実験点を近づけた方が良いでしょうか?

対応する偏差の二乗和を見つけてみましょう。区別するために、それらを文字「イプシロン」で示します。 テクニックは全く同じです:


もう一度、念のため、最初の点の計算をします。

うちはエクセルを使ってます 標準機能 経験値 (構文は Excel ヘルプにあります).

結論: 、これは、指数関数が実験点を直線よりも悪く近似していることを意味します。 .

ただし、ここで「さらに悪い」ということに注意してください。 まだという意味ではない、 なにが問題ですか。 今、私はこの指数関数のグラフを構築しました - そしてそれはまた点の近くを通過します - 分析的な研究がなければ、どの関数がより正確であるかを言うのは難しいほどです。

これで解決策は終わり、議論の自然値の問題に戻ります。 さまざまな研究 (通常は経済学または社会学) では、月、年、またはその他の等しい時間間隔を表すために自然な「X」が使用されます。 たとえば、次の問題を考えてみましょう。

実験データの近似は、実験で得られたデータを置き換えることに基づく方法です 分析機能節点で初期値(実験または実験中に得られたデータ)と最も近く一致するか一致します。 現在、分析関数を定義するには 2 つの方法があります。

次のような n 次の補間多項式を構築することによって、 すべてのポイントを直接経由して指定されたデータ配列。 この場合、近似関数は、ラグランジュ形式の補間多項式またはニュートン形式の補間多項式の形式で表されます。

次のような n 次の近似多項式を構築することによって、 ポイントのすぐ近くにある指定されたデータ配列から。 したがって、近似関数は、実験中に発生する可能性のあるすべてのランダム ノイズ (または誤差) を平滑化します。実験中の測定値は、次の条件に依存します。 ランダム要因自ら変動するもの ランダムな法則(測定または機器の誤差、不正確さまたは実験誤差)。 この場合、近似関数は最小二乗法を用いて決定される。

最小二乗法(英語の文献では Ordinary Least Squares、OLS) は、与えられた実験データの配列からの点に最も近い近似関数の決定に基づく数学的手法です。 元の関数と近似関数 F(x) の近さは数値的な尺度によって決定されます。つまり、近似曲線 F(x) からの実験データの偏差の二乗の合計が最小になるはずです。

最小二乗法で作成した近似曲線

最小二乗法が使用されます。

方程式の数が未知数の数を超える場合に、過剰決定された連立方程式を解くため。

通常の (過剰決定ではない) 非線形方程式系の場合の解を見つける。

何らかの近似関数を使用してポイント値を近似する。

最小二乗法を使用した近似関数は、与えられた一連の実験データから計算された近似関数の偏差二乗和の最小値の条件から決定されます。 最小二乗法のこの基準は次の式で表されます。

計算された節点における近似関数の値、

節点における実験データの所定の配列。

二次基準には微分可能性などの多くの「優れた」特性があり、多項式近似関数による近似問題に対する独自の解決策を提供します。

問題の条件に応じて、近似関数は m 次の多項式になります。

近似関数の次数は節点の数には依存しませんが、その次元は常に、特定の実験データ配列の次元 (点の数) より小さくなければなりません。

・近似関数の次数が m=1 の場合、表関数を直線で近似します (線形回帰)。

∙ 近似関数の次数が m=2 の場合、テーブル関数を近似します。 二次放物線(二次近似)。

・近似関数の次数が m=3 の場合、テーブル関数を 3 次放物線で近似します (3 次近似)。

一般的なケースでは、与えられたテーブル値に対して次数 m の近似多項式を構築する必要がある場合、すべての節点にわたる偏差の二乗和の最小値の条件は次の形式で書き換えられます。

- m 次の近似多項式の未知の係数。

指定されたテーブル値の数。

関数の最小値が存在するための必要条件は、未知の変数に関するその偏導関数がゼロに等しいことです。 。 その結果、次の連立方程式が得られます。

結果として得られる線形方程式系を変換してみましょう。括弧を開いて自由項を式の右側に移動します。 結果として得られる線形システム 代数式次の形式で記述されます。

このシステム線形代数式は行列形式で書き直すことができます。

その結果、m+1 個の未知数からなる m+1 次元の線形方程式系が得られました。 このシステムは、線形問題を解決するための任意の方法を使用して解くことができます。 代数方程式(例えば、ガウス法による)。 解法の結果として、元のデータからの近似関数の偏差の二乗和の最小値を与える近似関数の未知のパラメーターが見つかります。 可能な限り最良の二次近似。 ソース データの値が 1 つでも変更されると、すべての係数の値が変更されることに注意してください。これは、係数はソース データによって完全に決定されるためです。

線形依存性によるソースデータの近似

(線形回帰)

例として、線形依存の形式で指定される近似関数を決定する手法を考えてみましょう。 最小二乗法に従って、偏差二乗和の最小値の条件は次の形式で記述されます。

テーブルノードの座標。

近似関数の未知の係数。線形依存として指定されます。

関数の最小値が存在するための必要な条件は、未知の変数に関するその偏導関数がゼロに等しいことです。 その結果、次の連立方程式が得られます。

結果として得られる線形方程式系を変換してみましょう。

結果として得られる連立一次方程式を解きます。 分析形式の近似関数の係数は次のように決定されます (Cramer の方法)。

これらの係数は、指定された表の値 (実験データ) から近似関数の二乗和を最小化する基準に従って線形近似関数を構築することを保証します。

最小二乗法を実装するためのアルゴリズム

1. 初期データ:

測定数 N の実験データの配列が指定されます

近似多項式の次数(m)を指定します

2. 計算アルゴリズム:

2.1. 次元をもつ連立方程式を構築するための係数が決定されます

連立方程式の係数 (方程式の左側)

- 連立方程式の正方行列の列番号のインデックス

連立一次方程式の自由項 (方程式の右辺)

- 連立方程式の正方行列の行番号のインデックス

2.2. 次元 の線形方程式系の形成。

2.3. 連立一次方程式を解いて、m 次の近似多項式の未知の係数を決定します。

2.4. すべての節点における元の値からの近似多項式の偏差の二乗和の決定

求められた偏差の二乗和の値は可能な最小値です。

他の関数を用いた近似

なお、ソースデータを最小二乗法で近似する場合、近似関数として対数関数を使用する場合がありますが、 指数関数そしてべき乗関数。

対数近似

近似関数が与えられた場合を考えてみましょう 対数関数タイプ:

  • プログラミング
    • チュートリアル

    導入

    私は数学者でありプログラマーです。 私が自分のキャリアの中で大きく飛躍したのは、次のことを言えるようになったときです。 "私には、さっぱりわからない!"今、私は科学の著名人に、彼が私に講義をしてくれている、その著名人が私に何を言っているのか理解できない、と言うのを恥ずかしがりません。 そしてそれはとても難しいことです。 確かに、自分の無知を認めるのは難しく、恥ずかしいことです。 自分が何かの基本を知らないことを認めたがる人がいるでしょうか? 私は職業柄、数多くのプレゼンテーションや講義に参加しなければなりませんが、ほとんどの場合、何も理解できずに寝ていたくなることは認めます。 しかし、私には理解できません。なぜなら、現在の科学の現状の大きな問題は数学にあるからです。 すべてのリスナーが数学のあらゆる分野に精通していることを前提としています (これは不合理です)。 デリバティブが何であるかを知らないことを認めるのは恥ずかしいことです (デリバティブが何であるかについては後で説明します)。

    しかし、私は掛け算が何であるかを知らないと言えるようになりました。 はい、リー代数上の部分代数が何であるかわかりません。 はい、なぜ人生に必要なのか分かりません 二次方程式。 ところで、ご存知であれば、お話ししたいことがあります。 数学はトリックの連続です。 数学者は大衆を混乱させ、脅迫しようとします。 混乱がないところには、評判も権威もありません。 はい、できるだけ抽象的な言語で話すことは名誉なことですが、それはまったくナンセンスです。

    デリバティブとは何か知っていますか? おそらく、差分比率の限界について教えていただけると思います。 サンクトペテルブルク州立大学で数学と力学を専攻した1年目に、ヴィクトル・ペトロヴィッチ・カヴィンは私にこう言った。 決定したある点における関数のテイラー級数の最初の項の係数としての導関数 (これは、導関数を使用せずにテイラー級数を決定するための別の体操でした)。 私はこの定義を長い間笑いながら、最終的にはそれが何なのかを理解しました。 導関数は、微分している関数が関数 y=x、y=x^2、y=x^3 にどれだけ似ているかを示す単純な尺度にすぎません。

    私は今、次のような学生たちに講義をさせていただくことを光栄に思っています。 恐れている数学。 もしあなたが数学を恐れているなら、私たちも同じ道を歩んでいます。 文章を読もうとしたときに、それが複雑すぎるように思えたら、すぐにそれがうまく書かれていないことを認識してください。 私は、正確さを失わずに「すぐに」議論できない数学の分野は一つもないと断言します。

    近い将来の課題: 線形二次レギュレータとは何かを理解するように生徒に割り当てました。 恥ずかしがらずに、3 分間かけてリンクをたどってください。 何も理解できないとしても、私たちは同じ道を進んでいます。 私(プロの数学者プログラマー)も何も理解できませんでした。 そして、これは「指一本で」理解できると断言します。 現時点ではそれが何なのかはわかりませんが、必ず解明できると確信しています。

    そこで、生徒たちが恐怖に駆られて私のところに駆け寄ってきて、線形二次レギュレーターは恐ろしいもので、一生かけても習得できないと言った後、私が生徒たちに行う最初の講義は次のとおりです。 最小二乗法。 決められますか 一次方程式? この文章を読んでいるあなたは、おそらくそうではないでしょう。

    したがって、2 つの点 (x0, y0)、(x1, y1)、たとえば (1,1) と (3,2) が与えられた場合、タスクはこれら 2 つの点を通る直線の方程式を見つけることです。

    この行には次のような等式が含まれている必要があります。

    ここで、アルファとベータは不明ですが、この線の 2 つの点がわかっています。

    この方程式は行列形式で書くことができます。

    ここで、叙情的な脱線をしなければなりません。マトリックスとは何でしょうか? 行列は 2 次元配列にすぎません。 これはデータを保存する方法であり、それ以上の意味を持たせる必要はありません。 特定の行列をどのように解釈するかは、まさに私たち次第です。 定期的にそれを線形マッピングとして、定期的に二次形式として、そして時には単にベクトルのセットとして解釈します。 これはすべて文脈の中で明らかになります。

    具体的な行列を記号表現に置き換えてみましょう。

    そうすれば (アルファ、ベータ) は簡単に見つかります。

    以前のデータについてより具体的に言うと、次のようになります。

    これにより、点 (1,1) と (3,2) を通過する次の直線の方程式が得られます。

    さて、ここですべてが明らかです。 を通る直線の方程式を求めてみましょう 三つ点: (x0,y0)、(x1,y1)、および (x2,y2):

    ああ、でも、2 つの未知数に対して 3 つの方程式があります。 標準的な数学者は、解決策はないと言うでしょう。 プログラマーは何と言うでしょうか? そして彼はまず、以前の方程式系を次の形式に書き直します。

    私たちの場合には ベクトル i、j、bは 3 次元であるため、(一般的な場合) このシステムには解決策がありません。 任意のベクトル (alpha\*i + beta\*j) は、ベクトル (i, j) が広がる平面内にあります。 b がこの平面に属さない場合、解はありません (方程式内で等価性は達成できません)。 何をするか? 妥協点を探しましょう。 で表しましょう e(アルファ、ベータ)正確にどこまで平等を達成できていないのか:

    そして、このエラーを最小限に抑えようとします。

    なぜ正方形なのでしょうか?

    基準の最小値だけでなく、基準の 2 乗の最小値も探しています。 なぜ? 最小点自体は一致しており、正方形は滑らかな関数 (引数 (アルファ、ベータ) の二次関数) を与えますが、単純に長さは最小点で微分不可能な円錐形の関数を与えます。 ブル。 正方形の方が便利です。

    明らかに、ベクトルが eベクトルが広がる平面に直交する そして j.

    言い換えれば、すべての点からこの直線までの距離の二乗の合計が最小となるような直線を探しています。

    更新: ここで問題が発生しました。直線までの距離は、正投影ではなく垂直に測定する必要があります。 解説者は正しい。

    まったく別の言葉で言えば (慎重に、形式的には不十分ですが、明確にしておきます): すべての点のペアの間で可能なすべての線を取得し、すべての間の平均線を探します。

    もう 1 つの説明は簡単です。すべてのデータ ポイント (ここでは 3 つあります) と探している直線の間にバネを取り付けます。すると、平衡状態の直線がまさに探しているものになります。

    最小二次形式

    したがって、このベクトルを考えると、 b行列の列ベクトルがまたがる平面 (この場合は (x0,x1,x2) と (1,1,1))、ベクトルを探しています。 e最小長さの平方です。 明らかに、最小値はベクトルについてのみ達成可能です。 e、行列の列ベクトルが広がる平面に直交 :

    言い換えれば、次のようなベクトル x=(alpha, beta) を探しています。

    このベクトル x=(alpha, beta) は最小値であることを思い出してください。 二次関数||e(アルファ、ベータ)||^2:

    ここで、行列は二次形式としても解釈できることを覚えておくと便利です。たとえば、単位行列 ((1,0),(0,1)) は関数 x^2 + y^ として解釈できます。 2:

    二次形式

    この体操はすべて線形回帰という名前で知られています。

    ディリクレ境界条件を伴うラプラス方程式

    ここで最も単純な実際のタスクです。特定の三角形の表面があり、それを滑らかにする必要があります。 たとえば、私の顔のモデルをロードしてみましょう。

    元のコミットは利用可能です。 外部依存性を最小限に抑えるために、すでに Habré 上にあるソフトウェア レンダラーのコードを使用しました。 解決策について 線形システム私は OpenNL を使用しています。これは優れたソルバーですが、インストールが非常に困難です。2 つのファイル (.h+.c) をプロジェクトのあるフォルダーにコピーする必要があります。 すべての平滑化は次のコードで行われます。

    (int d=0; d<3; d++) { nlNewContext(); nlSolverParameteri(NL_NB_VARIABLES, verts.size()); nlSolverParameteri(NL_LEAST_SQUARES, NL_TRUE); nlBegin(NL_SYSTEM); nlBegin(NL_MATRIX); for (int i=0; i<(int)verts.size(); i++) { nlBegin(NL_ROW); nlCoefficient(i, 1); nlRightHandSide(verts[i][d]); nlEnd(NL_ROW); } for (unsigned int i=0; i&face = 顔[i]; for (int j=0; j<3; j++) { nlBegin(NL_ROW); nlCoefficient(face[ j ], 1); nlCoefficient(face[(j+1)%3], -1); nlEnd(NL_ROW); } } nlEnd(NL_MATRIX); nlEnd(NL_SYSTEM); nlSolve(); for (int i=0; i<(int)verts.size(); i++) { verts[i][d] = nlGetVariable(i); } }

    X、Y、Z 座標は分離可能であるため、個別にスムージングします。 つまり、モデルの頂点の数と同じ数の変数をそれぞれ持つ 3 つの線形方程式系を解きます。 行列 A の最初の n 行には 1 が行ごとに 1 つだけ含まれ、ベクトル b の最初の n 行には元のモデル座標が含まれます。 つまり、頂点の新しい位置と古い頂点の位置の間にスプリングを結びます。新しい位置が古い位置から離れすぎないようにする必要があります。

    行列 A (faces.size()*3 = メッシュ内のすべての三角形のエッジの数) の後続のすべての行には、1 が 1 回出現し、-1 が 1 回出現し、ベクトル b には反対のゼロ成分があります。 これは、三角形メッシュの各エッジにスプリングを配置することを意味します。すべてのエッジは、開始点と終了点として同じ頂点を取得しようとします。

    もう一度言いますが、すべての頂点は変数であり、元の位置から遠くに移動することはできませんが、同時に互いに似たものになろうとします。

    結果は次のとおりです。

    すべて問題ありません。モデルは非常に滑らかになっていますが、元のエッジからは離れています。 コードを少し変更してみましょう。

    For (int i=0; i<(int)verts.size(); i++) { float scale = border[i] ? 1000: 1; nlBegin(NL_ROW); nlCoefficient(i, scale); nlRightHandSide(scale*verts[i][d]); nlEnd(NL_ROW); }

    行列 A では、エッジにある頂点について、カテゴリ v_i = verts[i][d] からの行を追加するのではなく、1000*v_i = 1000*verts[i][d] を追加します。 それによって何が変わるのでしょうか? そして、これにより誤差の二次形式が変わります。 エッジで上部から 1 回ずれると、以前のように 1 単位ではなく、1000*1000 単位のコストがかかります。 つまり、極端な頂点に強いバネを掛けたので、解決策は他の頂点をより強く伸ばすことを優先します。 結果は次のとおりです。

    頂点間のバネの強さを 2 倍にしてみましょう。
    nlCoefficient(face[ j ], 2); nlCoefficient(face[(j+1)%3], -2);

    表面が滑らかになったのは当然です。

    そして今ではさらに100倍強くなりました:

    これは何ですか? ワイヤーリングを石鹸水に浸したと想像してください。 その結果、得られる石鹸膜は、境界線、つまりワイヤーリングに触れて、曲率をできるだけ小さくしようとします。 これはまさに、境界線を修正し、内側の滑らかな表面を求めることで得られたものです。 おめでとうございます。ディリクレ境界条件を使用してラプラス方程式を解きました。 かっこいいね? しかし実際には、1 つの連立一次方程式を解くだけで十分です。

    ポアソン方程式

    また素敵な名前を覚えておきましょう。

    次のような画像があるとします。

    誰にとっても良いように見えますが、私はその椅子が好きではありません。

    写真を半分に切ります。



    そして私は自分の手で椅子を選びます。

    次に、マスク内の白い部分をすべて画像の左側に移動し、同時に画像全体で、隣接する 2 つのピクセル間の差が、右側の 2 つの隣接するピクセル間の差と等しくなるようにします。写真:

    For (int i=0; i

    結果は次のとおりです。

    コードと画像が利用可能

    例。

    変数の値に関する実験データ バツそして を表に示します。

    それらを整列させた結果、次のような機能が得られます。

    使用する 最小二乗法、これらのデータを線形依存によって近似します。 y=ax+b(パラメータを見つける そして b)。 2 つの線のどちらが (最小二乗法の意味で) 実験データとよりよく一致しているかを見つけます。 図面を作成します。

    最小二乗法 (LSM) の本質。

    タスクは、2 つの変数の関数が次のような線形依存係数を見つけることです。 そして b は最小値をとります。 つまり、与えられた そして b見つかった直線からの実験データの偏差の二乗の合計が最小になります。 これが最小二乗法の要点です。

    したがって、この例を解くことは、結局 2 つの変数の関数の極値を見つけることになります。

    係数を見つけるための公式の導出。

    2 つの未知数を含む 2 つの方程式系がコンパイルされ、解決されます。 変数に関する関数の偏導関数を求める そして b、これらの微分値をゼロとみなします。

    結果として得られる連立方程式を、任意の方法 (たとえば、 置換法によるまたは ) を実行し、最小二乗法 (LSM) を使用して係数を見つけるための式を取得します。

    与えられた そして b関数 は最小値をとります。 この事実の証明が与えられる。

    これが最小二乗法全体の方法です。 パラメータを求める公式 ある sum 、 、 、およびパラメータが含まれます n- 実験データの量。 これらの金額の値を個別に計算することをお勧めします。 係数 b計算後に見つかった ある.

    元の例を思い出してみましょう。

    解決。

    私たちの例では n=5。 必要な係数の式に含まれる量を計算する便宜のために、表に記入します。

    表の4行目の値は、各数値ごとに2行目の値と3行目の値を乗算して得られます。 .

    表の 5 行目の値は、各数値の 2 行目の値を 2 乗することで得られます。 .

    表の最後の列の値は、各行の値の合計です。

    最小二乗法の公式を使用して係数を見つけます そして b。 テーブルの最後の列の対応する値をそれらに代入します。

    したがって、 y = 0.165x+2.184- 希望する近似直線。

    どの行を見つけるかはまだ残っています y = 0.165x+2.184または 元のデータをより適切に近似します。つまり、最小二乗法を使用して推定を行います。

    最小二乗法の誤差推定。

    これを行うには、これらの行からの元のデータの偏差の二乗の合計を計算する必要があります。 そして 、値が小さいほど、最小二乗法の意味で元のデータによりよく近似する線に対応します。

    以来、まっすぐ y = 0.165x+2.184元のデータによりよく近似します。

    最小二乗法 (LS) 法の図解。

    すべてがグラフにはっきりと表示されます。 赤い線は見つかった直線です y = 0.165x+2.184、青い線は , ピンクの点が元のデータです。

    なぜこれが必要なのか、なぜこのような近似が必要なのでしょうか?

    私は個人的に、データの平滑化、内挿、外挿の問題を解決するためにこれを使用しています (元の例では、観測値の値を見つけるように求められる場合があります) yx=3またはいつ x=6最小二乗法を使用します)。 ただし、これについては後ほどサイトの別のセクションで詳しく説明します。

    証拠。

    見つかったときに そして b関数が最小値をとる場合、この時点で関数の 2 次微分の 2 次形式の行列が次のようになっている必要があります。 は正定でした。 見せてみましょう。



    サイトの新着情報

    >

    最も人気のある