ExcelのSTEYX関数の使い方|回帰の標準誤差

スポンサーリンク

ExcelのSTEYX関数とは?回帰直線の「予測のばらつき」を求める関数

「広告費から売上を予測したいけど、その予測ってどれくらい当たるの?」
「散布図に近似直線を引いたとき、ばらつきの大きさを数字で表したい」

こんな場面で出番になるのがSTEYX関数です。

この記事ではSTEYX関数の使い方を、SLOPEやINTERCEPT、RSQといった回帰関連の関数と絡めながら解説します。読み終えるころには「予測の精度を数値で語れる」ようになっていますよ。

読み方と語源(Standard Error of Y given X)

STEYX関数の読み方は「スタンダード・エラー・ワイ・エックス」または「ステイ・ワイ・エックス」です。STEYXは「Standard Error of Y given X」の略で、「Xが与えられたときのYの標準誤差」という意味があります。

回帰分析では、X(説明変数)からY(目的変数)を予測する直線を引きますよね。その直線がどれくらい実測値からズレているかを数値化したのが、回帰の標準誤差(残差標準偏差)です。

STEYX関数はこの標準誤差を一発で計算してくれる関数で、Excel 2003以降のすべてのバージョンで使えます。Microsoft 365でもそのまま動きます。

「回帰の標準誤差」とは何か

ざっくり言うと、回帰直線を使って予測したときの「ハズレ幅の目安」です。

たとえば広告費から売上を予測したとします。回帰直線が「売上 = 2 × 広告費 + 50」だった場合、広告費が10のときの予測売上は70です。でも実測値は68だったり75だったりとブレますよね。このブレの大きさを統計的にまとめた数字が、回帰の標準誤差です。

標準誤差が小さいほど予測精度が高く、大きいほど予測のハズレ幅が大きい、ということになります。「この回帰直線、ぶっちゃけどれくらい使えるの?」を数値で答えてくれる便利な指標なんです。

STEYX関数の書き方(構文と引数)

基本構文

まずは基本の書き方を確認しましょう。引数は2つで、どちらも必須です。

=STEYX(known_y's, known_x's)
引数必須/省略可説明
known_y’s必須目的変数Y(予測したい値)のデータ範囲
known_x’s必須説明変数X(予測の元になる値)のデータ範囲

引数の順番は「Yが先、Xが後」です。SLOPE関数やINTERCEPT関数と同じ順番なので、回帰系の関数はセットで覚えておくと迷いませんよ。

引数を入れる順番に注意

ここは間違えやすいので念押ししておきます。STEYX関数の引数は「Y, X」の順です。「X, Y」と入れ替えると、まったく別の値が返ってきてしまいます。

=STEYX(売上範囲, 広告費範囲)   # 正しい:Yが先
=STEYX(広告費範囲, 売上範囲)   # 間違い:XとYが逆

「予測したいもの(Y)が先、予測の元(X)が後」と覚えておけば大丈夫です。Excelの関数ヒントにも known_y's, known_x's と表示されるので、そこも確認しながら入力してみてください。

STEYX関数の基本的な使い方

数値例で動かしてみる

実際に手を動かして使ってみましょう。次のような広告費と売上のデータがあるとします(単位は万円)。

広告費(X)売上(Y)
1070
1578
2092
25100
30115

このデータがA2:B6に入っているとして、広告費がX、売上がYだとします。STEYX関数で回帰の標準誤差を求める数式はこうなります。

=STEYX(B2:B6, A2:A6)

結果は約3.05です。これは「回帰直線で予測した売上は、実測値から平均しておよそ±3.05万円ズレる」という意味になります。

結果の意味を読み解く

回帰の標準誤差が3.05ということは、おおよそ次のように解釈できます。

  • 予測売上に対して、実測値の約68%が±3.05の範囲に収まる
  • 予測売上に対して、実測値の約95%が±6.10(標準誤差の2倍)の範囲に収まる

この「68%」「95%」は、残差が正規分布に従うと仮定したときの目安です。データのばらつき具合を直感的に把握する指標として使われます。

「3.05って大きいの?小さいの?」と思いますよね。この判断はYの値の大きさとセットで考えるのがコツです。今回の売上は70〜115の範囲なので、ばらつき3.05はかなり小さい部類で、回帰直線の精度はそこそこ高い、という見方ができます。

計算の中身(参考)

STEYX関数の内部では、次の式で計算されています。難しければ読み飛ばしてOKです。

標準誤差 = √( Σ(実測Y - 予測Y)² / (n - 2) )

実測Y - 予測Y は残差(ズレ)と呼ばれる値です。この残差の二乗平均を取って、自由度(n-2)で割って、最後に平方根を取ります。

「自由度 n-2」というのが特徴で、回帰直線は「傾き」と「切片」の2つのパラメータを推定するため、データ点の数nから2を引いた値で割るんです。STEDEV.S関数(n-1で割る)とは少し違うので、回帰専用の指標として覚えておくといいですね。

STEYXとSLOPE・INTERCEPT・RSQ・FORECASTの関係

回帰分析でよく使う関数たちを、STEYXとセットで整理しておきましょう。

回帰分析で一緒に使う関数たち

