主要内容

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

線形回帰

はじめに

データ模型は,予測変数と応答変数間の関係を明確に説明します。線形回帰は,モデルの係数が線形であるデータ モデルを近似します。線形回帰の最も一般的なタイプは、最小二乗近似です。最小二乗近似では,直線と多項式を近似できます。

量間の関係をモデル化する前に,それらの量間に線形関係がある場合には相関解析を行うことが適切です。変数が非線形関係をもつ可能性があっても,相関分析では見つけることができないことに注意してください。詳細は,線形相関を参照してください。

MATLAB®の基本的な近似UIを利用すると,データを近似することでモデル係数を計算し,データの上にモデルをプロットできます。たとえば,例:基本的な近似UIの使用を参照してください。MATLABの関数polyfitと関数polyvalを用いて,係数について線形であるモデルにデータを近似することもできます。たとえば,プログラムによる近似を参照してください。

データを非線形モデルで近似しなければならない場合,関係を線形にするように変数を変換します。あるいは、统计和机器学习工具箱™の関数nlinfitまたは优化工具箱™の関数lsqcurvefitを使用するか,曲线拟合工具箱™の関数を適用して,非線形関数を直接近似させます。

ここでは以下の方法を説明します。

  • 演算子を使用して単純な線形回帰を実行します。

  • データ近似が適切であるかどうかを調べるために,相関解析を用いて2つの量が関連しているかどうかを決めます。

  • データに線形モデルを近似する

  • 残差をプロットし,パターンを調べて,適合度を評価する

  • 適合度R2と調整されたR2の尺度を計算する

単純な線形回帰

この例では,事故データセットを使用して,単純な線形回帰を実行する方法を説明します。また,回帰を評価するために決定係数 R 2 を計算する方法も説明します。事故データセットには,米国の州における死亡交通事故についてのデータが含まれています。

線形回帰は,従属(または応答)変数 y と1つ以上の独立(または予測子)変数 x 1 x n の関係をモデル化します。単純な線形回帰では、次の関係式を使用して 1 つの独立変数のみを考慮します。

y β 0 + β 1 x + ϵ

ここで, β 0 はy切片, β 1 は勾配(または回帰係数), ϵ は誤差項です。

x 1 y 1 ) x 2 y 2 ) 、...、 x n y n ) で与えられた n 個の x および y の観測値のセットから始めます。単純な線形回帰関係式を使用して、これらの値から連立線形方程式を形成します。これらの方程式を次のように行列形式で表します。

y 1 y 2 y n 1 x 1 1 x 2 1 x n β 0 β 1

以下を考えます。

Y y 1 y 2 y n X 1 x 1 1 x 2 1 x n B β 0 β 1

これで,関係式は Y X B となります。

MATLABでは,mldivide演算子をB = X、Yのように使用して B を求めることができます。

データセット事故から,事故データをyに,州の人口データをxに読み込みます。演算子を使用して,州の事故件数と州の人口間の線形回帰関係式 y β 1 x を求めます。演算子は最小二乗回帰を実行します。

负载事故x = hwydata (: 14);%的人口国家: y = hwydata (4);%事故/状态格式b1 y = x \
b1 = 1.372716735564871 e-04

b1は勾配または回帰係数です。線形関係式は, y β 1 x 0 0 0 0 1 3. 7 2 x です。

関係式を使用して,州ごとの事故件数yCalcxから計算します。実際の値yと計算された値yCalcをプロットして,回帰を可視化します。

yCalc1 = b1 * x;散射(x, y)情节(x, yCalc1)包含(国家的人口) ylabel (“每个州的致命交通事故”)标题(“事故与人口的线性回归关系”网格)

图中包含一个坐标轴。以“事故与人口之间的线性回归关系”为标题的坐标轴包含散点、直线两个对象。

モデルにy切片 β 0 y β 0 + β 1 x として含めることで,近似を改善します。xに1の列をパディングし,演算子を使用して, β 0 を計算します。

X = [ones(length(X),1) X];b = X、y
b =2×1102×1.427120171726538 - 0.000001256394274

この結果は,関係式 y β 0 + β 1 x 1 4 2 7 1 2 0 + 0 0 0 0 1 2 5 6 x を表しています。

同じ図上にプロットして関係式を可視化します。

yCalc2 = X * b;情节(x, yCalc2,“——”)传说(“数据”“坡”的斜率和拦截“位置”“最佳”);

