3

Stata では、さまざまな従属変数と独立変数のさまざまな組み合わせを使用して回帰を調査したいと考えています。

このため、これらすべての回帰を行うループを使用し、関連する結果 (係数、R2 など) を簡潔で便利な形式の行列に保存することにしました。

このマトリックスでは、読みやすくするために行と列に名前を付けたいと思います。

これまでの私のコードは次のとおりです。

clear
sysuse auto.dta
set more off

scalar i = 1

foreach v in price mpg {
foreach w in weight length {

    quietly: reg `v' `w' foreign

local result_`v'_`w'_b = _b[`w']
local result_`v'_`w'_t = ( _b[`w'] / _se[`w'] )
local result_`v'_`w'_r2 = e(r2)

if scalar(i) == 1 {
mat A = `result_`v'_`w'_b', `result_`v'_`w'_t', `result_`v'_`w'_r2'
local rownms: var label `v'
}
if i > 1 {
mat A = A \ [`result_`v'_`w'_b', `result_`v'_`w'_t', `result_`v'_`w'_r2']
*local rownms: `rownms' "var label `v'"
}

scalar i = i+1

}
}

mat coln A = b t r2
mat rown A = `rownms'

matrix list A

次のような結果の行列 A が得られます。

. matrix list A

A[4,3]
                b           t          r2
Price   3.3207368   8.3882744    .4989396
Price   90.212391   5.6974982   .31538316
Price  -.00658789  -10.340218   .66270291
Price  -.22001836  -9.7510366   .63866239

明らかに、まだ完成していないものがあります。行列の行名は「price, price, mpg, mpg」にする必要があります。これは、4 つの回帰の従属変数であるためです。

上記のコードで、コメントアウトされた行を検討してください。

*local rownms: `rownms' "var label `v'"

現在のフォームではエラーが発生するため、コメントアウトされています。

rownms反復ごとにローカル マクロに変数のラベル (または名前) を追加して、 Price Price Mileage (MPG) Mileage (MPG).

しかし、マクロに現在の変数のラベルを追加するための引用符を正しく取得できないようです。

4

1 に答える 1