次の方法で共有


WorksheetFunction.LinEst(Object, Object, Object, Object) メソッド

定義

"最小二乗法" を使って指定したデータに最もよく当てはまる直線を算出し、この直線を記述する配列を返すことによって直線の補正項を計算します。 この関数では、配列の値を返すので、配列数式として入力する必要があります。

public object LinEst (object Arg1, object Arg2, object Arg3, object Arg4);
Public Function LinEst (Arg1 As Object, Optional Arg2 As Object, Optional Arg3 As Object, Optional Arg4 As Object) As Object

パラメーター

Arg1
Object

既知の y: 既にわかっている y の値の系列で、y = mx + b という関係になります。

Arg2
Object

既知の x: 既にわかっている x の値の系列で、y = mx + b という関係になります。

Arg3
Object

定数: 定数 b を 0 にするかどうかを論理値で指定します。

Arg4
Object

補正: 回帰指数曲線の補正項を追加情報として返すかどうかを、論理値で指定します。

戻り値

注釈

直線は次の演算式で表されます。

y = mx + b または

y = m1x1 + m2x2 + ... + b (独立変数 x の範囲が複数の場合)

従属変数 y は独立変数 x の関数です。 また、m はそれぞれの x に対応する係数で、b は y 切片と呼ばれる定数です。 y、x、m がベクトル (1 次元配列) であることに注意してください。 LinEst が返す配列は {mn,mn-1,...,m1,b} です。 LinEst は 、追加の回帰統計を返すこともできます。

既知の y の配列が 1 つの列に入力されている場合、既知の x の各列はそれぞれ異なる変数であると見なされます。

既知の y の配列が 1 つの行に入力されている場合、既知の x の各行はそれぞれ異なる変数であると見なされます。

既知の x の配列には、1 つまたは複数の変数の系列を指定することができます。 変数の系列が 1 つである場合、既知の y と既知の x は、両者の次元が同じであれば、どのような形の範囲であってもかまいません。 変数の系列が複数である場合、既知の y は 1 行または 1 列のセル範囲でなければなりません。

既知の x を省略すると、既知の y と同じサイズの {1,2,3,...} という配列を指定したと見なされます。

const が true または省略された場合、b は通常どおり計算されます。

const が false の場合、b は 0 に設定され、m 値は y = mx に合わせて調整されます。

統計が truuue の場合、 LinEst は追加の回帰統計を返します。そのため、返される配列は {mn,mn-1,...,m1,b です。sen,sen-1,...,se1,seb;r2,sey;F,df;ssreg,ssresid}.

統計が false または省略された場合、 LinEst は m 係数と定数 b のみを返します。

次のような回帰直線の補正項が追加情報として返されます。

