分析結果の解釈については、書籍をご参照ください。以下は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以降では必要ありませんので、以下ではオプションを指定していません。

表8-1 ワイド形式のパネルデータ

data2 <- read.csv("ch8_wide.csv")
data2
##      pref flp80 tfr80 flp00 tfr00
## 1  北海道  47.1  1.64  57.4  1.23
## 2    青森  53.5  1.85  61.2  1.47
## 3    岩手  59.2  1.95  63.4  1.56
## 4    宮城  53.3  1.86  59.2  1.39
## 5    秋田  59.1  1.79  64.6  1.45
## 6    山形  67.0  1.93  68.2  1.62
## 7    福島  60.1  1.99  62.4  1.65
## 8    茨城  50.7  1.87  56.8  1.47
## 9    栃木  54.9  1.86  59.5  1.48
## 10   群馬  53.7  1.81  59.2  1.51
## 11   埼玉  44.5  1.73  54.9  1.30
## 12   千葉  43.9  1.74  55.3  1.30
## 13   東京  49.4  1.44  57.6  1.07
## 14 神奈川  41.9  1.70  54.2  1.28
## 15   新潟  63.5  1.88  65.4  1.51
## 16   富山  62.4  1.77  66.7  1.45
## 17   石川  61.8  1.87  65.5  1.45
## 18   福井  66.3  1.93  66.4  1.60
## 19   山梨  54.2  1.76  58.9  1.51
## 20   長野  61.1  1.89  62.8  1.59
## 21   岐阜  56.0  1.80  60.7  1.47
## 22   静岡  54.8  1.80  61.1  1.47
## 23   愛知  51.0  1.81  58.2  1.44
## 24   三重  52.0  1.82  59.4  1.48
## 25   滋賀  51.8  1.96  57.1  1.53
## 26   京都  47.9  1.67  55.3  1.28
## 27   大阪  44.1  1.67  53.6  1.31
## 28   兵庫  43.2  1.76  53.4  1.38
## 29   奈良  39.1  1.70  50.3  1.30
## 30 和歌山  46.2  1.80  54.7  1.45
## 31   鳥取  62.6  1.93  65.6  1.62
## 32   島根  61.9  2.01  65.5  1.65
## 33   岡山  52.2  1.86  58.7  1.51
## 34   広島  49.8  1.84  58.2  1.41
## 35   山口  48.9  1.79  58.6  1.47
## 36   徳島  54.5  1.76  58.0  1.45
## 37   香川  54.7  1.82  60.7  1.53
## 38   愛媛  50.5  1.79  57.8  1.45
## 39   高知  57.8  1.64  63.6  1.45
## 40   福岡  48.2  1.74  57.6  1.36
## 41   佐賀  59.0  1.93  62.7  1.67
## 42   長崎  50.7  1.87  59.6  1.57
## 43   熊本  57.5  1.83  62.4  1.56
## 44   大分  51.6  1.82  59.6  1.51
## 45   宮崎  57.7  1.93  62.9  1.62
## 46 鹿児島  50.8  1.95  58.7  1.58
## 47   沖縄  46.4  2.38  56.5  1.82

女性労働力率(flp)、合計特殊出生率(tfr)となっています。

表8-2 ロング形式のパネルデータ

