今日扱ったコマンド、備忘録として。
drop if v2 ~= 2 *条件に従ってケースを削除
tab v228, sum(v224) *sum以下の変数の平均やSDを層別(ここではv228)に見る
gen bior = 1 if v5 == 0 & v6 == 0 *変数の作成(generateの略、gでも動く)**条件指定の場合、==となる。
recode bior .=2 *誤って欠損値にされたのでリコード
gen cohort5 = 2006 - age *gen 新しい変数=既存の変数の他、関数を入れることもできる。
recode cohort5 1910/1914 = 1 1915/1919 = 2 1920/1924 = 3 1925/1929 = 4 1930/1934 = 5 1935/1939 = 6 1940/1944 = 7 1945/1949 = 8 1950/1954 = 9 1955/1959 = 10 1960/1964 = 11 1965/1969 = 12 1970/1974 = 13 1975/1979 = 14 1980/1984 = 15 1985/1989 = 16 *生まれ年からコーホートを作成
label define cohort5 1"10-14"2"15-19"3"20-24"4"25-29"5"30-34"6"35-39"7"40-44"8"45-49"9"50-54"10"55-59"11"60-64"12"65-69"13"70-74"14"75-79"15"80-84"16"85-89" *コーホートにラベルを設定(反映されなかったorz)
tab3way cohort5 bior v228 *このコマンドは自分でインストールする必要有り(findit command名で可能)
gen inf = v231
recode inf 1/2 = 1 3/4 =2 5=. *SPSSのthru にあたるのが/
ipf [fw=freq], fit(r*s+r*f+s*f) exp *iterated proportional fittingを用いたログリニアモデル(ipfは要インストール)**あらかじめr,s,fの組み合わせと各々の頻度を表にしたものを使用する。下記のような例。
glm freq r s f rs rf sf, family(pois) link(log) *pois(poisson)を使ったログリニアモデル(こちらでやると各モデルのBICとAICも出る)、ただし下ごしらえとして
gen rs = r*s
gen rf = r*f
gen sf = s*f
ipfとpoisに関してはここ及びUCLAのオンライン学習サイト(IDRE)を参照しました。
modelを比較してs*fのpartial associationを出す(手計算)。今回は例として本人学歴(r)と配偶者学歴(s)と本人父親学歴(f)とする。
ipf [fw=freq], fit(r*s+r*f) G^2 = 94.7352 df = 36
ipf [fw=freq], fit(r*s+r*f+s*f) G^2 = 20.0725 df = 27
G^2(r*s+r*f)-G^2(r*s+r*f+s*f) = 74.6627
df = 9
1%水準で有意
作成する表の例、この場合は4*4*4の64通り(実際のデータではない)
r | s | f | fre |
1 | 1 | 1 | 173 |
1 | 1 | 2 | 3 |
1 | 1 | 3 | 3 |
1 | 1 | 4 | 6 |
1 | 2 | 1 | 57 |
1 | 2 | 2 | 3 |
1 | 2 | 3 | 1 |
1 | 2 | 4 | 6 |
1 | 3 | 1 | 4 |