collapse
いつものpdfから。
https://www.stata.com/manuals/dcollapse.pdf
説明
collapseデータセットの要約統計量の生成し、新しいデータセットに置き換えるためのコマンドである。平均、合計、中央値などの要約統計量を計算し、新しいデータセットを作成する。なので、数値変数のみにこのコマンドは適用できる。
クイックスタート
以下のコードは、データセットをv1とv2の平均に置き換える(オプションを指定しないとdefaultで平均が採用される)。
collapse v1 v2
グループごとに要約統計量を計算する場合は、以下のコードになる。
collapse v1 v3, by(catvar)
一気に平均、標準偏差、標準偏差を作成するには以下。
collapse (mean) mena1 = v1 (sd) sd1 = v1 (semean) sem1 = v1
v2が二値変数の場合は以下のコード。
collapse (mean) mean2 = v2 (sebinomial) sem2 = v2
頻度や中央値、分位は以下。
collapse (count) freq = v1 (p50) p50 = v1 (iqr) iqr = v1
重み付けした平均や、重み付けしない平均は以下。
collapse (sum) weighted = v2 (rawsum) unweighted = v2 [fweight = wvar]
構文
用いることのできる要約統計量は以下。
Stataコード | 意味 |
mean | 平均値(default) |
median | 中央値 |
p1 | 1stパーセンタイル |
p2 | 2ndパーセンタイル |
p50 | 50thパーセンタイル |
p98 | 98thパーセンタイル |
p99 | 99thパーセンタイル |
sd | 標準偏差 |
sem(ean) | 標準誤差\(sd/\sqrt{n}\) |
seb(inomial) | 二値変数の標準誤差\(\sqrt{p(1-p)}/n\) |
sep(oisson) | ポワソン分布の標準誤差\(\sqrt{mean/n}\) |
sum | 合計 |
rawsum | 重み0の観察は除外される以外は、オプションで指定された重みを無視して合計。 |
count | 欠損のない観察値 |
percent | 欠損値のない観察値の割合 |
max | 最大値 |
min | 最小値 |
iqr | 分位幅 |
first | 最初の値 |
last | 最後の値 |
firstnm | 最初の欠損でない値 |
lastnm | 最後の欠損でない値 |
オプション
Stataコード | 説明 |
by(varlist) | 統計量が計算されるグループの指定 |
cw | すべての可能な観察のかわりに、ケースごとので削除 |
fast | “break”を入力しても元のデータセットを復元しない |
少し説明が追加されていた。
by(varlist) は、平均などが計算されるグループを指定する。このオプションが指定されない場合、結果のデータセットには1つの観察値のみが含まれる。このオプションが指定された場合、 varlist は文字列または数値の変数を指す。
cw はケースごとの削除を指定する。cw が指定されない場合、すべての可能なオブザベーションが各計算統計量に使用される。
以下のオプションはcollapseで使用可能であるが、ダイアログボックスには表示されない。fastは、ユーザーがBreakを押しても、collapseが元のデータセットを復元しないように指定する。
具体例
PDFの最初のデータセットはリンク切れになってたので、以下を用いる。まずはデータセットのimport。
use https://www.stata-press.com/data/r18/census5, clear
describeで確認。
describe
Contains data from https://www.stata-press.com/data/r18/census5.dta
obs: 50 1980 Census data by state
vars: 7 6 Apr 2022 15:43
--------------------------------------------------------------------------------------------------------
storage display value
variable name type format label variable label
--------------------------------------------------------------------------------------------------------
state str14 %14s State
state2 str2 %-2s Two-letter state abbreviation
region int %8.0g cenreg Census region
pop long %10.0g Population
median_age float %9.2f Median age
marriage_rate float %9.0g
divorce_rate float %9.0g
--------------------------------------------------------------------------------------------------------
Sorted by: region
米国の州の地域における結婚率と離婚率のデータセットである。
collapse (median) median_age marriage divorce (mean) avegmrate = marriage avgdrate = divorce [aw = pop], by(region)
list
+----------------------------------------------------------------+
| region median~e marria~e divorc~e avegmr~e avgdrate |
|----------------------------------------------------------------|
1. | NE 31.90 .0080657 .0035295 .0081472 .0035359 |
2. | N Cntrl 29.90 .0093821 .0048636 .0096701 .004961 |
3. | South 29.60 .0112609 .0065792 .0117082 .0059439 |
4. | West 29.90 .0089093 .0056423 .0125199 .0063464 |
+----------------------------------------------------------------+
これもdescribeで確認。
describe
Contains data
obs: 4 1980 Census data by state
vars: 6
--------------------------------------------------------------------------------------------------------
storage display value
variable name type format label variable label
--------------------------------------------------------------------------------------------------------
region int %8.0g cenreg Census region
median_age float %9.2f (p 50) median_age
marriage_rate float %9.0g (p 50) marriage_rate
divorce_rate float %9.0g (p 50) divorce_rate
avegmrate float %9.0g (mean) marriage_rate
avgdrate float %9.0g (mean) divorce_rate
--------------------------------------------------------------------------------------------------------
Sorted by: region
Note: Dataset has changed since last saved.
注意事項
データセットが置き換えられてしまうので、まず”preserve”をしてから、元のデータセットを用いる場合は”restore”すると良い。
preserve
collapse (mean) mena1 = v1 (sd) sd1 = v1 (semean) sem1 = v1
...
restore
関連記事
generateで変数を作る、あるいは置き換えたり削除する方法
Stataのegen rowtotalで変数を作るときの注意点
Stataでのdummy変数の生成
2つの変数をまとめる
グループごとの人数を集計するコマンド
Stataで偏差値を作成するコマンド
コメント