本章で使用する東大社研・若年パネル調査(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)