data1 <- read.csv("ch8_long.csv")
data1
##      pref  flp  tfr year
## 1  北海道 47.1 1.64 1980
## 2    青森 53.5 1.85 1980
## 3    岩手 59.2 1.95 1980
## 4    宮城 53.3 1.86 1980
## 5    秋田 59.1 1.79 1980
## 6    山形 67.0 1.93 1980
## 7    福島 60.1 1.99 1980
## 8    茨城 50.7 1.87 1980
## 9    栃木 54.9 1.86 1980
## 10   群馬 53.7 1.81 1980
## 11   埼玉 44.5 1.73 1980
## 12   千葉 43.9 1.74 1980
## 13   東京 49.4 1.44 1980
## 14 神奈川 41.9 1.70 1980
## 15   新潟 63.5 1.88 1980
## 16   富山 62.4 1.77 1980
## 17   石川 61.8 1.87 1980
## 18   福井 66.3 1.93 1980
## 19   山梨 54.2 1.76 1980
## 20   長野 61.1 1.89 1980
## 21   岐阜 56.0 1.80 1980
## 22   静岡 54.8 1.80 1980
## 23   愛知 51.0 1.81 1980
## 24   三重 52.0 1.82 1980
## 25   滋賀 51.8 1.96 1980
## 26   京都 47.9 1.67 1980
## 27   大阪 44.1 1.67 1980
## 28   兵庫 43.2 1.76 1980
## 29   奈良 39.1 1.70 1980
## 30 和歌山 46.2 1.80 1980
## 31   鳥取 62.6 1.93 1980
## 32   島根 61.9 2.01 1980
## 33   岡山 52.2 1.86 1980
## 34   広島 49.8 1.84 1980
## 35   山口 48.9 1.79 1980
## 36   徳島 54.5 1.76 1980
## 37   香川 54.7 1.82 1980
## 38   愛媛 50.5 1.79 1980
## 39   高知 57.8 1.64 1980
## 40   福岡 48.2 1.74 1980
## 41   佐賀 59.0 1.93 1980
## 42   長崎 50.7 1.87 1980
## 43   熊本 57.5 1.83 1980
## 44   大分 51.6 1.82 1980
## 45   宮崎 57.7 1.93 1980
## 46 鹿児島 50.8 1.95 1980
## 47   沖縄 46.4 2.38 1980
## 48 北海道 57.4 1.23 2000
## 49   青森 61.2 1.47 2000
## 50   岩手 63.4 1.56 2000
## 51   宮城 59.2 1.39 2000
## 52   秋田 64.6 1.45 2000
## 53   山形 68.2 1.62 2000
## 54   福島 62.4 1.65 2000
## 55   茨城 56.8 1.47 2000
## 56   栃木 59.5 1.48 2000
## 57   群馬 59.2 1.51 2000
## 58   埼玉 54.9 1.30 2000
## 59   千葉 55.3 1.30 2000
## 60   東京 57.6 1.07 2000
## 61 神奈川 54.2 1.28 2000
## 62   新潟 65.4 1.51 2000
## 63   富山 66.7 1.45 2000
## 64   石川 65.5 1.45 2000
## 65   福井 66.4 1.60 2000
## 66   山梨 58.9 1.51 2000
## 67   長野 62.8 1.59 2000
## 68   岐阜 60.7 1.47 2000
## 69   静岡 61.1 1.47 2000
## 70   愛知 58.2 1.44 2000
## 71   三重 59.4 1.48 2000
## 72   滋賀 57.1 1.53 2000
## 73   京都 55.3 1.28 2000
## 74   大阪 53.6 1.31 2000
## 75   兵庫 53.4 1.38 2000
## 76   奈良 50.3 1.30 2000
## 77 和歌山 54.7 1.45 2000
## 78   鳥取 65.6 1.62 2000
## 79   島根 65.5 1.65 2000
## 80   岡山 58.7 1.51 2000
## 81   広島 58.2 1.41 2000
## 82   山口 58.6 1.47 2000
## 83   徳島 58.0 1.45 2000
## 84   香川 60.7 1.53 2000
## 85   愛媛 57.8 1.45 2000
## 86   高知 63.6 1.45 2000
## 87   福岡 57.6 1.36 2000
## 88   佐賀 62.7 1.67 2000
## 89   長崎 59.6 1.57 2000
## 90   熊本 62.4 1.56 2000
## 91   大分 59.6 1.51 2000
## 92   宮崎 62.9 1.62 2000
## 93 鹿児島 58.7 1.58 2000
## 94   沖縄 56.5 1.82 2000

