グラフの中に回帰式を入れる方法

 

local変数の面目躍如たる瞬間だと思いますが、

回帰式の係数をグラフ中にうまく表示させる方法をシェアします.

簡単です.

Stataに内蔵されているデータセット ”auto.dta” を使っていきます.

 

回帰式の係数を取り出すときに、

   

local b=_b[weight]

 

とやってしまうと桁数が多すぎてしまい、見た目に美しくありません.

なので、桁数を限定します.

小数第二位までとする場合、係数の前に

 

“%3.2f”

 

などと置くことによって表示できます.

このときの「3」は、数値文字が(コンマも入れて)合計何文字になるかを表していて、

出力の際に小数点の位置を揃えるのに使うと便利です.

“f” はfix,つまり、ゼロがでてもそのまま表示させるよ、ということになります.

ゼロを消したい場合には “g” とすればいいですが、一般的にはfを選ぶでしょう.

sysuse auto, clear
regress price weight
local B: dis %3.2f _b[weight]
local C: dis %3.2f _b[_cons]
disp “Y = `B’x + `C'”
twoway (scatter price weight)||(lfit price weight), legend(off) /*
*/ note(“Y = `B’x + `C'”) ytitle(“Price”)

 

この場合のnoteは脚注で、欄外に小さく表示されますが、

もちろんlegendのところに式を表示させてもいいと思います.
その場合には、

 

legend(label(2 “Y = `B’x + `C'”))

 

のように表記します.

labelの二番目、というのはtwowayの式の二つ目、と言う意味です.

1に何も指定しなければデフォルトでtwowayの1つめの式のアウトカム変数、

つまり”price”がラベルで表示されます.

 

regress price weight
local B: dis %3.2f _b[weight]
local C: dis %3.2f _b[_cons]
disp “Y = `B’x + `C'”
twoway (scatter price weight)||(lfit price weight), /*
   */ legend(label(2 “Y = `B’x`C'”))  ytitle(“Price”)

※埋め込んだ式のy切片が負の値だったので、正符号を除去

 

 

Legendの位置をグラフフィールドにしたい場合

legendオプションは、内容と位置に関する情報を格納することになっており、

 

legend([contents] [location])

 

という構造になっています.

位置をグラフフィールド内にするときは”ring(0)”をこの位置情報に入れます.

なおかつlegendの位置をどこにするかを決める場合、

 

position(#)

 

として#に0から12まで時計回りに振っていきます.

 

legend(label(2 “Y = `B’x`C'”) ring(0) position(5))

 

として、グラフフィールド内右下に配置してみましょう.

 

regress price weight
local B: dis %3.2f _b[weight]
local C: dis %3.2f _b[_cons]
disp “Y = `B’x + `C'”
twoway (scatter price weight)||(lfit price weight), /*
*/ legend(label(2 “Y = `B’x`C'”) ring(0) position(5))  ytitle(“Price”)

 

 

legendではなく、グラフの直線のそばに配置したい場合

 

この場合は、”text” optionを使います.

 

text(y x “式”)

 

regress price weight
local B: dis %3.2f _b[weight]
local C: dis %3.2f _b[_cons]
disp “Y = `B’x + `C'”
twoway (scatter price weight)||(lfit price weight), legend(off) /*
*/ text(5000 4500 “Y = `B’x`C'”)  ytitle(“Price”)

 

 

と表記します.Yとxのところにはそれぞれ、y軸とx軸の値を入れるとそのテキストの中心部の座標となります.

 

まとめ

 

・グラフ中に回帰式を入れるときはマクロを駆使!

・回帰式の入れ方は、note, legend, textで場面に応じて使い分けを.

 

 

 

コメント

  1. […] おや、これはどうしたことでしょうか.桁数が増えてしまっています.こんな時は少し前の記事を参照してもらって、local macroに桁数を絞って格納してしまいましょう. […]

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