图中包含一个坐标轴。以“事故与人口之间的线性回归关系”为标题的坐标轴包含散点、直线三个对象。这些对象代表数据、斜率、斜率和截距。

図では2つの近似の結果は同じように見えます。より高精度な近似を見つける方法の1つは,決定係数 R 2 を計算することです。 R 2 はモデルがデータをいかによく予測できるかを示す1つの尺度で, 0 1 の値をとります。 R 2 の値が大きいほど,モデルのデータ予測の精度が高くなります。

ここで, y ˆ は計算された y の値を表し, y y の平均値で, R 2 は以下のように定義されます。

R 2 1 - 1 n y - y ˆ ) 2 1 n y - y ) 2

R 2 の値を比較することで,2つの近似のうち,より高精度な近似を判断します。 R 2 の値が示すとおりy切片を含む2番目の近似の方が高精度です。

Rsq1 = 1 - sum ((y - yCalc1) ^ 2) /笔((y -意味着(y)) ^ 2)。
Rsq1 = 0.822235650485566
Rsq2 = 1 - sum ((y - yCalc2) ^ 2) /笔((y -意味着(y)) ^ 2)。
Rsq2 = 0.838210531103428

近似の残差と適合度

残差は,応答(従属)変数の”“観測された値とモデルで“予測される”値の差です。データを適切なモデルで近似すると、残差はランダムな誤差に近づきます。つまり、残差の分布が認識できるパターンを示すことはありません。

線形モデルを使用して近似を生成するには,残差の二乗和を最小化しなければなりません。この最小化により,最小二乗近似と呼ばれる値が生成されます。残差のプロットを視覚的に調べることにより,近似の”適合度”について知ることができます。残差プロットがパターンをもつ場合(すなわち,残差データ点がランダムな散布図をもつように見えない),このランダム性はモデルがデータを適切に近似していないことを示します。

データの状況に従って近似を評価します。たとえば,データを近似する目的が物理的意味をもつ係数を抽出することである場合、モデルがデータの物理を反映していることが重要です。近似の適合度を評価する際は、データが何を表すか、データがどのように測定されたか、さらにデータがどのようにモデル化されたかについて理解することが重要です。

適合度の尺度の1つは,決定係数,つまりR2(rの二乗と読む)です。この統計は,モデルの近似から得られる値がモデルで予測しようとする従属変数にどれくらい近いかを示します。統計学者は,近似したモデルからの残差分散を使用してR2を定義します。

R2= 1 - ss渣油/党卫军总计

党卫军渣油は,回帰からの二乗した残差の合計です。党卫军总计は,従属変数の平均の差を二乗した合計です("総二乗和")。どちらも正のスカラー値です。

基本的な近似ツールを使用する場合のR2の計算方法については,R2決定係数を参照してください。R2統計の計算とその多変量一般化の詳細については,引き続きこちらをお読みください。

例:多項式近似からのR2の計算

