論文でのTable作成
疫学や介入研究での論文作成に記述統計(Demographic statistics)は欠かせないが、一つ一つの数値や項目をexcelやwordに打ち込んでいくと、いくら時間があっても一瞬でなくなる。そこでplug-inコマンドとして、table1_mcコマンドを用いる。https://ideas.repec.org/c/boc/bocode/s458351.html
このコマンドを用いると、記述統計のTableが一瞬で作成できる。各変数の要約値をexcelやwordに出力することも可能である。
作成者
オーストラリアのQueensland大学のMark Chatfield博士が作成。生物統計学の先生らしい。
インストール方法
ssc install table1_mc
1行で良い。インターネット接続環境で行う。
変数へのラベル付け
tableに含めたい変数にラベル付けを行う。ラベル付けについては以下の記事も参照。
ラベル付けのtips
table1_mcはラベルをアルファベットあるいは数字順に出力する。ここではシステム付属のデータセットを用いる。
sysuse bpwide.dta
で性別、年齢カテゴリー毎の介入前、介入後の血圧データがロードされる(何の介入だろう)。
例えば、介入後の血圧をカテゴリー分けして、ラベル付けしてみる。ラベル付けの方法には二通りあって、例えば介入前後の血圧を考えると、次のコマンドでは変数自体にラベルを付与している。
label variable bp_before "Pressure before intervention, mm Hg"
label variable bp_after "Pressure after intervention, mm Hg"
対して、以下のコマンドでは変数内でラベルの付与を行っている。
gen bp_after_cat4 = .
replace bp_after_cat4 = 1 if bp_after < 140
replace bp_after_cat4 = 2 if bp_after >= 140 & bp_after < 160
replace bp_after_cat4 = 3 if bp_after >= 160 & bp_after < 180
replace bp_after_cat4 = 4 if bp_after >= 180 & bp_after < .
replace bp_after_cat4 = 99 if bp_after == .
label de bp_after_cat4_labels 1 "<140" 2 "140-159" 3 "160-180" 4 "180 and above" 99 "Missing"
*define the labels
label val bp_after_cat4 bp_after_cat4_labels
*apply the labels
このように変数内でラベルの付与をした場合、ラベル全体にラベル名を適応することを忘れないようにする。
label variable bp_after_cat4 "Categorical pressure, mm Hg"
Tableの作成
詳細については以下のようにhelpコマンドを出すと良い。
help table1_mc
まず最初に、table1_mcと記載する。次に介入をby(exposure variable)で記述する。その後は、変数を以下に示すルールに従って、順次記載していくと良い。
二値変数
bin: 二値変数で、統計量はピアソンのカイ二乗検定となる。
bine: 二値変数で、統計量はFisherの正確確率検定となる。
連続変数
contn: 正規分布する連続変数で、平均と標準偏差が与えられる。
contin: 対数正規分布する連続変数で、幾何平均と幾何標準偏差が与えられる。
conts: その他の連続変数で、中央値と四分位数が与えられる。
カテゴリー変数
cat: カテゴリー変数で、統計量はピアソンのカイ二乗検定となる。
cate: カテゴリー変数で、統計量はFisherの正確確率検定となる。
小数点などの指定
何もしないとずらずらと小数点を並べてしまうので、指定する。
%4.0f: 4桁で、小数点以下はなし(例: 43)。
%4.1f: 4桁で、小数点以下1桁(例: 42.8)。
その他
それぞれの変数はバックスラッシュ(\)で区切る。
追加オプション
常に含めた方が良いオプション
onecol: カテゴリー変数がそれぞれ別のコラムにならず、ヘッダーとそれ以下で記載される。
missing: 欠損値も記載してくれる。
nospace: デフォルトだと1桁の数字がスペースありで記載されるが、それを無くしてくれる(例:何もしないと” 3%”になってしまうが、”3%”としてくれる)。
saving: Tableをエクセルに出力してくれる。エクセルファイルが開かれていると上書きされてしまうので注意。
ジャーナルによって使用するオプション
percent: 何%というのを、nなしで出力する。
percent_n: %(n)という形式になる。
slashN: (n/N)という形式(Nは全数)
total(before):
エクセルへのアウトプット
以上をまとめると、以下のコードを入力すると、Table1がエクセルに出力される。今回は介入の変数がなかったので、sexで分けてみた。
table1_mc, by(sex) vars(bp_before contn %4.1f\ bp_after contn %4.1f\ bp_after_cat4 cat %4.0f\) onecol missing nospace saving("/Users/Desktop/test.xlsx", replace)
右側の方には解析の結果が記載されているので、下の部分だけ選択すれば良い。
感想
慣れればとてつもなく便利。実際の細かい調整はlabelで行うので、きちんとキレイにlabelを定義することが重要。
コメント