本章で使用するパッケージを読み込みますが、パッケージはインストールしておく必要があります。 以下のようにコマンドでインストールするか、RやRStudioからクリックでインストールすることもできます。

install.packages(“stargazer”, dependencies = TRUE)

パッケージの機能が使えるように読み込みます。

library(ggplot2)
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

年ごとに異なるマーカーで散布図を示すために、データ年の変数(year)を因子(as.factor)として保存します。 2000年ダミー(y2000)を作成し、整数として(as.integer)として保存します。

data1$year <- as.factor(data1$year)
data1$y2000 <- as.integer(data1$year==2000)
data1
##      pref  flp  tfr year y2000
## 1  北海道 47.1 1.64 1980     0
## 2    青森 53.5 1.85 1980     0
## 3    岩手 59.2 1.95 1980     0
## 4    宮城 53.3 1.86 1980     0
## 5    秋田 59.1 1.79 1980     0
## 6    山形 67.0 1.93 1980     0
## 7    福島 60.1 1.99 1980     0
## 8    茨城 50.7 1.87 1980     0
## 9    栃木 54.9 1.86 1980     0
## 10   群馬 53.7 1.81 1980     0
## 11   埼玉 44.5 1.73 1980     0
## 12   千葉 43.9 1.74 1980     0
## 13   東京 49.4 1.44 1980     0
## 14 神奈川 41.9 1.70 1980     0
## 15   新潟 63.5 1.88 1980     0
## 16   富山 62.4 1.77 1980     0
## 17   石川 61.8 1.87 1980     0
## 18   福井 66.3 1.93 1980     0
## 19   山梨 54.2 1.76 1980     0
## 20   長野 61.1 1.89 1980     0
## 21   岐阜 56.0 1.80 1980     0
## 22   静岡 54.8 1.80 1980     0
## 23   愛知 51.0 1.81 1980     0
## 24   三重 52.0 1.82 1980     0
## 25   滋賀 51.8 1.96 1980     0
## 26   京都 47.9 1.67 1980     0
## 27   大阪 44.1 1.67 1980     0
## 28   兵庫 43.2 1.76 1980     0
## 29   奈良 39.1 1.70 1980     0
## 30 和歌山 46.2 1.80 1980     0
## 31   鳥取 62.6 1.93 1980     0
## 32   島根 61.9 2.01 1980     0
## 33   岡山 52.2 1.86 1980     0
## 34   広島 49.8 1.84 1980     0
## 35   山口 48.9 1.79 1980     0
## 36   徳島 54.5 1.76 1980     0
## 37   香川 54.7 1.82 1980     0
## 38   愛媛 50.5 1.79 1980     0
## 39   高知 57.8 1.64 1980     0
## 40   福岡 48.2 1.74 1980     0
## 41   佐賀 59.0 1.93 1980     0
## 42   長崎 50.7 1.87 1980     0
## 43   熊本 57.5 1.83 1980     0
## 44   大分 51.6 1.82 1980     0
## 45   宮崎 57.7 1.93 1980     0
## 46 鹿児島 50.8 1.95 1980     0
## 47   沖縄 46.4 2.38 1980     0
## 48 北海道 57.4 1.23 2000     1
## 49   青森 61.2 1.47 2000     1
## 50   岩手 63.4 1.56 2000     1
## 51   宮城 59.2 1.39 2000     1
## 52   秋田 64.6 1.45 2000     1
## 53   山形 68.2 1.62 2000     1
## 54   福島 62.4 1.65 2000     1
## 55   茨城 56.8 1.47 2000     1
## 56   栃木 59.5 1.48 2000     1
## 57   群馬 59.2 1.51 2000     1
## 58   埼玉 54.9 1.30 2000     1
## 59   千葉 55.3 1.30 2000     1
## 60   東京 57.6 1.07 2000     1
## 61 神奈川 54.2 1.28 2000     1
## 62   新潟 65.4 1.51 2000     1
## 63   富山 66.7 1.45 2000     1
## 64   石川 65.5 1.45 2000     1
## 65   福井 66.4 1.60 2000     1
## 66   山梨 58.9 1.51 2000     1
## 67   長野 62.8 1.59 2000     1
## 68   岐阜 60.7 1.47 2000     1
## 69   静岡 61.1 1.47 2000     1
## 70   愛知 58.2 1.44 2000     1
## 71   三重 59.4 1.48 2000     1
## 72   滋賀 57.1 1.53 2000     1
## 73   京都 55.3 1.28 2000     1
## 74   大阪 53.6 1.31 2000     1
## 75   兵庫 53.4 1.38 2000     1
## 76   奈良 50.3 1.30 2000     1
## 77 和歌山 54.7 1.45 2000     1
## 78   鳥取 65.6 1.62 2000     1
## 79   島根 65.5 1.65 2000     1
## 80   岡山 58.7 1.51 2000     1
## 81   広島 58.2 1.41 2000     1
## 82   山口 58.6 1.47 2000     1
## 83   徳島 58.0 1.45 2000     1
## 84   香川 60.7 1.53 2000     1
## 85   愛媛 57.8 1.45 2000     1
## 86   高知 63.6 1.45 2000     1
## 87   福岡 57.6 1.36 2000     1
## 88   佐賀 62.7 1.67 2000     1
## 89   長崎 59.6 1.57 2000     1
## 90   熊本 62.4 1.56 2000     1
## 91   大分 59.6 1.51 2000     1
## 92   宮崎 62.9 1.62 2000     1
## 93 鹿児島 58.7 1.58 2000     1
## 94   沖縄 56.5 1.82 2000     1