多項式回帰の係数からR2を導出して,以下の例が示すように,線形モデルで説明されるy内の分散の程度を調べることができます。

  1. データファイルcount.datの変数の最初の2列から2つの変数xyを作成します。

    Load count.dat x = count(:,1);y = count (:, 2);

  2. polyfitを使用して,xからyを予測する線形回帰を計算します。

    P = polyfit(x,y,1

    (1页)は傾きで(2页)は線形予測子の切片です。また,基本的な近似UIを使用して回帰係数を取得することもできます。

  3. pを使用して,yを予測するためにpolyvalを呼び出し,結果としてyfitを得ます。

    yfit = polyval (p (x);

    polyvalを使用すれば,近似式を入力する手間が省けます。近似式は次のようになります。

    Yfit = p(1) * x + p(2);
  4. 残差値を符号付き数値のベクトルとして計算します。

    Yresid = y - yfit;

  5. 残差を二乗して合計し,残差の二乗和を取得します。

    SSresid =总和(yresid。^ 2);

  6. 観測の回数から1を引いた数でyの分散を掛けることによってyの総二乗和を計算します。

    SStotal = (length(y)-1) * var(y);

  7. このトピックのはじめに指定された式を使用して,R2を計算します。

    rsq = 1 - SSresid/SStotal rsq = 0.8707
    これは,線形方程式1.5229 * x -2.1911が変数yの87%の分散を予測することを示しています。

多項式回帰の調整されたR2の計算

通常,より高い次数の多項式に近似することによって,モデルの残差を減らすことができます。さらに項数を追加すると,決定係数R2が増えます。データにより近い近似を取得しますが、R2で計算できない,より複雑なモデルを使用します。ただし,この統計を微調整した,調整済みR2には,モデルの項数のペナルティが含まれます。このため,調整済みR2は,さまざまなモデルが同じデータにどれだけ近似するかを比較するのに,より適しています。調整済みR2は次のように定義されます。

R2调整= 1 - (ss渣油/党卫军总计) ((n - 1) / (n-d-1))

ここでnはデータの観測数であり,dは多項式の次数です。(線形近似は次元が 1、2 次近似は 2、3 次近似は 3 など)

次の例では前の例例:多項式近似からのR2の計算のステップを反復しますが,線形(次元1)近似の代わりに3次(次元3)近似を実行します。3次近似から,単純および調整済みの両方のR2値を計算して,項数の追加によって予測力が向上するかどうかを調べます。

  1. データファイルcount.datの変数の最初の2列から2つの変数xyを作成します。

    Load count.dat x = count(:,1);y = count (:, 2);

  2. polyfitを呼び出して3次近似を生成し,xからyを予測します。

    P = polyfit(x,y,3) P = -0.0003 0.0390 0.2233 6.2779

    (4页)は3次予測子の切片です。また,基本的な近似UIを使用して回帰係数を取得することもできます。

  3. polyvalを呼び出し,pの係数を使用して,yを予測します。結果yfitとします。

    yfit = polyval (p (x);

    polyvalは,次のように手動で入力できる明示的な方程式を評価します。

    yfit = p (1) * x。^ 3 + p (2) * x。^ 2 + x + p p (3) * (4);

  4. 残差値を符号付き数値のベクトルとして計算します。

    Yresid = y - yfit;

  5. 残差を二乗して合計し,残差の二乗和を取得します。

    SSresid =总和(yresid。^ 2);

  6. 観測の回数から1を引いた数でyの分散を掛けることによってyの総二乗和を計算します。

    SStotal = (length(y)-1) * var(y);

  7. このトピックのはじめに指定された式を使用して,3次近似の単純なR2を計算します。

    rsq = 1 - SSresid/SStotal

  8. 最後に,調整済みR2を計算して,自由度を求めます。

    rsq_adj = 1 - SStotal * (length(y)-1)/(length(y)-length(p))
    調整済みR20.8945は単純なR20.9083よりも小さくなります。これによって多項式モデルの予測へ,より信頼性の高い推定能力を与えられます。

多くの多項式回帰モデルでは,方程式に項数を追加すると,R2と調整済みR2の両方が増えます。先の例では3次近似を使用したときのほうが線形近似に比べてどちらの統計値も値が大きくなりました。(線形近似での調整済みR2を計算してみると,値が低くなることが確認できます)。ただし,必ずしも線形近似が次数の高い近似に劣るとは限りません。複雑な近似の方が単純な近似よりも調整済みR2の値が低くなることがあり,その場合は複雑な近似を行う正当性がないことを示しています。また,基本的な近似ツールで生成される多項式回帰モデルではR2は0 ~ 1の間で常に変動しますが,調整済みR2はモデルによって負の値になる場合があり,モデルの項数が多すぎることを示します。

相関は因果関係を示すものではありません。常に相関係数と判定を慎重に解釈してください。この係数は,近似したモデルが従属変数内の分散をどれだけ取り除くかを定量化するだけです。このような尺度は,使用するモデルまたは選択する独立変数がモデルで予測される変数の動作を説明するのにどれくらい適しているかを示すものではありません。

曲线拟合工具箱関数を使用するデータ近似

曲线拟合工具箱ソフトウェアは,次のデータ近似機能によって,MATLABの基本的な機能を拡張します。

  • 標準の線形最小二乗,非線形最小二乗,重み付き最小二乗,制約付き最小二乗,ロバストな近似手順などを含む線形および非線形パラメトリック近似

  • ノンパラメトリック近似

  • 近似の適合度を決める統計値の計算

  • 外挿、微分、積分

  • データ分割や平滑化が簡単にできるダイアログボックス

  • 近似結果をMATLABコードファイル,垫ファイル,ワークスペース変数など多様な形式で保存

詳細については,曲线拟合工具箱ドキュメンテーションを参照してください。