Chapter 9 記述統計表の作成
分析に入る前に、使用する変数の代表値や散布度を示すのは論文では必須です。
ここでは、summarytools
パッケージを用いた方法を紹介します。まずはパッケージを準備しておきましょう。
install.packages("summarytools")
library(summarytools)
なお、このChapterでは表の作成方法を紹介します。 表をWordに貼り付ける方法については、Chapter (Word)を確認してください。
9.1 数値の記述統計表の作成
数値の記述統計表を作成するには、summarytools
のdescr()
を用います。
早速saving
で使ってみましょう。
%>%
saving descr()
## Descriptive Statistics
## saving
## N: 100
##
## age black cons educ inc sav size
## ----------------- -------- -------- ----------- -------- ---------- ---------- --------
## Mean 38.77 0.07 8358.73 11.58 9941.24 1582.51 4.35
## Std.Dev 7.40 0.26 5729.53 3.44 5584.00 3284.90 1.49
## Min 26.00 0.00 -13055.00 2.00 750.00 -5577.00 2.00
## Q1 33.00 0.00 5726.00 9.00 6508.00 189.00 3.00
## Median 38.50 0.00 7561.50 12.00 8776.50 982.00 4.00
## Q3 44.00 0.00 9987.00 13.00 11965.00 1838.50 5.00
## Max 54.00 1.00 30280.00 20.00 32080.00 25405.00 10.00
## MAD 8.15 0.00 3092.70 2.97 3463.35 1235.75 1.48
## IQR 11.00 0.00 4131.50 4.00 5393.00 1640.25 2.00
## CV 0.19 3.66 0.69 0.30 0.56 2.08 0.34
## Skewness 0.24 3.32 0.91 0.05 1.98 4.15 0.84
## SE.Skewness 0.24 0.24 0.24 0.24 0.24 0.24 0.24
## Kurtosis -0.96 9.11 4.31 0.05 4.96 26.31 1.57
## N.Valid 100.00 100.00 100.00 100.00 100.00 100.00 100.00
## Pct.Valid 100.00 100.00 100.00 100.00 100.00 100.00 100.00
簡単に記述統計表が作成できました。しかし、この表は情報量が多く見づらいので、オプションを加えて編集していきましょう。
stats
オプションで表示する値を選択- ここでは平均mean・標準偏差sd・最小値min・最大値max・観測値n.validを表示させます
transpose
オプションをTRUE
にして行列を入れ替えるheading
オプションをFALSE
にしてヘッダーを消す
%>%
saving descr(stats = c("mean", "sd", "min", "max", "n.valid"), transpose = TRUE, headings = FALSE)
##
## Mean Std.Dev Min Max N.Valid
## ----------- --------- --------- ----------- ---------- ---------
## age 38.77 7.40 26.00 54.00 100.00
## black 0.07 0.26 0.00 1.00 100.00
## cons 8358.73 5729.53 -13055.00 30280.00 100.00
## educ 11.58 3.44 2.00 20.00 100.00
## inc 9941.24 5584.00 750.00 32080.00 100.00
## sav 1582.51 3284.90 -5577.00 25405.00 100.00
## size 4.35 1.49 2.00 10.00 100.00
9.2 カテゴリ変数の記述統計表の作成
カテゴリ変数の記述統計については、以下の2つの方法が考えられます。
- ダミー変数を作成し、前節で説明した
descr()
をそのまま用いる- 黒人ダミー
black
がそのように処理されています
- 黒人ダミー
summarytools
のfreq()
を用いて度数分布表を作成する
ここでは後者の方法を説明します。
例として、Chapter (DataHandling)で説明した年齢のカテゴリ変数age_category
を作成し、オブジェクトとして保存しておきます。
<-
age_category %>%
saving mutate(age_category = case_when(age < 30 ~ "20s",
>= 30 & age < 40 ~ "30s",
age >= 40 & age < 50 ~ "40s",
age >= 50 ~ "50s"
age
)%>%
) select(age_category)
作成した年齢のカテゴリ変数age_category
をfreq()
に入れます。
%>%
age_category freq()
## Frequencies
## age_category$age_category
## Type: Character
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
## 20s 12 12.00 12.00 12.00 12.00
## 30s 44 44.00 56.00 44.00 56.00
## 40s 31 31.00 87.00 31.00 87.00
## 50s 13 13.00 100.00 13.00 100.00
## <NA> 0 0.00 100.00
## Total 100 100.00 100.00 100.00 100.00
度数分布表が作成できました。しかし、情報量が多いので、不要な情報をオプションで消しておきます。
%>%
age_category freq(report.nas = FALSE, totals = FALSE, cumul = FALSE, headings = FALSE)
##
## Freq %
## --------- ------ -------
## 20s 12 12.00
## 30s 44 44.00
## 40s 31 31.00
## 50s 13 13.00
シンプルな表ができました。オプションの説明は以下のとおりです。
report.nas = FALSE
: 欠損値(NA)を表示しないようにするtotals = FALSE
: 合計を表示しないようにするcumul = FALSE
: 累積値を表示しないようにするheadings = FALSE
: ヘッダーを表示しないようにする