2012年4月の記事一覧
変数を足し合わせた得点で欠損があるときの平均値の計算
※2012/04/15 修正
単純な例として,次のようなデータがあるとします。
v1とv2を足し合わせて得点を作りたい場合,どれかの変数に
欠損があっても無視して全部のケースについて平均値を出し,
変数として加えたい時はどうしたらよいでしょう?
次の3通りのコマンドをためしてみます。
gen total1=v1+v2 //単純に合計 ---(1)
egen total2=rowtotal(v1-v2) //関数で合計 ---(2)
egen average=rowmean(v1-v2) //関数で平均 ---(3)
list v1-average
(1)と(2)は,まず合計得点を出してみるやり方です。この後変数の数で除す
計算をしてあげれば平均値になります。
(1)は,欠損があるケースは平均値も欠損にする場合有用です
(2)は,欠損値を0に読み変えます。尺度の合計計算には不向きかも知れません。
(3)は,欠損のある変数を抜かして平均値を計算します。
したがって,欠損は関係なく平均値を出したい時は,(3)が有用です。
(3)を使って欠損があったら計算しないようにすることもできます。
egen average2 = rowmean(v1-v2) if !missing(v1-v2)
!missingの中の変数が離れている場合は,(v1,v3)のように , を入れます
単純な例として,次のようなデータがあるとします。
+---------+
v1 v2
---------
1. 1 0
2. 1 1
3. 1 .
+---------+
v1 v2
---------
1. 1 0
2. 1 1
3. 1 .
+---------+
v1とv2を足し合わせて得点を作りたい場合,どれかの変数に
欠損があっても無視して全部のケースについて平均値を出し,
変数として加えたい時はどうしたらよいでしょう?
次の3通りのコマンドをためしてみます。
gen total1=v1+v2 //単純に合計 ---(1)
egen total2=rowtotal(v1-v2) //関数で合計 ---(2)
egen average=rowmean(v1-v2) //関数で平均 ---(3)
list v1-average
+-------------------------------------+
v1 v2 total1 total2 average
-------------------------------------
1. 1 0 1 1 .5
2. 1 1 2 2 1
3. 1 . . 1 1
+-------------------------------------+
v1 v2 total1 total2 average
-------------------------------------
1. 1 0 1 1 .5
2. 1 1 2 2 1
3. 1 . . 1 1
+-------------------------------------+
(1)と(2)は,まず合計得点を出してみるやり方です。この後変数の数で除す
計算をしてあげれば平均値になります。
(1)は,欠損があるケースは平均値も欠損にする場合有用です
(2)は,欠損値を0に読み変えます。尺度の合計計算には不向きかも知れません。
(3)は,欠損のある変数を抜かして平均値を計算します。
したがって,欠損は関係なく平均値を出したい時は,(3)が有用です。
(3)を使って欠損があったら計算しないようにすることもできます。
egen average2 = rowmean(v1-v2) if !missing(v1-v2)
!missingの中の変数が離れている場合は,(v1,v3)のように , を入れます
0