September 10, 2014

Stataでお遊び

ちなみに英語圏では「すたーた」らしい。

今日扱ったコマンド、備忘録として。

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

No comments:

Post a Comment