図8-1 女性労働力率と合計特殊出生率の散布図

ggplot(data1,aes(x=flp,y=tfr, shape=year))+geom_point()+xlab("女性労働力率(%)")+ylab("合計特殊出生率")+labs(shape="データ年")+
  theme_classic()+scale_shape_manual(values = c(16,2))

(8.1)式を年ごと、そして2年まとめて推定します。

reg80 <- lm(tfr~flp, data=data1, subset = year == 1980)
reg00 <- lm(tfr~flp, data=data1, subset = year == 2000)
regall <- lm(tfr~flp, data=data1)
summary(reg80)
## 
## Call:
## lm(formula = tfr ~ flp, data = data1, subset = year == 1980)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.35969 -0.04207 -0.00130  0.03597  0.60208 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 1.441211   0.151941   9.485 2.65e-12 ***
## flp         0.007257   0.002826   2.568   0.0136 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.127 on 45 degrees of freedom
## Multiple R-squared:  0.1278, Adjusted R-squared:  0.1085 
## F-statistic: 6.596 on 1 and 45 DF,  p-value: 0.01361
summary(reg00)
## 
## Call:
## lm(formula = tfr ~ flp, data = data1, subset = year == 2000)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.36307 -0.06874  0.01230  0.05237  0.40698 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 0.383186   0.247764   1.547    0.129    
## flp         0.018227   0.004135   4.408  6.4e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1125 on 45 degrees of freedom
## Multiple R-squared:  0.3016, Adjusted R-squared:  0.2861 
## F-statistic: 19.43 on 1 and 45 DF,  p-value: 6.403e-05
summary(regall)
## 
## Call:
## lm(formula = tfr ~ flp, data = data1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.57379 -0.14973  0.00014  0.15644  0.65976 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2.036980   0.204913   9.941 3.04e-16 ***
## flp         -0.006826   0.003599  -1.897    0.061 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2198 on 92 degrees of freedom
## Multiple R-squared:  0.03762,    Adjusted R-squared:  0.02716 
## F-statistic: 3.597 on 1 and 92 DF,  p-value: 0.06103

