本章で使用する東大社研・若年パネル調査(JLPS-Y)wave1のオープンデータ(u001)は以下のURLで公開されていますので、取得してください。
https://csrda.iss.u-tokyo.ac.jp/infrastructure/urd/
分析結果の解釈については、書籍をご参照ください。以下はWindows10、R version 4.2.1で実行しています。
データを読み込むにあたって、作業場所の指定とそこにデータが置いてあることが前提になります。 R本体を操作している場合は、「ファイル」→「ディレクトリの変更」でデータの置いてある場所を指定するのが簡単です。 RStudioを操作している場合は、例えばデスクトップの「R」という名前のフォルダにデータがあるとすると
setwd("C:/Users/ユーザー名/Desktop/R")
を最初に実行するのがよいでしょう。ユーザー名は各自異なるので注意です。
使用するデータを読み込み、表示します。なお、R version 4.1以前で読み込む際には
data1 <- read.csv("ファイル名.csv", fileEncoding = "UTF-8-BOM")
のように、エンコードのオプションを指定する必要があります。version 4.2以降では必要ありませんので、以下ではオプションを指定していません。
data1 <- read.csv("u001.csv")
本章で使用するパッケージを読み込みますが、パッケージはインストールしておく必要があります。 以下のようにコマンドでインストールするか、RやRStudioからクリックでインストールすることもできます。
install.packages(“stargazer”, dependencies = TRUE)
パッケージの機能が使えるように読み込みます。
library(dplyr)
##
## 次のパッケージを付け加えます: 'dplyr'
## 以下のオブジェクトは 'package:stats' からマスクされています:
##
## filter, lag
## 以下のオブジェクトは 'package:base' からマスクされています:
##
## intersect, setdiff, setequal, union
library(psych)
library(car)
## 要求されたパッケージ carData をロード中です
##
## 次のパッケージを付け加えます: 'car'
## 以下のオブジェクトは 'package:psych' からマスクされています:
##
## logit
## 以下のオブジェクトは 'package:dplyr' からマスクされています:
##
## recode
library(stargazer)
##
## Please cite as:
## Hlavac, Marek (2022). stargazer: Well-Formatted Regression and Summary Statistics Tables.
## R package version 5.2.3. https://CRAN.R-project.org/package=stargazer
使用する変数の準備します。
data1 <- data1 %>% mutate(
ZQ26Ar=recode(ZQ26A,'9=NA'),
ZQ26Br=recode(ZQ26B,'9=NA'),
ZQ26Cr=recode(ZQ26C,'1=5;2=4;3=3;4=2;5=1;9=NA'),
ZQ26Dr=recode(ZQ26D,'9=NA'),
ZQ26Er=recode(ZQ26E,'1=5;2=4;3=3;4=2;5=1;9=NA'),
mhi_5=ZQ26Ar+ZQ26Br+ZQ26Cr+ZQ26Dr+ZQ26Er,
mhi5=(mhi_5-5)/20*100,
age=ifelse(mbirth<=4,2007-ybirth,2007-ybirth-1),
agecl=as.factor(recode(age,'20:24=1;25:29=2;30:35=3')),
wtyp=as.factor(recode(JC_1,'1:2=1;3:8=2;10=3;11:99=NA')),
fem=recode(sex,'1=0;2=1'),
mar=recode(ZQ50,'2=1;1=0;3:4=0'),
ZQ23Ar=recode(ZQ23A,'1:2=1;3:4=2;5:6=3;7:9=NA'),
edu=as.factor(ifelse(ZQ24<=2, ZQ23Ar, NA)))
リコードの結果を、配偶状態以外についてクロス表で確認します。
精神的健康
table(data1$ZQ26A, data1$ZQ26Ar, useNA = "ifany")
##
## 1 2 3 4 5 <NA>
## 1 30 0 0 0 0 0
## 2 0 114 0 0 0 0
## 3 0 0 333 0 0 0
## 4 0 0 0 264 0 0
## 5 0 0 0 0 247 0
## 9 0 0 0 0 0 12
table(data1$ZQ26B, data1$ZQ26Br, useNA = "ifany")
##
## 1 2 3 4 5 <NA>
## 1 29 0 0 0 0 0
## 2 0 63 0 0 0 0
## 3 0 0 266 0 0 0
## 4 0 0 0 291 0 0
## 5 0 0 0 0 340 0
## 9 0 0 0 0 0 11
table(data1$ZQ26C, data1$ZQ26Cr, useNA = "ifany")
##
## 1 2 3 4 5 <NA>
## 1 0 0 0 0 47 0
## 2 0 0 0 407 0 0
## 3 0 0 345 0 0 0
## 4 0 144 0 0 0 0
## 5 46 0 0 0 0 0
## 9 0 0 0 0 0 11
table(data1$ZQ26D, data1$ZQ26Dr, useNA = "ifany")
##
## 1 2 3 4 5 <NA>
## 1 27 0 0 0 0 0
## 2 0 74 0 0 0 0
## 3 0 0 318 0 0 0
## 4 0 0 0 359 0 0
## 5 0 0 0 0 210 0
## 9 0 0 0 0 0 12
table(data1$ZQ26E, data1$ZQ26Er, useNA = "ifany")
##
## 1 2 3 4 5 <NA>
## 1 0 0 0 0 78 0
## 2 0 0 0 321 0 0
## 3 0 0 453 0 0 0
## 4 0 106 0 0 0 0
## 5 30 0 0 0 0 0
## 9 0 0 0 0 0 12
年齢
table(data1$age, data1$agecl, useNA = "ifany")
##
## 1 2 3
## 20 48 0 0
## 21 68 0 0
## 22 65 0 0
## 23 62 0 0
## 24 56 0 0
## 25 0 62 0
## 26 0 58 0
## 27 0 48 0
## 28 0 50 0
## 29 0 79 0
## 30 0 0 68
## 31 0 0 78
## 32 0 0 75
## 33 0 0 81
## 34 0 0 84
## 35 0 0 18
現在の仕事
table(data1$JC_1, data1$wtyp, useNA = "ifany")
##
## 1 2 3 <NA>
## 1 7 0 0 0
## 2 489 0 0 0
## 3 0 150 0 0
## 4 0 31 0 0
## 5 0 5 0 0
## 6 0 18 0 0
## 7 0 24 0 0
## 8 0 6 0 0
## 10 0 0 126 0
## 11 0 0 0 48
## 12 0 0 0 92
## 99 0 0 0 4
性別
table(data1$sex, data1$fem, useNA = "ifany")
##
## 0 1
## 1 499 0
## 2 0 501
学歴
table(data1$ZQ23A, data1$ZQ23Ar, useNA = "ifany")
##
## 1 2 3 <NA>
## 1 14 0 0 0
## 2 241 0 0 0
## 3 0 191 0 0
## 4 0 131 0 0
## 5 0 0 368 0
## 6 0 0 44 0
## 7 0 0 0 2
## 9 0 0 0 9
table(data1$edu, data1$ZQ24, useNA = "ifany")
##
## 1 2 3 9
## 1 220 26 0 0
## 2 278 15 0 0
## 3 271 22 0 0
## <NA> 3 0 144 21
table(data1$edu, data1$ZQ23Ar, useNA = "ifany")
##
## 1 2 3 <NA>
## 1 246 0 0 0
## 2 0 293 0 0
## 3 0 0 293 0
## <NA> 9 29 119 11
表11-1 クロス表でリコード結果の確認
table(data1$ZQ50, data1$mar)
##
## 0 1
## 1 637 0
## 2 0 345
## 4 18 0
表11-2は最後に示します。
(11.2)式の推定を行います。
reg1 <- lm(mhi5~age+fem+mar+edu+wtyp,data=data1)
summary(reg1)
##
## Call:
## lm(formula = mhi5 ~ age + fem + mar + edu + wtyp, data = data1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -56.061 -11.376 1.323 13.280 39.305
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 67.3845 5.1162 13.171 < 2e-16 ***
## age -0.2206 0.1773 -1.244 0.2138
## fem -2.8004 1.3927 -2.011 0.0447 *
## mar 6.8258 1.4563 4.687 3.25e-06 ***
## edu2 1.9664 1.6004 1.229 0.2195
## edu3 1.0309 1.5942 0.647 0.5181
## wtyp2 0.6311 1.5163 0.416 0.6773
## wtyp3 -2.0602 1.9447 -1.059 0.2897
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 17.93 on 811 degrees of freedom
## ( 181 個の観測値が欠損のため削除されました )
## Multiple R-squared: 0.03195, Adjusted R-squared: 0.02359
## F-statistic: 3.824 on 7 and 811 DF, p-value: 0.0004247
stargazer(reg1, type="text", keep.stat=c("n","rsq","adj.rsq"))
##
## ========================================
## Dependent variable:
## ---------------------------
## mhi5
## ----------------------------------------
## age -0.221
## (0.177)
##
## fem -2.800**
## (1.393)
##
## mar 6.826***
## (1.456)
##
## edu2 1.966
## (1.600)
##
## edu3 1.031
## (1.594)
##
## wtyp2 0.631
## (1.516)
##
## wtyp3 -2.060
## (1.945)
##
## Constant 67.385***
## (5.116)
##
## ----------------------------------------
## Observations 819
## R2 0.032
## Adjusted R2 0.024
## ========================================
## Note: *p<0.1; **p<0.05; ***p<0.01
後で行う記述統計の計算のために、推定に使用した対象をマークします。
data1$used <- TRUE;
data1$used[na.action(reg1)] <- FALSE;
table(data1$used)
##
## FALSE TRUE
## 181 819
年齢の非線形な関係を考慮した推定を行います。
reg2 <- lm(mhi5~age+I(age^2)+fem+mar+edu+wtyp,data=data1)
summary(reg2)
##
## Call:
## lm(formula = mhi5 ~ age + I(age^2) + fem + mar + edu + wtyp,
## data = data1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -55.899 -10.969 1.148 13.271 40.813
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 33.92767 32.80500 1.034 0.3013
## age 2.22154 2.37187 0.937 0.3492
## I(age^2) -0.04350 0.04213 -1.033 0.3021
## fem -2.82765 1.39288 -2.030 0.0427 *
## mar 6.82091 1.45622 4.684 3.3e-06 ***
## edu2 1.87923 1.60253 1.173 0.2413
## edu3 0.79524 1.61044 0.494 0.6216
## wtyp2 0.68632 1.51714 0.452 0.6511
## wtyp3 -2.08405 1.94475 -1.072 0.2842
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 17.93 on 810 degrees of freedom
## ( 181 個の観測値が欠損のため削除されました )
## Multiple R-squared: 0.03322, Adjusted R-squared: 0.02367
## F-statistic: 3.479 on 8 and 810 DF, p-value: 0.0005869
reg3 <- lm(mhi5~agecl+fem+mar+edu+wtyp,data=data1)
summary(reg3)
##
## Call:
## lm(formula = mhi5 ~ agecl + fem + mar + edu + wtyp, data = data1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -54.975 -11.027 0.982 13.300 39.614
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 61.0993 1.9687 31.035 < 2e-16 ***
## agecl2 1.4371 1.8428 0.780 0.4357
## agecl3 -1.0422 1.8827 -0.554 0.5800
## fem -2.6611 1.3917 -1.912 0.0562 .
## mar 6.6432 1.4385 4.618 4.5e-06 ***
## edu2 1.9479 1.5998 1.218 0.2237
## edu3 0.8445 1.5947 0.530 0.5966
## wtyp2 0.6811 1.5167 0.449 0.6535
## wtyp3 -1.9685 1.9467 -1.011 0.3122
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 17.93 on 810 degrees of freedom
## ( 181 個の観測値が欠損のため削除されました )
## Multiple R-squared: 0.03353, Adjusted R-squared: 0.02398
## F-statistic: 3.513 on 8 and 810 DF, p-value: 0.0005291
表11-3 精神的健康と年齢の非線形な関係を考慮した推定
stargazer(reg1, reg2, reg3, type="text",star.cutoffs=c(0.1,0.05,0.01), keep.stat=c("n","rsq","adj.rsq"))
##
## ==========================================
## Dependent variable:
## -----------------------------
## mhi5
## (1) (2) (3)
## ------------------------------------------
## age -0.221 2.222
## (0.177) (2.372)
##
## I(age2) -0.044
## (0.042)
##
## agecl2 1.437
## (1.843)
##
## agecl3 -1.042
## (1.883)
##
## fem -2.800** -2.828** -2.661*
## (1.393) (1.393) (1.392)
##
## mar 6.826*** 6.821*** 6.643***
## (1.456) (1.456) (1.439)
##
## edu2 1.966 1.879 1.948
## (1.600) (1.603) (1.600)
##
## edu3 1.031 0.795 0.845
## (1.594) (1.610) (1.595)
##
## wtyp2 0.631 0.686 0.681
## (1.516) (1.517) (1.517)
##
## wtyp3 -2.060 -2.084 -1.969
## (1.945) (1.945) (1.947)
##
## Constant 67.385*** 33.928 61.099***
## (5.116) (32.805) (1.969)
##
## ------------------------------------------
## Observations 819 819 819
## R2 0.032 0.033 0.034
## Adjusted R2 0.024 0.024 0.024
## ==========================================
## Note: *p<0.1; **p<0.05; ***p<0.01
男女別の推定を行います。
reg1m <- lm(mhi5~age+mar+edu+wtyp,data=data1, subset=fem==0)
summary(reg1m)
##
## Call:
## lm(formula = mhi5 ~ age + mar + edu + wtyp, data = data1, subset = fem ==
## 0)
##
## Residuals:
## Min 1Q Median 3Q Max
## -48.675 -10.342 1.862 12.496 38.411
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 64.38091 7.09213 9.078 < 2e-16 ***
## age -0.02613 0.24427 -0.107 0.91485
## mar 5.06139 1.98223 2.553 0.01105 *
## edu2 -0.58987 2.44346 -0.241 0.80937
## edu3 -1.23283 2.01657 -0.611 0.54132
## wtyp2 1.65809 2.24356 0.739 0.46032
## wtyp3 -11.65369 3.73703 -3.118 0.00195 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 17.24 on 390 degrees of freedom
## ( 102 個の観測値が欠損のため削除されました )
## Multiple R-squared: 0.05451, Adjusted R-squared: 0.03997
## F-statistic: 3.748 on 6 and 390 DF, p-value: 0.001225
reg1f <- lm(mhi5~age+mar+edu+wtyp,data=data1, subset=fem==1)
summary(reg1f)
##
## Call:
## lm(formula = mhi5 ~ age + mar + edu + wtyp, data = data1, subset = fem ==
## 1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -52.654 -11.989 2.098 13.699 38.673
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 66.9524 7.0272 9.528 <2e-16 ***
## age -0.3944 0.2559 -1.541 0.1240
## mar 6.8733 2.3177 2.966 0.0032 **
## edu2 3.9836 2.1540 1.849 0.0651 .
## edu3 4.2975 2.5395 1.692 0.0914 .
## wtyp2 0.6453 2.1174 0.305 0.7607
## wtyp3 1.1512 2.6191 0.440 0.6605
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 18.41 on 415 degrees of freedom
## ( 79 個の観測値が欠損のため削除されました )
## Multiple R-squared: 0.03554, Adjusted R-squared: 0.0216
## F-statistic: 2.549 on 6 and 415 DF, p-value: 0.01956
表11-4 男女別の推定結果
stargazer(reg1m, reg1f, type="text",star.cutoffs=c(0.1,0.05,0.01), keep.stat = c("n","rsq","adj.rsq"))
##
## =========================================
## Dependent variable:
## ----------------------------
## mhi5
## (1) (2)
## -----------------------------------------
## age -0.026 -0.394
## (0.244) (0.256)
##
## mar 5.061** 6.873***
## (1.982) (2.318)
##
## edu2 -0.590 3.984*
## (2.443) (2.154)
##
## edu3 -1.233 4.297*
## (2.017) (2.540)
##
## wtyp2 1.658 0.645
## (2.244) (2.117)
##
## wtyp3 -11.654*** 1.151
## (3.737) (2.619)
##
## Constant 64.381*** 66.952***
## (7.092) (7.027)
##
## -----------------------------------------
## Observations 397 422
## R2 0.055 0.036
## Adjusted R2 0.040 0.022
## =========================================
## Note: *p<0.1; **p<0.05; ***p<0.01
(11.3)式の推定を行います。
reg4 <- lm(mhi5~age+fem*mar+edu+wtyp,data=data1)
summary(reg4)
##
## Call:
## lm(formula = mhi5 ~ age + fem * mar + edu + wtyp, data = data1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -56.024 -11.431 1.373 13.205 39.132
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 67.6796 5.2030 13.008 < 2e-16 ***
## age -0.2244 0.1778 -1.262 0.20727
## fem -3.1077 1.6972 -1.831 0.06746 .
## mar 6.4119 1.9562 3.278 0.00109 **
## edu2 1.9647 1.6013 1.227 0.22019
## edu3 1.0433 1.5956 0.654 0.51339
## wtyp2 0.5531 1.5369 0.360 0.71903
## wtyp3 -2.3130 2.1027 -1.100 0.27165
## fem:mar 0.8803 2.7758 0.317 0.75123
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 17.94 on 810 degrees of freedom
## ( 181 個の観測値が欠損のため削除されました )
## Multiple R-squared: 0.03207, Adjusted R-squared: 0.02251
## F-statistic: 3.355 on 8 and 810 DF, p-value: 0.0008625
性別と配偶状態の組み合わせダミーを作成します。
data1 <- data1 %>% mutate(
femsin=case_when(fem==1 & mar==0 ~ 1, fem!=1 | mar!=0 ~ 0),
femmar=case_when(fem==1 & mar==1 ~ 1, fem!=1 | mar!=1 ~ 0),
malsin=case_when(fem==0 & mar==0 ~ 1, fem!=0 | mar!=0 ~ 0),
malmar=case_when(fem==0 & mar==1 ~ 1, fem!=0 | mar!=1 ~ 0),)
女性無配偶(femsin)、女性有配偶(femmar)、男性無配偶(malsin)、男性有配偶(malmar)となっています。
組み合わせダミーがうまくできているか確認します。
table(data1$femsin,data1$fem,useNA="ifany")
##
## 0 1
## 0 499 189
## 1 0 312
table(data1$femsin,data1$mar,useNA="ifany")
##
## 0 1
## 0 343 345
## 1 312 0
table(data1$femmar,data1$fem,useNA="ifany")
##
## 0 1
## 0 499 312
## 1 0 189
table(data1$femmar,data1$mar,useNA="ifany")
##
## 0 1
## 0 655 156
## 1 0 189
table(data1$malsin,data1$fem,useNA="ifany")
##
## 0 1
## 0 156 501
## 1 343 0
table(data1$malsin,data1$mar,useNA="ifany")
##
## 0 1
## 0 312 345
## 1 343 0
table(data1$malmar,data1$fem,useNA="ifany")
##
## 0 1
## 0 343 501
## 1 156 0
table(data1$malmar,data1$mar,useNA="ifany")
##
## 0 1
## 0 655 189
## 1 0 156
表11-5 性別と配偶状態を組み合わせて作成したダミー変数
attach(data1)
data4 <- data.frame(caseid,fem,mar,femmar,femsin,malmar,malsin)
head(data4,n=10)
## caseid fem mar femmar femsin malmar malsin
## 1 10001 0 1 0 0 1 0
## 2 10002 0 1 0 0 1 0
## 3 10003 0 1 0 0 1 0
## 4 10004 1 1 1 0 0 0
## 5 10005 0 0 0 0 0 1
## 6 10006 0 0 0 0 0 1
## 7 10007 1 1 1 0 0 0
## 8 10008 0 1 0 0 1 0
## 9 10009 1 0 0 1 0 0
## 10 10010 0 0 0 0 0 1
(11.4)式の推定を行います。
reg5 <- lm(mhi5~age+femmar+femsin+malmar+edu+wtyp,data=data1)
summary(reg5)
##
## Call:
## lm(formula = mhi5 ~ age + femmar + femsin + malmar + edu + wtyp,
## data = data1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -56.024 -11.431 1.373 13.205 39.132
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 67.6796 5.2030 13.008 < 2e-16 ***
## age -0.2244 0.1778 -1.262 0.20727
## femmar 4.1844 2.0118 2.080 0.03784 *
## femsin -3.1077 1.6972 -1.831 0.06746 .
## malmar 6.4119 1.9562 3.278 0.00109 **
## edu2 1.9647 1.6013 1.227 0.22019
## edu3 1.0433 1.5956 0.654 0.51339
## wtyp2 0.5531 1.5369 0.360 0.71903
## wtyp3 -2.3130 2.1027 -1.100 0.27165
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 17.94 on 810 degrees of freedom
## ( 181 個の観測値が欠損のため削除されました )
## Multiple R-squared: 0.03207, Adjusted R-squared: 0.02251
## F-statistic: 3.355 on 8 and 810 DF, p-value: 0.0008625
表11-6 性別と配偶状態の組み合わせを交差項および定数項ダミーで推定した結果の比較
stargazer(reg4, reg5, type="text",star.cutoffs=c(0.1,0.05,0.01), keep.stat=c("n","rsq","adj.rsq"))
##
## =========================================
## Dependent variable:
## ----------------------------
## mhi5
## (1) (2)
## -----------------------------------------
## age -0.224 -0.224
## (0.178) (0.178)
##
## fem -3.108*
## (1.697)
##
## mar 6.412***
## (1.956)
##
## femmar 4.184**
## (2.012)
##
## femsin -3.108*
## (1.697)
##
## malmar 6.412***
## (1.956)
##
## edu2 1.965 1.965
## (1.601) (1.601)
##
## edu3 1.043 1.043
## (1.596) (1.596)
##
## wtyp2 0.553 0.553
## (1.537) (1.537)
##
## wtyp3 -2.313 -2.313
## (2.103) (2.103)
##
## fem:mar 0.880
## (2.776)
##
## Constant 67.680*** 67.680***
## (5.203) (5.203)
##
## -----------------------------------------
## Observations 819 819
## R2 0.032 0.032
## Adjusted R2 0.023 0.023
## =========================================
## Note: *p<0.1; **p<0.05; ***p<0.01
性別・配偶状態ダミーのベースを変えた推定を行います。
reg6 <- lm(mhi5~age+femmar+femsin+malsin+edu+wtyp,data=data1)
reg7 <- lm(mhi5~age+femmar+malsin+malmar+edu+wtyp,data=data1)
reg8 <- lm(mhi5~age+femsin+malmar+malsin+edu+wtyp,data=data1)
表11-7 性別・有配偶ダミーのベースカテゴリーを変えて推定した結果の比較
stargazer(reg5, reg6, reg7, reg8, type="text",star.cutoffs=c(0.1,0.05,0.01),keep.stat=c("n","rsq","adj.rsq"))
##
## ====================================================
## Dependent variable:
## ---------------------------------------
## mhi5
## (1) (2) (3) (4)
## ----------------------------------------------------
## age -0.224 -0.224 -0.224 -0.224
## (0.178) (0.178) (0.178) (0.178)
##
## femmar 4.184** -2.227 7.292***
## (2.012) (2.282) (2.070)
##
## femsin -3.108* -9.520*** -7.292***
## (1.697) (2.109) (2.070)
##
## malmar 6.412*** 9.520*** 2.227
## (1.956) (2.109) (2.282)
##
## malsin -6.412*** 3.108* -4.184**
## (1.956) (1.697) (2.012)
##
## edu2 1.965 1.965 1.965 1.965
## (1.601) (1.601) (1.601) (1.601)
##
## edu3 1.043 1.043 1.043 1.043
## (1.596) (1.596) (1.596) (1.596)
##
## wtyp2 0.553 0.553 0.553 0.553
## (1.537) (1.537) (1.537) (1.537)
##
## wtyp3 -2.313 -2.313 -2.313 -2.313
## (2.103) (2.103) (2.103) (2.103)
##
## Constant 67.680*** 74.091*** 64.572*** 71.864***
## (5.203) (5.752) (4.987) (5.778)
##
## ----------------------------------------------------
## Observations 819 819 819 819
## R2 0.032 0.032 0.032 0.032
## Adjusted R2 0.023 0.023 0.023 0.023
## ====================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
記述統計のための準備をします。
パッケージdummiesがない場合は以下のようにダミー変数を作成します。
data1$agecl1 <- as.integer(data1$agecl=="1")
data1$agecl2 <- as.integer(data1$agecl=="2")
data1$agecl3 <- as.integer(data1$agecl=="3")
data1$edu1 <- as.integer(data1$edu=="1")
data1$edu2 <- as.integer(data1$edu=="2")
data1$edu3 <- as.integer(data1$edu=="3")
data1$wtyp1 <- as.integer(data1$wtyp=="1")
data1$wtyp2 <- as.integer(data1$wtyp=="2")
data1$wtyp3 <- as.integer(data1$wtyp=="3")
data2 <- subset(data1,used=='TRUE',c(mhi5,age,agecl1,agecl2,agecl3,fem,mar,edu1,edu2,edu3,wtyp1,wtyp2,wtyp3))
表11-2 推定に使用する対象の記述統計
describe(data2, fast=TRUE)
## vars n mean sd min max range se
## mhi5 1 819 63.33 18.15 5 100 95 0.63
## age 2 819 28.69 3.96 20 35 15 0.14
## agecl1 3 819 0.19 0.39 0 1 1 0.01
## agecl2 4 819 0.34 0.48 0 1 1 0.02
## agecl3 5 819 0.47 0.50 0 1 1 0.02
## fem 6 819 0.52 0.50 0 1 1 0.02
## mar 7 819 0.41 0.49 0 1 1 0.02
## edu1 8 819 0.29 0.46 0 1 1 0.02
## edu2 9 819 0.35 0.48 0 1 1 0.02
## edu3 10 819 0.36 0.48 0 1 1 0.02
## wtyp1 11 819 0.58 0.49 0 1 1 0.02
## wtyp2 12 819 0.27 0.44 0 1 1 0.02
## wtyp3 13 819 0.15 0.36 0 1 1 0.01
describe(data2~fem, fast=TRUE)
##
## Descriptive statistics by group
## group: 0
## vars n mean sd min max range se
## mhi5 1 397 64.46 17.59 5 100 95 0.88
## age 2 397 29.17 3.84 20 35 15 0.19
## agecl1 3 397 0.14 0.35 0 1 1 0.02
## agecl2 4 397 0.36 0.48 0 1 1 0.02
## agecl3 5 397 0.50 0.50 0 1 1 0.03
## fem 6 397 0.00 0.00 0 0 0 0.00
## mar 7 397 0.38 0.49 0 1 1 0.02
## edu1 8 397 0.31 0.46 0 1 1 0.02
## edu2 9 397 0.21 0.41 0 1 1 0.02
## edu3 10 397 0.48 0.50 0 1 1 0.03
## wtyp1 11 397 0.74 0.44 0 1 1 0.02
## wtyp2 12 397 0.20 0.40 0 1 1 0.02
## wtyp3 13 397 0.06 0.24 0 1 1 0.01
## ------------------------------------------------------------
## group: 1
## vars n mean sd min max range se
## mhi5 1 422 62.26 18.61 5 100 95 0.91
## age 2 422 28.23 4.02 20 35 15 0.20
## agecl1 3 422 0.23 0.42 0 1 1 0.02
## agecl2 4 422 0.33 0.47 0 1 1 0.02
## agecl3 5 422 0.44 0.50 0 1 1 0.02
## fem 6 422 1.00 0.00 1 1 0 0.00
## mar 7 422 0.44 0.50 0 1 1 0.02
## edu1 8 422 0.28 0.45 0 1 1 0.02
## edu2 9 422 0.48 0.50 0 1 1 0.02
## edu3 10 422 0.24 0.43 0 1 1 0.02
## wtyp1 11 422 0.43 0.50 0 1 1 0.02
## wtyp2 12 422 0.33 0.47 0 1 1 0.02
## wtyp3 13 422 0.24 0.43 0 1 1 0.02
付録
パッケージdummiesがある場合は以下のように実行します。
library(dummies)
data1 <- dummy.data.frame(data1, names = c("edu") , sep = ".", all = TRUE)
data1 <- dummy.data.frame(data1, names = c("agecl") , sep = ".", all = TRUE)
data1 <- dummy.data.frame(data1, names = c("wtyp") , sep = ".", all = TRUE)
data3 <- subset(data1,used=='TRUE',c(mhi5,age,agecl.1,agecl.2,agecl.3,fem,mar,edu.1,edu.2,edu.3,wtyp.1,wtyp.2,wtyp.3))
表11-2
describe(data3, fast=TRUE)
describe(data3~fem, fast=TRUE)