関数役割構文
SLOPE回帰直線の傾きを返す=SLOPE(known_y's, known_x's)
INTERCEPT回帰直線の切片を返す=INTERCEPT(known_y's, known_x's)
RSQ決定係数(R²)を返す=RSQ(known_y's, known_x's)
FORECAST.LINEAR指定したXに対する予測Yを返す=FORECAST.LINEAR(x, known_y's, known_x's)
STEYX回帰の標準誤差を返す=STEYX(known_y's, known_x's)

引数の順番は全部「Y, X」で揃っているので、まとめて覚えてしまうのが楽です。詳しい使い方はSLOPE関数の記事INTERCEPT関数の記事も参考にしてください。

「予測直線を引く → 精度を測る」の流れ

実務では、これらの関数を組み合わせて「予測 → 精度評価」までセットでやることが多いです。

傾き    : =SLOPE(B2:B6, A2:A6)
切片    : =INTERCEPT(B2:B6, A2:A6)
R²      : =RSQ(B2:B6, A2:A6)
予測値  : =FORECAST.LINEAR(35, B2:B6, A2:A6)
標準誤差: =STEYX(B2:B6, A2:A6)

R²(決定係数)は「データのばらつきのうち、回帰直線で説明できた割合」を表す0〜1の値で、1に近いほど当てはまりがいいことを示します。詳しくはRSQ関数の記事を参考にしてください。

R²と標準誤差はどちらも回帰直線の評価指標ですが、見方が違います。R²は「全体的な当てはまりの良さ」を割合で示し、STEYXは「実際のズレの大きさ」を元の単位(今回なら万円)で示してくれます。両方セットで見ると、回帰モデルの精度をしっかり評価できますよ。

FORECAST.LINEARと組み合わせて予測区間を作る

FORECAST.LINEARで予測値を出して、STEYXで標準誤差を出せば、ざっくりした予測区間も作れます。

予測値 ± 2 × 標準誤差   # 約95%の予測区間

たとえば広告費35のときの予測売上が127、標準誤差が3.05なら、「約95%の確率で売上は120.9〜133.1の範囲」と見積もれます。「予測値だけ出されてもどれくらい信頼できるか分からない」という上司への報告がラクになりますよ。詳しい予測の出し方はFORECAST.LINEAR関数の記事もあわせて読んでみてください。

よくあるエラーと対処法

#N/Aエラー:YとXの個数が違う

STEYX関数で一番見かけるのが#N/Aエラーです。原因はだいたいこれです。

  • known_y’s と known_x’s のデータ個数が違う

たとえばYは10件、Xは9件だと、データペアが作れずエラーになります。

=STEYX(B2:B11, A2:A10)   # Yは10件、Xは9件 → #N/Aエラー
=STEYX(B2:B11, A2:A11)   # 個数を揃えるとOK

「あれ、なぜか#N/Aが出る」というときは、まず範囲の行数を確認してみてください。コピペで範囲を作ったときに、片方だけずれてしまうことがよくあります。

#DIV/0!エラー:データが少なすぎる、Xがすべて同じ

データ点が2件しかなかったり、Xの値がすべて同じだったりすると、#DIV/0!エラーになります。

known_y's: {70}, known_x's: {10}        → #DIV/0!(データが1件のみ)
known_y's: {70, 80, 90}, known_x's: {10, 10, 10}  → #DIV/0!(Xがすべて同じ)

回帰直線を引くにはXに変動が必要で、しかも「自由度 n-2」で割る計算式の都合上、データは最低3件以上ないと意味のある値が出せません。ばらつきがゼロのデータには回帰の概念が成立しないんですね。

#VALUE!エラー:引数に文字列が混ざっている

引数の範囲に文字列や論理値が混ざっていると#VALUE!エラーになります。

=STEYX(B2:B6, A2:A6)

A列やB列に「データなし」「-」のような文字列が入っているとエラーになるので、空欄にしておくか、IFERROR関数でフィルターしましょう。

エラーを事前にトラップしたい場合は、IFERROR関数で囲むのもアリです。

=IFERROR(STEYX(B2:B6, A2:A6), "データを確認してください")

データ入力者にも親切なメッセージが出せるので、共有ファイルではこの書き方がおすすめです。

まとめ

STEYX関数は、回帰直線の「予測のばらつき」を一発で計算してくれる関数です。

ポイントを整理しておきましょう。

  • 構文は =STEYX(known_y's, known_x's) で、Yが先、Xが後の順
  • 結果は「予測値が実測値から平均してどれくらいズレるか」を、元の単位で示す
  • 自由度は n-2 で、回帰直線専用の標準偏差として計算される
  • SLOPEINTERCEPTRSQFORECAST.LINEAR とセットで使うと、回帰分析がぐっと深まる
  • データ件数の不一致(#N/A)、データ不足(#DIV/0!)、文字列混入(#VALUE!)に注意

回帰直線の精度を数値で語れるようになると、レポートの説得力がぐっと上がります。FORECAST.LINEARで予測値を出すついでに、STEYX関数で「±どれくらいブレるか」もセットで報告すると、相手に親切な分析資料に仕上がりますよ。

タイトルとURLをコピーしました