いきなり答える備忘録

G Suite・Microsoft 365・LibreOfficeなどに関するメモと日々の実験

(Gスプレッドシート)切片が0の回帰直線を求める

 Googleスプレッドシートで、切片を0として回帰直線(の傾き)を求める方法についてです。

  • LINEST関数を使うことで切片を0としたときの回帰直線の傾きを求めることができます。

手順

f:id:accs2014:20200623040807p:plain:right:w550

 画像ではB列とC列に土地の面積とその取引価格のデータが10組配置されています。
 この面積と価格の関係を回帰直線にあてはめるのですが、面積が0のとき価格が0以外になることはないと考えられるので、切片は0であるものとして傾き(推定面積単価)だけを求めるものとします。
 回帰直線の傾きといえばSLOPE関数ですが、SLOPE関数ではそのような制約をかけることはできないので……

f:id:accs2014:20200623040811p:plain:right:w550

 LINEST関数を用いて、次のような式で求めることができます。
 画像はE3セルに式を入力した結果です。傾きと共に切片の0という値も一緒に出力されます(F3セル)。

=LINEST(C3:C12,B3:B12,FALSE)

 LINEST関数は単回帰のほかに重回帰や各種統計量の出力ができる関数です。この関数で第3引数をFALSEとすることで、切片を0として傾きを求めることができます。
 

f:id:accs2014:20200623040815p:plain:right:w550

 なお、この回帰直線をY=aXと表したときaはΣXiYi/ΣXi^2で求められますので、上記の値は次のような式で求めることもできます。
 これは「価格の平均/面積の平均」とは異なりますし「(価格i/面積i)の平均」とも異なります。

=SUMPRODUCT(B3:B12,C3:C12)/SUMSQ(B3:B12)