表8-4 女性労働力率が合計特殊出生率に与える影響

stargazer(reg80, reg00, regall, type="text", digits = 4, keep.stat = c("n","rsq"))
## 
## ==========================================
##                   Dependent variable:     
##              -----------------------------
##                           tfr             
##                 (1)       (2)       (3)   
## ------------------------------------------
## flp          0.0073**  0.0182*** -0.0068* 
##              (0.0028)  (0.0041)  (0.0036) 
##                                           
## Constant     1.4412***  0.3832   2.0370***
##              (0.1519)  (0.2478)  (0.2049) 
##                                           
## ------------------------------------------
## Observations    47        47        94    
## R2            0.1278    0.3016    0.0376  
## ==========================================
## Note:          *p<0.1; **p<0.05; ***p<0.01

図8-2 パネルデータと各年データの回帰直線

ggplot(data1,aes(x=flp,y=tfr, shape=year))+geom_point()+xlab("女性労働力率(%)")+ylab("合計特殊出生率")+labs(shape="データ年")+
  theme_classic()+geom_abline(aes(intercept = reg80$coefficients[[1]],slope = reg80$coefficients[[2]],linetype="line1"))+
  geom_abline(aes(intercept = reg00$coefficients[[1]],slope = reg00$coefficients[[2]],linetype="line2"))+
  geom_abline(aes(intercept = regall$coefficients[[1]],slope = regall$coefficients[[2]],linetype="line3"))+scale_shape_manual(values = c(16,2))+
  scale_linetype(name="回帰",labels=c(line1="1980",line2="2000",line3="パネル"))

(8.2)式、(8.3)式を推定します。

regall1 <- lm(tfr~flp+y2000, data=data1)
regall2 <- lm(tfr~flp*y2000, data=data1)
summary(regall1)
## 
## Call:
## lm(formula = tfr ~ flp + y2000, data = data1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.38065 -0.05443  0.00558  0.04808  0.62259 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1.284262   0.125478  10.235  < 2e-16 ***
## flp          0.010197   0.002327   4.382 3.15e-05 ***
## y2000       -0.420968   0.029315 -14.360  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1223 on 91 degrees of freedom
## Multiple R-squared:  0.7053, Adjusted R-squared:  0.6989 
## F-statistic: 108.9 on 2 and 91 DF,  p-value: < 2.2e-16
summary(regall2)
## 
## Call:
## lm(formula = tfr ~ flp * y2000, data = data1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.36307 -0.04952  0.00347  0.04610  0.60208 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1.441211   0.143511  10.043 2.33e-16 ***
## flp          0.007257   0.002669   2.719 0.007855 ** 
## y2000       -1.058025   0.300712  -3.518 0.000683 ***
## flp:y2000    0.010971   0.005155   2.128 0.036049 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.12 on 90 degrees of freedom
## Multiple R-squared:  0.7195, Adjusted R-squared:  0.7101 
## F-statistic: 76.94 on 3 and 90 DF,  p-value: < 2.2e-16

表8-5 定数項ダミーと係数ダミーを利用した回帰

stargazer(regall1, regall2, type="text", digits = 4, omit.stat = c("ser","f"))
## 
## =========================================
##                  Dependent variable:     
##              ----------------------------
##                          tfr             
##                   (1)            (2)     
## -----------------------------------------
## flp            0.0102***      0.0073***  
##                 (0.0023)      (0.0027)   
##                                          
## y2000          -0.4210***    -1.0580***  
##                 (0.0293)      (0.3007)   
##                                          
## flp:y2000                     0.0110**   
##                               (0.0052)   
##                                          
## Constant       1.2843***      1.4412***  
##                 (0.1255)      (0.1435)   
##                                          
## -----------------------------------------
## Observations       94            94      
## R2               0.7053        0.7195    
## Adjusted R2      0.6989        0.7101    
## =========================================
## Note:         *p<0.1; **p<0.05; ***p<0.01

