descriptive statistics
)
と推測統計学 (inferential statistics
)
の二つに分類できる統計学の種類 | 特徴 |
---|---|
記述統計学: | 統計量を使ってデータ傾向や性質をつかむ |
推測統計学: | 母集団の母数(母平均や母分散)を検定し推定する |
population
) から標本 (sample
)
を無作為に抽出し、その標本によって得られた標本平均や不偏分散などの統計量を使って、母集団の母数(母平均や母分散)を検定し推定する ・ここでは両統計学で共通して使う基礎知識を解説・演習する
descriptive statistics
)とは「ある変数が持つ情報を要約した数値」記述統計量 | 解説 | ||
---|---|---|---|
mean() |
平均値 | mean | |
median() |
中央値 | median | |
sd() |
不偏標準偏差 | standard deviation | |
var() |
不偏分散 | variance | |
IQR() |
四分位範囲 | Interquartile range* | |
min() |
最小値 | minimum | |
max() |
最小値と最大値 | maximum | |
*
四分位範囲とは、75パーセンタイルと25パーセンタイルの差のこと
TOEFL (iBT)
の平均点が得られたとするNA
) とする<- c(22, 33, 44, 55, 66, 77, 88, 99, 100)
x x
[1] 22 33 44 55 66 77 88 99 100
x
を代表する値(=代表値)として平均値、中央値、分散、標準偏差、四分位範囲、範囲を求めてみる変数\(x\) の平均\(\bar{x}\)
は次の式で求めることができる:
\[\bar{x} = \frac{\sum_{i=1}^n
x_i}{n}\]
R を使って平均点を計算する方法①
最も手間の掛かる方法
22 + 33 + 44 + 55 + 66 + 77 + 88 + 99 + 100)/9 (
[1] 64.88889
sum( )
を使うsum(x/9)
[1] 64.88889
mean( )
を使うmean(x)
[1] 64.88889
median(x)
[1] 66
x
を小さい順にソートしてみるsort(x)
[1] 22 33 44 55 66 77 88 99 100
分散 (variance
)
とは数値データのばらつき具合を表すための指標
分散は「平均値と個々のデータの差の2乗の平均」
平均値から離れた値をとるデータが多い → 分散が大きい
平均点付近の値をとるデータ多い → 分散が小さい
一般的に分散は次の式で求められる
\[分散 = \frac{\sum_{i=1}^N (個々のデータ -
平均)^2}{N}\]
次のように表記されることが多い
分散 \(σ^2\)(シグマ)は次のように表記されることが多い
\[σ^2 = \frac{\sum_{i=1}^N (x_i -
\bar{x})^2}{N}\]
x
が得られたサンプルデータだとする
x
[1] 22 33 44 55 66 77 88 99 100
x
の平均値を求めて x_mean
と名前を付ける <- mean(x)
x_mean x_mean
[1] 64.88889
x1
と名前を付ける <- x - x_mean
x1 x1
[1] -42.888889 -31.888889 -20.888889 -9.888889 1.111111 12.111111 23.111111
[8] 34.111111 35.111111
[1]
の右隣にある数値 (-42.888889
)
は、データ x
の先頭の値 (22
) から平均値
(64.88889
) を引いた値22 - 64.88889 # x[1] - mean(x)でも同じ結果が得られる
[1] -42.88889
x2
と名付ける <- x1^2
x2 x2
[1] 1839.456790 1016.901235 436.345679 97.790123 1.234568 146.679012
[7] 534.123457 1163.567901 1232.790123
sum_x2
と名付ける <- sum(x2)
sum_x2 sum_x2
[1] 6468.889
これで分散を求める式の分子は完成
分母の数 (N
) は 9
従って、x
の分散 \(σ^2\) は、 \[σ^2
= \frac{\sum_{i=1}^N (x_i - \bar{x})^2}{N} = \frac{6468.889}{9} =
718.7654\]
ここで求めた分散は「標本分散」と呼ばれる
var()
を使って分散を求めてみるvar(x)
[1] 808.6111
(718.7654
) とは異なる値が出た→ その理由: var()
が計算するのは「標本分散
\(σ^2\)」
ではなく「不偏分散 \(S^2\)」だから
・標本を使った通常の分析では「不偏分散 \(S^2\)」を使う方が一般的
→ R
で分散を計算する関数
var()
では不偏分散 \(S^2\)
をデフォルトに設定している
不偏分散と標本分散
・不偏分散・・・「母集団に興味がある場合」に使う散(=標本不偏分散)
・標本分散・・・「抽出したサンプルにだけ興味がある場合」に使う
・母集団データの一部だけが手元にあり、入手したデータの背後にある母集団データの散らばりを知りたい場合
【不偏分散 \(S^2\)
を求める式】:var()
で計算可能
・仮に \(x\)
が母集団から抽出された標本だとしよう
・母分散は未知なので、標本として得られた統計量を使って未知の母分散を推定する
・母分散を推定するための統計量が不偏分散 \(S^2\)
・不偏分散 \(S^2\)は次の式で求められる
\[S^2 = \frac{\sum_{i=1}^N (x_i - \bar{x})^2}{N-1}\]
・\(\bar{x}\): 標本平均
・Rで計算してみる
sum((x - mean(x))^2) / (length(x) - 1) # var(x) でも同じ結果を得る
[1] 808.6111
var()
でも x
の不偏分散 \((S^2)\) の値が出力される # 不偏分散
var(x)
[1] 808.6111
・母集団から抽出された標本(サンプル)が手元にある
・興味の対象が母集団ではなく、標本(サンプル)だけにあるとき
・そのサンプルがどの程度散らばっているかということだけを知りたい時
【分散 \(σ^2\)
を求める式】
・標本分散 \(\sigma^2\)(シグマ)は次の式で求められる
\[\sigma^2 = \frac{\sum_{i=1}^N (x_i - \bar{x})^2}{N}\]
・\(\bar{x}\): 標本平均
・R には標本分散 \(\sigma^2\)
を求める機能がない
・\(\sigma^2\)
は次の式を作って計算しなければならない
# 標本分散
var(x) * (length(x) - 1) / length(x)
[1] 718.7654
標本分散 \(\sigma^2\ \) (718.7654
)
より、不偏分散 (808.6111
) \(S_x^2\)
の方が常に大きい
・標本分散 \(\sigma^2\)
を求める式では分母が N
なのに、不偏分散 \(S^2\) を求める式では分母が
N - 1
だから
分散の計算で2乗 (\(σ^2\) や \(S^2\)) の和の平均をとる理由
・1つの群における各データの数値の平均からの差(=偏差)はぞれが平均値からどれだけ離れているかを表す指標
→ 偏差はプラスとマイナス両方を取り得る
→ 各データが平均値からどれだけ離れているかを表す指標として不適切
・偏差を2乗することにより、平均値からの距離の基準を絶対値に換算することで適切な指標に変換できる
\[標準偏差 = \sqrt{分散}\]
\[不偏標準偏差 (S) = \sqrt{不偏分散 (S^2)}\]
x
の不偏標準偏差 (\(S\)) は次のいずれの式でも表せるsqrt(var(x))
[1] 28.43609
sd(x)
[1] 28.43609
3rd Qu.
) と25パーセンタイル
(1st Qu.
) の差IQR(x)
[1] 44
max(x, na.rm = TRUE) - min(x)
[1] 78
summary()
x
の統計量のサマリーを表示させる summary(x)
Min. 1st Qu. Median Mean 3rd Qu. Max.
22.00 44.00 66.00 64.89 88.00 100.00
記述統計量 | 解説 |
---|---|
Min: | 最小値 |
1st Qu.: | 1st Quantile (25%) |
Median: | 中央値 (50%) |
Mean: | 平均値 |
3rd Qu: | 3rd Quantile (75%) |
Max: | 最大値 |
dplyr
を用いた記述統計量dplyr
パッケージを含む tidyverse
パッケージをロードlibrary(tidyverse)
データの準備 (hr96-21.csv
)
・hr96-21.csv
をクリックしてデータをパソコンにダウンロード
RProject
フォルダ内に data
という名称のフォルダを作成するhr96-21.csv
を手動でRProject
フォルダ内にある data
フォルダに入れる<- read_csv("data/hr96-21.csv",
hr na = ".")
hr96_21.csv
は1996年に衆院選挙に小選挙区が導入されて以来実施された 9
回の衆議院選挙(1996, 2000, 2003, 2005, 2009, 2012, 2014, 2017,
2021)の結果のデータ
読み取った選挙データを確認
dim()
関数を使うと hr
は9,660行、22列のデータであることが分かる
dim(hr)
[1] 9660 22
df1
には 22 個の変数が入っている変数名 | 詳細 |
---|---|
year | 選挙年 (1996-2017) |
pref | 都道府県名 |
ku | 小選挙区名 |
kun | 小選挙区 |
rank | 当選順位 |
wl | 選挙の当落: 1 = 小選挙区当選、2 = 復活当選、0 = 落選 |
nocand | 立候補者数 |
seito | 候補者の所属政党 |
j_name | 候補者の氏名(日本語) |
name | 候補者の氏名(ローマ字) |
previous | これまでの当選回数(当該総選挙結果は含まない) |
gender | 立候補者の性別: “male”, “female” |
age | 立候補者の年齢 |
exp | 立候補者が使った選挙費用(総務省届け出) |
status | 候補者のステータス: 0 = 非現職、1 現職、2 = 元職 |
vote | 得票数 |
voteshare | 得票率 (%) |
eligible | 小選挙区の有権者数 |
turnout | 小選挙区の投票率 (%) |
seshu_dummy | 世襲候補者ダミー: 1 = 世襲、0 = 非世襲(地盤世襲 or 非世襲) |
jiban_seshu | 地盤の受け継ぎ元の政治家の氏名と関係 |
nojiban_seshu | 世襲元の政治家の氏名と関係 |
dfSummary()
を使った記述統計の可視化summarytools パッケージ
を読み込むlibrary(summarytools)
hr
に含まれている変数を可視化するyear
, kun
, wl
,
rank
, status
, を factor
に変換する $year <- as.factor(hr$year)
hr$kun <- as.factor(hr$kun)
hr$wl <- as.factor(hr$wl)
hr$rank <- as.factor(hr$rank)
hr$status <- as.factor(hr$status) hr
dfSummary(hr,
style = "grid", plain.ascii = FALSE,
graph.magnif = 0.75, valid.col = FALSE, tmp.img.dir = "/tmp")
Dimensions: 9660 x 22
Duplicates: 0
No | Variable | Stats / Values | Freqs (% of Valid) | Graph | Missing |
---|---|---|---|---|---|
1 | year [factor] |
1. 1996 2. 2000 3. 2003 4. 2005 5. 2009 6. 2012 7. 2014 8. 2017 9. 2021 |
1261 (13.1%) 1199 (12.4%) 1026 (10.6%) 989 (10.2%) 1139 (11.8%) 1294 (13.4%) 959 ( 9.9%) 936 ( 9.7%) 857 ( 8.9%) |
0 (0.0%) |
|
2 | pref [character] |
1. 東京 2. 大阪 3. 神奈川 4. 愛知 5. 埼玉 6. 千葉 7. 兵庫 8. 北海道 9. 福岡 10. 静岡 [ 37 others ] |
953 ( 9.9%) 635 ( 6.6%) 632 ( 6.5%) 521 ( 5.4%) 498 ( 5.2%) 444 ( 4.6%) 407 ( 4.2%) 369 ( 3.8%) 353 ( 3.7%) 264 ( 2.7%) 4584 (47.5%) |
0 (0.0%) |
|
3 | ku [character] |
1. tokyo 2. osaka 3. kanagawa 4. aichi 5. saitama 6. chiba 7. hyogo 8. hokkaido 9. fukuoka 10. shizuoka [ 38 others ] |
953 ( 9.9%) 635 ( 6.6%) 632 ( 6.5%) 521 ( 5.4%) 498 ( 5.2%) 444 ( 4.6%) 407 ( 4.2%) 369 ( 3.8%) 353 ( 3.7%) 264 ( 2.7%) 4584 (47.5%) |
0 (0.0%) |
|
4 | kun [factor] |
1. 1 2. 2 3. 3 4. 4 5. 5 6. 6 7. 7 8. 8 9. 9 10. 10 [ 15 others ] |
1626 (16.8%) 1456 (15.1%) 1337 (13.8%) 980 (10.1%) 730 ( 7.6%) 501 ( 5.2%) 418 ( 4.3%) 330 ( 3.4%) 308 ( 3.2%) 308 ( 3.2%) 1666 (17.2%) |
0 (0.0%) |
|
5 | wl [factor] |
1. 0 2. 1 3. 2 |
6001 (62.1%) 2674 (27.7%) 985 (10.2%) |
0 (0.0%) |
|
6 | rank [factor] |
1. 1 2. 2 3. 3 4. 4 5. 5 6. 6 7. 7 8. 8 9. 9 10. 2003 |
2673 (27.7%) 2673 (27.7%) 2459 (25.5%) 1255 (13.0%) 444 ( 4.6%) 122 ( 1.3%) 25 ( 0.3%) 6 ( 0.1%) 2 ( 0.0%) 1 ( 0.0%) |
0 (0.0%) |
|
7 | nocand [numeric] |
Mean (sd) : 3.9 (1.1) min < med < max: 2 < 4 < 9 IQR (CV) : 1 (0.3) |
2 : 421 ( 4.4%) 3 : 3609 (37.4%) 4 : 3244 (33.6%) 5 : 1609 (16.7%) 6 : 582 ( 6.0%) 7 : 140 ( 1.4%) 8 : 37 ( 0.4%) 9 : 18 ( 0.2%) |
0 (0.0%) |
|
8 | seito [character] |
1. 自民 2. 共産 3. 民主 4. 無所 5. 社民 6. 幸福 7. 立憲 8. 新進 9. 自由連合 10. 希望 [ 41 others ] |
2542 (26.3%) 2228 (23.1%) 1654 (17.1%) 641 ( 6.6%) 316 ( 3.3%) 312 ( 3.2%) 277 ( 2.9%) 235 ( 2.4%) 212 ( 2.2%) 199 ( 2.1%) 1044 (10.8%) |
0 (0.0%) |
|
9 | j_name [character] |
1. 伊藤達也 2. 三原朝彦 3. 上川陽子 4. 下村博文 5. 中川正春 6. 中谷元 7. 二階俊博 8. 伴野豊 9. 佐藤勉 10. 前原誠司 [ 4610 others ] |
10 ( 0.1%) 9 ( 0.1%) 9 ( 0.1%) 9 ( 0.1%) 9 ( 0.1%) 9 ( 0.1%) 9 ( 0.1%) 9 ( 0.1%) 9 ( 0.1%) 9 ( 0.1%) 9568 (99.1%) |
1 (0.0%) |
|
10 | gender [character] |
1. female 2. male |
1323 (13.7%) 8333 (86.3%) |
4 (0.0%) |
|
11 | name [character] |
1. KATO, KOICHI 2. ITO, TATSUYA 3. ABE, SHINZO 4. AISAWA, ICHIRO 5. AMARI, AKIRA 6. ASO, TARO 7. AZUMI, JUN 8. BANNO, YUTAKA 9. EDANO, YUKIO 10. ENDO, TOSHIAKI [ 4737 others ] |
11 ( 0.1%) 10 ( 0.1%) 9 ( 0.1%) 9 ( 0.1%) 9 ( 0.1%) 9 ( 0.1%) 9 ( 0.1%) 9 ( 0.1%) 9 ( 0.1%) 9 ( 0.1%) 9567 (99.0%) |
0 (0.0%) |
|
12 | previous [numeric] |
Mean (sd) : 1.5 (2.5) min < med < max: 0 < 0 < 19 IQR (CV) : 2 (1.7) |
19 distinct values | 0 (0.0%) |
|
13 | age [numeric] |
Mean (sd) : 51.2 (11.1) min < med < max: 25 < 52 < 94 IQR (CV) : 16 (0.2) |
64 distinct values | 4 (0.0%) |
|
14 | exp [numeric] |
Mean (sd) : 7551392 (5482684) min < med < max: 535 < 6566110 < 27462362 IQR (CV) : 8240845 (0.7) |
6753 distinct values |