se1,se2,...,sen係数 m1,m2,...,mn に対する標準誤差の値です。
seb定数 b の標準エラー値 (const が false の場合は、seb = #N/A)。
R2確実度の係数です。 予測される y の値と実際の y の値を比較して、0 から 1 の範囲の数値を計算します。 1 の場合、サンプルには完全な相関関係があります。推定 y 値と実際の y 値には違いはありません。 逆にこの係数の値が 0 である場合、回帰直線の演算式は y の値の予測にはほとんど役立ちません。
sey予測される y の値に対する標準誤差です。
FF 補正項または F 観測値です。 F 補正項を利用すると、独立変数と従属変数の間で観察された関係が偶然によるものかどうかを判断できます。
df自由度です。 自由度を利用すると、統計表の中で F の臨界値を見つけるのに役立ちます。 テーブル内で見つけた値を 、LinEst によって返される F 統計量と比較して、モデルの信頼度レベルを決定します。
ssreg回帰の平方和です。
ssresid残余の平方和です。

次の図では、回帰直線の追加補正項が返される順序を示します。

図 1: ワークシート

勾配と y 切片を使用して、任意の直線を記述できます。

スロープ (m):

直線の傾き (m) は、直線上の 2 点の座標が (x1,y1)、(x2,y2) で表されるとき、(y2 - y1)/(x2 - x1) で計算できます。

y 切片 (b):

直線の y 切片 (b) とは、直線が y 軸と交わるときの y の値です。

直線の演算式は、y = mx + b で表されます。 m と b の値がわかれば、y または x の値をこの演算式に代入することにより、直線上の任意の点の座標を計算することができます。 関数を Trend(Object, Object, Object, Object) 使用することもできます。

独立した x 変数が 1 つしかない場合は、次の数式を使用して、勾配と y 切片の値を直接取得できます。

斜面:

=INDEX(LINEST(known_y,known_x),1)

Y インターセプト:

INDEX(LINEST(既知の y, 既知の x),2)

LineEst によって計算される線の精度は、データ内の散布度によって異なります。 データの線形性が高いほど、 LineEst モデルの精度が高くなります。 LineEst では、データに最適な 2 乗を決定するために、最小二乗のメソッドを使用します。 独立変数 x の値が 1 つしかわからない場合は、次の数式を使って m と b の値が計算されます。

図 2: 数式

図 3: 数式

ここで、x は標本平均 AVERAGE(既知の x)、y は標本平均 AVERAGE(既知の y) です。

線と曲線のフィッティング関数 は LineEst で、 LogEst(Object, Object, Object, Object) データに適合する最適な直線または指数曲線を計算できます。 ただし、データを直線で近似するか指数曲線で近似するかは、データに合わせて選択する必要があります。 直線の場合は、TREND(既知の y, 既知の x)、指数曲線の場合は GROWTH(既知の y, 既知の x) を使って計算することができます。 これらの関数は、引数として新しい x を指定しなくても、直線または指数曲線上で実際のデータ要素に対応する、y の予測値の配列を返します。 これにより、予測値と実際の値を比較することができます。 両者の値をひとめで比較できるように、グラフを作成することもできます。

回帰分析では、直線上の各点ごとに、予測される y の値と実際の y の値との平方差が計算されます。 このようにして計算した平方差の合計を "残余の平方和"(ssresid) と呼びます。 次に、"総平方和"(sstotal) が計算されます。 const = true、または省略した場合、平方和の合計は、実際の y 値と y 値の平均の 2 乗差の合計です。 const = false の場合、平方和の合計は、実際の y 値の 2 乗の合計です (個々の y 値から平均 y 値を差し引く必要はありません)。 回帰の平方和 ssreg は、ssreg = sstotal - ssresid として計算されます。 総平方和と比較し、残余の平方和が小さければ小さいほど、確実度の係数である r2 の値が大きくなり、回帰分析で得られた方程式が変数間の関係をより正確に表していることになります。 ここで、r2 = ssreg/sstotal です。

場合によっては、1 つ以上の X 列 (Y と X が列にあると仮定) に、他の X 列が存在する場合に追加の予測値がない場合があります。 言い換えると、1 つ以上の X 列を削除すると、同じように正確な予測 Y 値が発生する可能性があります。 その場合、これらの冗長 X 列は回帰モデルから省略する必要があります。 冗長 X 列は、冗長でない X 列の倍数の合計として表すことができるため、この現象は "共線性" と呼ばれます。 LinEst は共線性をチェックし、重複する X 列を識別するときに回帰モデルから削除します。 削除された X 列は、 LinEst 出力で 0 個の係数と 0 se の係数を持つものとして認識できます。 1 つ以上の列が冗長として削除された場合、df は予測目的で実際に使用される X 列の数に依存するため、df は影響を受けます。 冗長 X 列が削除されるために df が変更された場合、sey と F の値も影響を受けます。 共線性は、実際には比較的まれである必要があります。 ただし、発生する可能性が高いケースの 1 つは、一部の X 列に、実験の対象が特定のグループのメンバーであるかどうかの指標として 0 と 1 のみが含まれている場合です。 const が true または省略された場合、 LinEst は 実質的にインターセプトをモデル化するために、すべての 1 の追加の X 列を挿入します。 "男性" の場合は各サブジェクトに 1、そうでない場合は 0、女性の場合は各サブジェクトに 1、そうでない場合は 0 の列がある場合は、この後者の列は冗長になります。この列のエントリは、 LineEst によって追加されたすべての 1 の追加列のエントリから "男性インジケーター" 列のエントリを減算することによって取得できるためです。

共線性のためにモデルから X 列が削除されない場合、df は次のように計算されます。known_xと const の列が k 個あり、const = true または省略されている場合は、df = n – k – 1 です。 const = false の場合、df = n - k。 どちらの場合も、共線性のために削除された各 X 列は df を 1 ずつ増やします。

計算結果が配列となる数式は、配列数式として入力する必要があります。 When entering an array constant such as known_x's as an argument, use commas to separate values in the same row and semicolons to separate rows. 区切り文字は、コントロール パネルの [地域] と [言語オプション] のロケール設定によって異なる場合があります。

回帰演算式によって予測計算された y の値は、演算式を決定するときに使用した y の値の範囲外では、有効な値にならない場合があります。 LinEst 関数で使用される基になるアルゴリズムは、 および Intercept(Object, Object) 関数でSlope(Object, Object)使用される基になるアルゴリズムとは異なります。 アルゴリズムの違いにより、データに不確定さや共線性が存在した場合に、異なる結果が得られる場合があります。 たとえば、既知の y 引数のデータ要素が 0 で、既知の x 引数のデータ要素が 1 であったとします。

LineEst は 、値 0 を返します。 LinEst アルゴリズムは、同一線上のデータに対して妥当な結果を返すように設計されており、この場合は少なくとも 1 つの回答が見つかります。 Slope(Object, Object) #DIV Intercept(Object, Object) /0 を返します。 エラーを返します。 Slope(Object, Object)アルゴリズムと Intercept(Object, Object) アルゴリズムは、1 つの回答と 1 つの回答のみを検索するように設計されており、この場合は複数の回答が存在する可能性があります。

適用対象