図8-3 交差項なしと交差項ありの回帰直線

ggplot(data1,aes(x=flp,y=tfr, shape=year))+geom_point()+xlab("女性労働力率(%)")+ylab("合計特殊出生率")+labs(shape="データ年")+theme_classic()+
  geom_abline(aes(intercept = regall1$coefficients[[1]],slope = regall1$coefficients[[2]],linetype="line1"))+
  geom_abline(aes(intercept = regall1$coefficients[[1]]+regall1$coefficients[[3]],slope = regall1$coefficients[[2]],linetype="line1"))+
  geom_abline(aes(intercept = regall2$coefficients[[1]],slope = regall2$coefficients[[2]],linetype="line2"))+
  geom_abline(aes(intercept = regall2$coefficients[[1]]+regall2$coefficients[[3]],slope = regall2$coefficients[[2]]+regall2$coefficients[[4]],linetype="line2"))+
  scale_shape_manual(values = c(16,2))+  scale_linetype(name="回帰",labels=c(line1="交差項なし",line2="交差項あり"))

差分データを作成します。

data2$dflp <- data2$flp00 - data2$flp80
data2$dtfr <- data2$tfr00 - data2$tfr80

表8-6 ワイド形式のデータから差分データを作成

data2
##      pref flp80 tfr80 flp00 tfr00 dflp  dtfr
## 1  北海道  47.1  1.64  57.4  1.23 10.3 -0.41
## 2    青森  53.5  1.85  61.2  1.47  7.7 -0.38
## 3    岩手  59.2  1.95  63.4  1.56  4.2 -0.39
## 4    宮城  53.3  1.86  59.2  1.39  5.9 -0.47
## 5    秋田  59.1  1.79  64.6  1.45  5.5 -0.34
## 6    山形  67.0  1.93  68.2  1.62  1.2 -0.31
## 7    福島  60.1  1.99  62.4  1.65  2.3 -0.34
## 8    茨城  50.7  1.87  56.8  1.47  6.1 -0.40
## 9    栃木  54.9  1.86  59.5  1.48  4.6 -0.38
## 10   群馬  53.7  1.81  59.2  1.51  5.5 -0.30
## 11   埼玉  44.5  1.73  54.9  1.30 10.4 -0.43
## 12   千葉  43.9  1.74  55.3  1.30 11.4 -0.44
## 13   東京  49.4  1.44  57.6  1.07  8.2 -0.37
## 14 神奈川  41.9  1.70  54.2  1.28 12.3 -0.42
## 15   新潟  63.5  1.88  65.4  1.51  1.9 -0.37
## 16   富山  62.4  1.77  66.7  1.45  4.3 -0.32
## 17   石川  61.8  1.87  65.5  1.45  3.7 -0.42
## 18   福井  66.3  1.93  66.4  1.60  0.1 -0.33
## 19   山梨  54.2  1.76  58.9  1.51  4.7 -0.25
## 20   長野  61.1  1.89  62.8  1.59  1.7 -0.30
## 21   岐阜  56.0  1.80  60.7  1.47  4.7 -0.33
## 22   静岡  54.8  1.80  61.1  1.47  6.3 -0.33
## 23   愛知  51.0  1.81  58.2  1.44  7.2 -0.37
## 24   三重  52.0  1.82  59.4  1.48  7.4 -0.34
## 25   滋賀  51.8  1.96  57.1  1.53  5.3 -0.43
## 26   京都  47.9  1.67  55.3  1.28  7.4 -0.39
## 27   大阪  44.1  1.67  53.6  1.31  9.5 -0.36
## 28   兵庫  43.2  1.76  53.4  1.38 10.2 -0.38
## 29   奈良  39.1  1.70  50.3  1.30 11.2 -0.40
## 30 和歌山  46.2  1.80  54.7  1.45  8.5 -0.35
## 31   鳥取  62.6  1.93  65.6  1.62  3.0 -0.31
## 32   島根  61.9  2.01  65.5  1.65  3.6 -0.36
## 33   岡山  52.2  1.86  58.7  1.51  6.5 -0.35
## 34   広島  49.8  1.84  58.2  1.41  8.4 -0.43
## 35   山口  48.9  1.79  58.6  1.47  9.7 -0.32
## 36   徳島  54.5  1.76  58.0  1.45  3.5 -0.31
## 37   香川  54.7  1.82  60.7  1.53  6.0 -0.29
## 38   愛媛  50.5  1.79  57.8  1.45  7.3 -0.34
## 39   高知  57.8  1.64  63.6  1.45  5.8 -0.19
## 40   福岡  48.2  1.74  57.6  1.36  9.4 -0.38
## 41   佐賀  59.0  1.93  62.7  1.67  3.7 -0.26
## 42   長崎  50.7  1.87  59.6  1.57  8.9 -0.30
## 43   熊本  57.5  1.83  62.4  1.56  4.9 -0.27
## 44   大分  51.6  1.82  59.6  1.51  8.0 -0.31
## 45   宮崎  57.7  1.93  62.9  1.62  5.2 -0.31
## 46 鹿児島  50.8  1.95  58.7  1.58  7.9 -0.37
## 47   沖縄  46.4  2.38  56.5  1.82 10.1 -0.56

