dice play

インデックスファンド、米国ETFを中心に、日米の個別株にもちょこちょこ投資(サイコロ遊び)をしています。

Excelで重回帰分析をするとき、HSTACK関数、VSTACK関数が役に立つ

 

Excelに新しい配列操作関数が実装されたというニュースを見ました。
これらの関数はサブスク版のExcelに提供されます。(おそらく買い切り版のExcelには提供されないと思います。)

forest.watch.impress.co.jp

最初、「使いどころがわからないな、この関数たち。」と思いました。

ふと、Excelで重回帰分析を行うときに、VSTACK関数とHSTACK関数が使えることに気づいたので、紹介します。

 

重回帰分析は、あるデータを複数の要因によって説明しようとする統計学の手法の一つです。
例えば、かき氷の売上高を、気温、降水量、立地(店舗と駅との距離)の3つの要因から推測できるかどうか調べたいとします。
重回帰分析を使うと、かき氷の売上高と要因を以下の関係式で説明しようとします。
(かき氷の売上高)=a*(気温)+b*(降水量)+c*(距離)+d
かき氷の売上高を「目的変数」、要因(気温、降水量、距離)を「説明変数」と言います。
ExcelではLINEST関数を使って、a,b,c,dの値を計算できます。
この関数の「既知のy」に目的変数、「既知のx」に説明変数の入力されているセルを指定します。

 

分析にあたり気を付けなければならないのは、必ずしも気温、降水量、距離のすべてがかき氷の売上高に関係するとは限らないことです。
分析者は、説明変数(要因)の種類を増やしたり減らしたりして、目的変数をうまく表現できる説明変数を絞り込んでいきます。

 

例えば、下図のように目的変数yと説明変数の候補が3つ(x1, x2, x3)あって、ExcelのLINEST関数を使って重回帰分析をしたいとします。

ExcelでLINEST関数とHSTACK関数を組み合わせた使用例

このとき、以下の7通りの説明変数の組み合わせを試して、一番良い組み合わせを探すことになります。

  • x1のみ
  • x2のみ
  • x3のみ
  • x1とx2
  • x1とx3
  • x2とx3
  • x1, x2, x3すべて

LINEST関数の「既知のx」(説明変数の入力欄)は連続した範囲である必要がありました。
x2を説明変数として使わず、x1とx3を説明変数にするような、説明変数を一列飛ばしてLINEST関数を使うことはできませんでした。
そのため、並び替えをした列を別途用意してLINEST関数を使う必要がありました。上図の場合、F列にC列の値を転記することになります。これが面倒な作業でした。

 

ここで、新しい配列関数であるVSTACK関数とHSTACK関数の出番です。機能は下記の通り。

VSTACK:配列を縦に積み重ねる
HSTACK:配列を水平方向に積み重ねる

 

LINEST関数の「既知のx」にHSTACK関数を使うと、一列飛ばした配列を作ることができ、説明変数がとびとびの範囲で入力してあっても、重回帰分析ができます。

ちなみに間違えてVSTACK関数を使うと、#REF!エラーが出ます。配列の大きさが目的変数と違うためです。

上図は変数の個々の値を縦に並べていますが、横に並べているときにはHSTACK関数のかわりにVSTACK関数を使えばよいです。

 

以上、ExcelのLINEST関数を使って重回帰分析を行う際に、新しい配列関数であるHSTACK関数とVSTACK関数を組み合わせるテクニックを紹介しました。

 

 

 

こちらのボタンをポチッと押すと、たくさんの投資ブログが見られます。

にほんブログ村 株ブログへ
にほんブログ村


金融・投資ランキング