(8.6)式、(8.7)式を推定します。

dreg1 <- lm(dtfr~dflp, data=data2)
dreg2 <- lm(dtfr~0+dflp, data=data2)
summary(dreg1)
## 
## Call:
## lm(formula = dtfr ~ dflp, data = data2)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.169062 -0.033373  0.004209  0.025076  0.159600 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.293842   0.020324  -14.46  < 2e-16 ***
## dflp        -0.009613   0.002887   -3.33  0.00174 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.05727 on 45 degrees of freedom
## Multiple R-squared:  0.1977, Adjusted R-squared:  0.1798 
## F-statistic: 11.09 on 1 and 45 DF,  p-value: 0.001742
summary(dreg2)
## 
## Call:
## lm(formula = dtfr ~ 0 + dflp, data = data2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.32523 -0.15194 -0.03643  0.06046  0.16632 
## 
## Coefficients:
##       Estimate Std. Error t value Pr(>|t|)    
## dflp -0.047668   0.002789  -17.09   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1346 on 46 degrees of freedom
## Multiple R-squared:  0.864,  Adjusted R-squared:  0.861 
## F-statistic: 292.1 on 1 and 46 DF,  p-value: < 2.2e-16

表8-7 差分データを使った回帰の結果

stargazer(dreg2, dreg1, type="text", digits = 4, keep.stat = c("n","rsq"))
## 
## =========================================
##                  Dependent variable:     
##              ----------------------------
##                          dtfr            
##                   (1)            (2)     
## -----------------------------------------
## dflp           -0.0477***    -0.0096***  
##                 (0.0028)      (0.0029)   
##                                          
## Constant                     -0.2938***  
##                               (0.0203)   
##                                          
## -----------------------------------------
## Observations       47            47      
## R2               0.8640        0.1977    
## =========================================
## Note:         *p<0.1; **p<0.05; ***p<0.01

図8-6 ∆女性労働力率と∆合計特殊出生率の散布図にトレンド項の有無別回帰直線を追加

ggplot(data2,aes(x=dflp,y=dtfr))+geom_point()+xlab("女性労働力率(%)の差分")+ylab("合計特殊出生率の差分")+theme_classic()+geom_abline(aes(intercept = dreg1$coefficients[[1]],slope = dreg1$coefficients[[2]],linetype="line1"))+
  geom_abline(aes(intercept = 0,slope = dreg2$coefficients[[1]],linetype="line2"))+
  scale_linetype(name="回帰",labels=c(line1="トレンド項あり",line2="トレンド項なし"))