プロ野球データで因子分析
はじめに
最近、パワプロにはまっている。2020年に発売されたパワプロ2020ではもう500時間近く遊んでいる。ほとんどが、オートでペナントを回して監督ごっこ遊びをしているのだが、これが意外と楽しい。知らない人のために説明すると、パワプロにはそれぞれの選手に固有の能力が設定されている。画像の例では、能力が特徴的なお気に入りの選手である。
具体的には、弾道・ミート・パワー・走力・肩力・守備力・捕球に分かれている。こうした能力は基礎能力と呼ばれ選手がどのような成績を残すかに直結する。 画像の例では架空選手であるがNPBに所属する選手ごとに能力が割り振られている。この査定に関しては昔から色々な意見があり、特に新人選手の能力査定は難しいらしい。野手能力のうち、バッティングに関係するものは、弾道・ミート・パワー・走力である。この能力は実際に観測できないため、成績からコナミの人たちが頑張って推定してると思われる。そこで、今回はその真似をしてみるという話。
前置きが長くなったが、要は潜在因子であるミートやパワーがどのような成績に関係するかといったことを因子分析するだけである。例えば、ミートが高い選手は打率に寄与するであろう。また、パワーは本塁打に寄与することは誰でもわかる。その他、走力は安打に寄与するかなどが分析の関心の対象である。
データの概要
データには、2020年のNPB記録を用いる。2020年度はパンデミックの影響もあり120試合しか行われなかったが分析には十分な数であると判断した。また、打席数が少ない極端なデータが含まれるため、規定打席の1/2以上の打席数がある選手が対象である。データはプロ野球データFreakから取得させていただきました。上位10位のデータは以下の通りである。
## 順位 選手名 チーム 打率 試合 打席数 打数 得点 安打 二塁打 三塁打
## 1 1 吉田 正尚 オリックス 0.350 120 492 408 55 143 22 1
## 2 2 柳田 悠岐 ソフトバンク 0.342 119 515 427 90 146 23 5
## 3 3 近藤 健介 日本ハム 0.340 108 467 371 56 126 31 1
## 4 4 佐野 恵太 DeNA 0.328 106 451 402 48 132 20 1
## 5 5 梶谷 隆幸 DeNA 0.323 109 482 433 88 140 29 1
## 6 6 青木 宣親 ヤクルト 0.317 107 425 357 64 113 30 1
## 7 7 大島 洋平 中日 0.316 118 525 462 58 146 21 3
## 8 8 神里 和毅 DeNA 0.308 80 190 169 38 52 8 1
## 9 9 村上 宗隆 ヤクルト 0.307 120 515 424 70 130 30 2
## 10 10 西川 遥輝 日本ハム 0.306 115 523 422 82 129 17 3
## 本塁打 塁打 打点 盗塁 盗塁刺 犠打 犠飛 四球 敬遠 死球 三振 併殺打 出塁率
## 1 14 209 64 8 5 0 4 72 17 8 29 6 0.453
## 2 29 266 86 7 2 0 3 84 8 1 103 2 0.449
## 3 5 174 60 4 0 0 5 89 3 2 72 6 0.465
## 4 20 214 69 0 0 0 3 42 1 4 58 13 0.395
## 5 19 228 53 14 8 1 2 45 3 1 85 4 0.387
## 6 18 199 51 2 1 0 1 62 2 5 51 6 0.424
## 7 1 176 30 16 8 9 3 47 3 4 51 5 0.382
## 8 3 71 17 7 1 1 2 15 0 3 42 3 0.370
## 9 28 248 86 11 5 0 1 87 12 3 115 8 0.427
## 10 5 167 39 42 7 4 3 92 1 2 84 5 0.430
## 長打率
## 1 0.512
## 2 0.623
## 3 0.469
## 4 0.532
## 5 0.527
## 6 0.557
## 7 0.381
## 8 0.420
## 9 0.585
## 10 0.396
データの加工
まずは、データの加工を行う。今回は因子分析なので順位・選手名・チームは不要。試合・打席数・打数も野手能力とは無関係と判断し削除する。また、安打から二塁打・三塁打・本塁打を引いて単打を新たな変数として追加する。新たなデータフレームは以下の通りである。(上位10名まで)
## 打率 得点 安打 単打 二塁打 三塁打 本塁打 塁打 打点 盗塁 盗塁刺 犠打 犠飛
## 1 0.350 55 143 106 22 1 14 209 64 8 5 0 4
## 2 0.342 90 146 89 23 5 29 266 86 7 2 0 3
## 3 0.340 56 126 89 31 1 5 174 60 4 0 0 5
## 4 0.328 48 132 91 20 1 20 214 69 0 0 0 3
## 5 0.323 88 140 91 29 1 19 228 53 14 8 1 2
## 6 0.317 64 113 64 30 1 18 199 51 2 1 0 1
## 7 0.316 58 146 121 21 3 1 176 30 16 8 9 3
## 8 0.308 38 52 40 8 1 3 71 17 7 1 1 2
## 9 0.307 70 130 70 30 2 28 248 86 11 5 0 1
## 10 0.306 82 129 104 17 3 5 167 39 42 7 4 3
## 四球 敬遠 死球 三振 併殺打 出塁率 長打率
## 1 72 17 8 29 6 0.453 0.512
## 2 84 8 1 103 2 0.449 0.623
## 3 89 3 2 72 6 0.465 0.469
## 4 42 1 4 58 13 0.395 0.532
## 5 45 3 1 85 4 0.387 0.527
## 6 62 2 5 51 6 0.424 0.557
## 7 47 3 4 51 5 0.382 0.381
## 8 15 0 3 42 3 0.370 0.420
## 9 87 12 3 115 8 0.427 0.585
## 10 92 1 2 84 5 0.430 0.396
それぞれの変数ごとの基礎統計量は、以下の通りである。
summary(df2)
## 打率 得点 安打 単打
## Min. :0.1680 Min. :10.00 Min. : 30.00 Min. : 16.00
## 1st Qu.:0.2430 1st Qu.:25.00 1st Qu.: 60.50 1st Qu.: 41.50
## Median :0.2660 Median :38.00 Median : 83.00 Median : 55.00
## Mean :0.2620 Mean :40.41 Mean : 84.47 Mean : 58.28
## 3rd Qu.:0.2845 3rd Qu.:51.50 3rd Qu.:109.00 3rd Qu.: 70.50
## Max. :0.3500 Max. :90.00 Max. :146.00 Max. :121.00
## 二塁打 三塁打 本塁打 塁打
## Min. : 1.00 Min. :0.000 Min. : 0.000 Min. : 37.0
## 1st Qu.: 9.50 1st Qu.:0.000 1st Qu.: 4.000 1st Qu.: 86.5
## Median :14.00 Median :1.000 Median : 8.000 Median :126.0
## Mean :14.96 Mean :1.396 Mean : 9.829 Mean :131.7
## 3rd Qu.:19.00 3rd Qu.:2.000 3rd Qu.:13.500 3rd Qu.:169.0
## Max. :31.00 Max. :8.000 Max. :32.000 Max. :266.0
## 打点 盗塁 盗塁刺 犠打
## Min. : 8.00 Min. : 0.000 Min. :0.00 Min. : 0.000
## 1st Qu.: 23.00 1st Qu.: 1.000 1st Qu.:0.00 1st Qu.: 0.000
## Median : 35.00 Median : 3.000 Median :2.00 Median : 1.000
## Mean : 41.33 Mean : 5.432 Mean :2.36 Mean : 3.793
## 3rd Qu.: 55.00 3rd Qu.: 7.500 3rd Qu.:4.00 3rd Qu.: 6.000
## Max. :108.00 Max. :50.000 Max. :9.00 Max. :22.000
## 犠飛 四球 敬遠 死球
## Min. : 0.000 Min. : 6.00 Min. : 0.000 Min. : 0.000
## 1st Qu.: 1.000 1st Qu.:22.00 1st Qu.: 0.000 1st Qu.: 1.000
## Median : 2.000 Median :31.00 Median : 1.000 Median : 2.000
## Mean : 2.045 Mean :35.68 Mean : 1.829 Mean : 3.144
## 3rd Qu.: 3.000 3rd Qu.:45.00 3rd Qu.: 2.000 3rd Qu.: 4.000
## Max. :10.000 Max. :92.00 Max. :17.000 Max. :17.000
## 三振 併殺打 出塁率 長打率
## Min. : 23.00 Min. : 1.000 Min. :0.2130 Min. :0.2310
## 1st Qu.: 49.50 1st Qu.: 4.000 1st Qu.:0.3110 1st Qu.:0.3555
## Median : 61.00 Median : 6.000 Median :0.3360 Median :0.3940
## Mean : 66.49 Mean : 6.784 Mean :0.3383 Mean :0.4051
## 3rd Qu.: 82.50 3rd Qu.: 9.000 3rd Qu.:0.3630 3rd Qu.:0.4440
## Max. :150.00 Max. :21.000 Max. :0.4650 Max. :0.6230
標準化
打率や出塁率は割合表示のため、単位をそろえるために標準化を行う。 $$ z = \frac{x-\bar{x}}{s} $$
ただし、$ s $は標準偏差・$ \bar{x} $は標本平均。それぞれの項に対して、この式で標準化できる。標準化したデータは平均0、分散(標準偏差)1になるため、それぞれの変数で比較が可能になります。統計ソフトのRならscale関数で標準化できる。
# 標準化 df3 <- scale(df2) head(df3, 10)
## 打率 得点 安打 単打 二塁打 三塁打
## [1,] 2.560554 0.7772243 1.9230913 2.1828539 1.0059082 -0.2259483
## [2,] 2.327681 2.6422745 2.0216583 1.4052354 1.1488734 2.0540758
## [3,] 2.269463 0.8305114 1.3645453 1.4052354 2.2925950 -0.2259483
## [4,] 1.920153 0.4042142 1.5616792 1.4967199 0.7199779 -0.2259483
## [5,] 1.774608 2.5357002 1.8245244 1.4967199 2.0066646 -0.2259483
## [6,] 1.599953 1.2568086 0.9374219 0.2616787 2.1496298 -0.2259483
## [7,] 1.570844 0.9370857 2.0216583 2.8689879 0.8629431 0.9140637
## [8,] 1.337971 -0.1286573 -1.0667725 -0.8361357 -0.9956044 -0.2259483
## [9,] 1.308862 1.5765315 1.4959679 0.5361323 2.1496298 0.3440577
## [10,] 1.279752 2.2159773 1.4631123 2.0913694 0.2910823 0.9140637
## 本塁打 塁打 打点 盗塁 盗塁刺 犠打
## [1,] 0.5253761 1.4421849 1.0335827 0.3264348 1.0929837 -0.74799341
## [2,] 2.4146877 2.5057941 2.0367658 0.1992970 -0.1492128 -0.74799341
## [3,] -0.6082108 0.7890915 0.8511857 -0.1821162 -0.9773438 -0.74799341
## [4,] 1.2811008 1.5354839 1.2615788 -0.6906672 -0.9773438 -0.74799341
## [5,] 1.1551466 1.7967213 0.5319911 1.0892613 2.3351802 -0.55077900
## [6,] 1.0291925 1.2555868 0.4407926 -0.4363917 -0.5632783 -0.74799341
## [7,] -1.1120272 0.8264111 -0.5167913 1.3435367 2.3351802 1.02693632
## [8,] -0.8601190 -1.1328691 -1.1095814 0.1992970 -0.5632783 -0.55077900
## [9,] 2.2887336 2.1699175 2.0367658 0.7078480 1.0929837 -0.74799341
## [10,] -0.6082108 0.6584728 -0.1063982 4.6491182 1.9211147 0.04086425
## 犠飛 四球 敬遠 死球 三振 併殺打
## [1,] 1.1593571 1.8993654 5.81885981 1.6543528 -1.5770971 -0.1859261
## [2,] 0.5663219 2.5269900 2.36693526 -0.7304934 1.5361631 -1.1347900
## [3,] 1.7523923 2.7885002 0.44919939 -0.3898011 0.2319595 -0.1859261
## [4,] 0.5663219 0.3303039 -0.31789495 0.2915835 -0.3570357 1.4745859
## [5,] -0.0267133 0.4872101 0.44919939 -0.7304934 0.7788836 -0.6603581
## [6,] -0.6197485 1.3763449 0.06565222 0.6322758 -0.6515333 -0.1859261
## [7,] 0.5663219 0.5918142 0.44919939 0.2915835 -0.6515333 -0.4231421
## [8,] -0.0267133 -1.0818514 -0.70144213 -0.0491088 -1.0301730 -0.8975741
## [9,] -0.6197485 2.6838961 3.90112395 -0.0491088 2.0410161 0.2885059
## [10,] 0.5663219 2.9454064 -0.31789495 -0.3898011 0.7368125 -0.4231421
## 出塁率 長打率
## [1,] 2.6769107 1.3896882
## [2,] 2.5835594 2.8321774
## [3,] 2.9569645 0.8308860
## [4,] 1.3233173 1.6495961
## [5,] 1.1366148 1.5846191
## [6,] 2.0001140 1.9744811
## [7,] 1.0199257 -0.3127091
## [8,] 0.7398719 0.1941115
## [9,] 2.0701275 2.3383523
## [10,] 2.1401409 -0.1177781
相関行列
ここでは、ざっくりと因子分析をしたいので数学的な話の厳密な定義は省略します。簡単にいうと、$n$個の変数$ X_1,X_2,...,X_n $に対して、$ ij $成分に$ X_i $と$ X_j $の相関係数$ \rho_{ij} $を並べた行列。
行列の知識がないと理解するのは難しいが、単純に相関係数を並べた行列という理解でOK。対角成分は自己相関なので1になる。また、下の図はpsychパッケージ内のcor.plot関数で出力。
#相関行列 C <- cor(df3) round(C, digits = 2)
## 打率 得点 安打 単打 二塁打 三塁打 本塁打 塁打 打点 盗塁 盗塁刺
## 打率 1.00 0.54 0.69 0.68 0.58 0.24 0.21 0.58 0.34 0.22 0.14
## 得点 0.54 1.00 0.87 0.74 0.71 0.35 0.58 0.87 0.68 0.41 0.38
## 安打 0.69 0.87 1.00 0.92 0.81 0.35 0.50 0.92 0.71 0.28 0.31
## 単打 0.68 0.74 0.92 1.00 0.60 0.39 0.17 0.70 0.44 0.40 0.44
## 二塁打 0.58 0.71 0.81 0.60 1.00 0.13 0.54 0.84 0.70 0.08 0.09
## 三塁打 0.24 0.35 0.35 0.39 0.13 1.00 -0.08 0.25 -0.01 0.51 0.40
## 本塁打 0.21 0.58 0.50 0.17 0.54 -0.08 1.00 0.79 0.89 -0.18 -0.18
## 塁打 0.58 0.87 0.92 0.70 0.84 0.25 0.79 1.00 0.89 0.12 0.14
## 打点 0.34 0.68 0.71 0.44 0.70 -0.01 0.89 0.89 1.00 -0.10 -0.12
## 盗塁 0.22 0.41 0.28 0.40 0.08 0.51 -0.18 0.12 -0.10 1.00 0.68
## 盗塁刺 0.14 0.38 0.31 0.44 0.09 0.40 -0.18 0.14 -0.12 0.68 1.00
## 犠打 -0.19 0.02 -0.04 0.12 -0.13 0.31 -0.41 -0.20 -0.34 0.34 0.41
## 犠飛 0.11 0.31 0.40 0.35 0.32 0.01 0.28 0.39 0.49 0.01 0.02
## 四球 0.40 0.75 0.66 0.51 0.60 0.10 0.57 0.71 0.67 0.20 0.14
## 敬遠 0.41 0.41 0.46 0.34 0.42 0.03 0.47 0.53 0.47 -0.02 0.06
## 死球 0.04 0.28 0.21 0.15 0.17 0.02 0.26 0.26 0.28 0.01 0.05
## 三振 0.01 0.55 0.48 0.27 0.47 0.23 0.65 0.64 0.67 0.12 0.06
## 併殺打 0.16 0.29 0.44 0.33 0.41 -0.24 0.46 0.50 0.59 -0.22 -0.10
## 出塁率 0.81 0.61 0.60 0.52 0.56 0.13 0.35 0.57 0.43 0.20 0.09
## 長打率 0.62 0.59 0.58 0.29 0.67 0.07 0.83 0.79 0.76 -0.09 -0.16
## 犠打 犠飛 四球 敬遠 死球 三振 併殺打 出塁率 長打率
## 打率 -0.19 0.11 0.40 0.41 0.04 0.01 0.16 0.81 0.62
## 得点 0.02 0.31 0.75 0.41 0.28 0.55 0.29 0.61 0.59
## 安打 -0.04 0.40 0.66 0.46 0.21 0.48 0.44 0.60 0.58
## 単打 0.12 0.35 0.51 0.34 0.15 0.27 0.33 0.52 0.29
## 二塁打 -0.13 0.32 0.60 0.42 0.17 0.47 0.41 0.56 0.67
## 三塁打 0.31 0.01 0.10 0.03 0.02 0.23 -0.24 0.13 0.07
## 本塁打 -0.41 0.28 0.57 0.47 0.26 0.65 0.46 0.35 0.83
## 塁打 -0.20 0.39 0.71 0.53 0.26 0.64 0.50 0.57 0.79
## 打点 -0.34 0.49 0.67 0.47 0.28 0.67 0.59 0.43 0.76
## 盗塁 0.34 0.01 0.20 -0.02 0.01 0.12 -0.22 0.20 -0.09
## 盗塁刺 0.41 0.02 0.14 0.06 0.05 0.06 -0.10 0.09 -0.16
## 犠打 1.00 -0.06 -0.13 -0.26 -0.04 -0.07 -0.19 -0.24 -0.45
## 犠飛 -0.06 1.00 0.38 0.14 0.15 0.25 0.40 0.16 0.17
## 四球 -0.13 0.38 1.00 0.48 0.27 0.56 0.30 0.75 0.54
## 敬遠 -0.26 0.14 0.48 1.00 0.28 0.23 0.17 0.48 0.52
## 死球 -0.04 0.15 0.27 0.28 1.00 0.12 0.20 0.25 0.19
## 三振 -0.07 0.25 0.56 0.23 0.12 1.00 0.29 0.17 0.45
## 併殺打 -0.19 0.40 0.30 0.17 0.20 0.29 1.00 0.16 0.33
## 出塁率 -0.24 0.16 0.75 0.48 0.25 0.17 0.16 1.00 0.64
## 長打率 -0.45 0.17 0.54 0.52 0.19 0.45 0.33 0.64 1.00
ここまで、確認してきた通り変数が多すぎて何も見えてこない。このような時に主成分分析や因子分析が役に立つ。主成分分析と因子分析では逆の因果を想定しており全く違うものであるが本質は同じである。今回は、ミートやパワーが成績に影響を及ぼしていると想定して因子分析を行う。
因子分析
因子分析の手順として、まずは因子数を適切に選択する必要がある。因子分析には、探索的因子分析と、確認的因子分析の2通りがあり今回のように、因子が想定されている場合、本当は確認的因子分析を用いるべきであるが因子数の推定から行いたいためここでは探索的因子分析を用いることとする。
因子数の決定
因子数の決定には、古典的な方法に相関行列の固有値を算出し1以上の因子を採用するというカイザー・ガットマン基準があるがこの基準は、標準誤差が考慮されていないため、近年ではあまり良い基準とされていない。その代わりに、標準誤差を考慮した平行分析やMAP基準といった基準で因子数を決定するのが普通である。そこで、本稿でも時流に乗っかって平行分析とMAP基準で因子数を決定する。
平行分析
平行分析とは、カイザー・ガットマン基準の改良版ともいえる。変数の数と標本サイズが実際のデータと同一のデータを(n)個作成し、(n)個のデータから固有値を求めて平均を取った値を基準とする。カイザー・ガットマン基準では1で固定であったが、乱数から求めることで誤差分1よりも大きくなっている。
# 平行分析 fa.parallel(C,fa="pc", n.iter = 100)
平行分析の結果因子数は3と提案された。今回想定している因子数は弾道・ミート・パワー・走力の4因子のため保留といった形になった。
MAP基準
MAP基準に関しては、簡潔に説明するのが難しい。ニュアンスとしては、因子を統制変数として相関行列から偏相関行列を求めて偏相関行列の2乗和が最小になる因子数を提案するといった感じである。厳密に理解するためには、固有値分解と偏相関係数の理解が前提知識で必要となるため、ここでは割愛するが偏相関係数は以下の式で定義される。
$$
r{xy | z} = \frac{r{xy} - r{xz}r{yz}} {\sqrt{1 - r{xz}^2} \sqrt{1 - r{yz}^2}}
$$
ただし、$z$を統制変数とした$x,y$の偏相関係数である。要は、統制変数に選択した因子が適切だったら偏相関行列の2乗和の値が小さくなるためMAPが最小になる因子数を選択すればよい。Rではpsychパッケージ内のVSS関数を用いることで計算してくれる。
# MAPの算出 VSS(df3, n=5)$map
## [1] 0.09415755 0.07065966 0.06971880 0.06742918 0.07205021
map基準を用いると、提案される因子数は4つであり我々が想定している因子(弾道・ミート・パワー・走力)で考えると妥当である。そのため、今回は因子数を4つにして分析を行う。
初期解
ここまで、行ってようやく因子分析が行える。因子分析の醍醐味と言えば因子軸の回転であるが、まずは回転を行わない因子負荷の推定を行う。これは初期解とも呼ばれる。因子分析を実行するfa関数では第二引数に因子数、第三引数に推定法(ここでは最小二乗法)、第四引数に回転法を指定する。
# 初期解 fa.df <- fa(df3, nfactors = 4, fm="minres", rotate="none")
## In factor.scores, the correlation matrix is singular, an approximation is used
print(fa.df, sort = T, digits = 3)
## Factor Analysis using method = minres
## Call: fa(r = df3, nfactors = 4, rotate = "none", fm = "minres")
## Standardized loadings (pattern matrix) based upon correlation matrix
## item MR1 MR2 MR3 MR4 h2 u2 com
## 塁打 8 0.983 -0.042 0.115 -0.003 0.9810 0.0190 1.03
## 安打 3 0.927 0.273 0.033 -0.225 0.9847 0.0153 1.30
## 得点 2 0.881 0.282 0.134 0.119 0.8881 0.1119 1.29
## 打点 9 0.872 -0.391 0.237 -0.046 0.9711 0.0289 1.56
## 二塁打 5 0.814 -0.004 -0.035 -0.095 0.6722 0.3278 1.03
## 長打率 20 0.793 -0.347 -0.259 0.277 0.8943 0.1057 1.90
## 四球 14 0.775 0.016 0.048 0.117 0.6165 0.3835 1.05
## 本塁打 7 0.743 -0.532 0.202 0.252 0.9398 0.0602 2.26
## 単打 4 0.726 0.514 -0.027 -0.375 0.9333 0.0667 2.37
## 出塁率 19 0.703 0.110 -0.488 0.118 0.7583 0.2417 1.91
## 三振 17 0.588 -0.114 0.482 0.248 0.6525 0.3475 2.40
## 敬遠 15 0.545 -0.103 -0.174 0.093 0.3467 0.6533 1.34
## 併殺打 18 0.468 -0.324 0.190 -0.455 0.5668 0.4332 3.12
## 犠飛 13 0.398 -0.067 0.219 -0.291 0.2952 0.7048 2.53
## 死球 16 0.278 -0.057 0.063 0.010 0.0845 0.9155 1.20
## 盗塁 10 0.170 0.751 0.115 0.237 0.6615 0.3385 1.36
## 盗塁刺 11 0.152 0.708 0.181 0.060 0.5613 0.4387 1.24
## 三塁打 6 0.212 0.559 0.102 0.216 0.4142 0.5858 1.69
## 犠打 12 -0.211 0.541 0.287 -0.051 0.4223 0.5777 1.88
## 打率 1 0.662 0.260 -0.676 -0.092 0.9712 0.0288 2.33
##
## MR1 MR2 MR3 MR4
## SS loadings 8.504 2.863 1.386 0.863
## Proportion Var 0.425 0.143 0.069 0.043
## Cumulative Var 0.425 0.568 0.638 0.681
## Proportion Explained 0.625 0.210 0.102 0.063
## Cumulative Proportion 0.625 0.835 0.937 1.000
##
## Mean item complexity = 1.7
## Test of the hypothesis that 4 factors are sufficient.
##
## The degrees of freedom for the null model are 190 and the objective function was 64.2 with Chi Square of 6580.52
## The degrees of freedom for the model are 116 and the objective function was 42.235
##
## The root mean square of the residuals (RMSR) is 0.038
## The df corrected root mean square of the residuals is 0.048
##
## The harmonic number of observations is 111 with the empirical chi square 59.661 with prob < 1
## The total number of observations was 111 with Likelihood Chi Square = 4216.486 with prob < 0
##
## Tucker Lewis Index of factoring reliability = -0.0799
## RMSEA index = 0.5642 and the 90 % confidence intervals are 0.5523 0.5816
## BIC = 3670.18
## Fit based upon off diagonal values = 0.993
出力結果を見ると、因子が単純構造になっていない。単純構造とは、各観測変数の1つの因子だけから高い因子負荷を受け他の因子からの因子負荷は0に近いことをいう。例えば、単打の因子負荷を見ると、MR1から0.726の因子負荷を受けているのにも関わらず、MR2という因子からも0.514の因子負荷を受けている。こうした構造は解釈が難しいことから因子軸の回転をおこなう。
因子軸の回転
因子軸の回転には大きく分けて、直交回転と斜交回転の2つがありそれぞれ有名な回転法がバリマックス回転とプロマックス回転である。これらの回転法も様々な理由から今ではあまり使われないが、今回はざっくりと因子分析を行うことが目的なのでバリマックス回転とプロマックス回転を用いることとする。
バリマックス回転
バリマックス回転は有名な直交回転であり、因子分析の中で1番使われている回転といっても良い。直交回転を行うときは、因子間に相関が全くないことが想定されるときに行う。軸を直交させたまま回転を行うという制約があることから、一般的に単純構造にはあまり近づかない。
# バリマックス回転 fa.df2 <- fa(df3, nfactors = 4, fm="minres", rotate="varimax")
## In factor.scores, the correlation matrix is singular, an approximation is used
print(fa.df2, sort = T, digits = 3)
## Factor Analysis using method = minres
## Call: fa(r = df3, nfactors = 4, rotate = "varimax", fm = "minres")
## Standardized loadings (pattern matrix) based upon correlation matrix
## item MR1 MR3 MR2 MR4 h2 u2 com
## 本塁打 7 0.891 0.195 -0.284 0.166 0.9398 0.0602 1.38
## 打点 9 0.798 0.258 -0.179 0.486 0.9711 0.0289 2.02
## 三振 17 0.767 -0.056 0.161 0.188 0.6525 0.3475 1.22
## 塁打 8 0.723 0.473 0.135 0.465 0.9810 0.0190 2.60
## 長打率 20 0.673 0.621 -0.232 0.030 0.8943 0.1057 2.24
## 得点 2 0.615 0.450 0.449 0.325 0.8881 0.1119 3.34
## 四球 14 0.594 0.417 0.161 0.252 0.6165 0.3835 2.38
## 死球 16 0.239 0.102 0.007 0.131 0.0845 0.9155 1.96
## 打率 1 0.016 0.963 0.127 0.167 0.9712 0.0288 1.10
## 出塁率 19 0.281 0.818 0.086 0.061 0.7583 0.2417 1.27
## 二塁打 5 0.486 0.499 0.086 0.424 0.6722 0.3278 3.01
## 敬遠 15 0.371 0.442 -0.050 0.106 0.3467 0.6533 2.10
## 盗塁 10 0.030 0.125 0.798 -0.087 0.6615 0.3385 1.08
## 盗塁刺 11 -0.027 0.052 0.743 0.074 0.5613 0.4387 1.03
## 三塁打 6 0.107 0.130 0.619 -0.057 0.4142 0.5858 1.17
## 犠打 12 -0.223 -0.271 0.546 0.041 0.4223 0.5777 1.85
## 併殺打 18 0.281 0.063 -0.262 0.644 0.5668 0.4332 1.75
## 単打 4 0.118 0.515 0.507 0.630 0.9333 0.0667 2.96
## 安打 3 0.434 0.550 0.356 0.606 0.9847 0.0153 3.49
## 犠飛 13 0.241 0.041 0.005 0.485 0.2952 0.7048 1.48
##
## MR1 MR3 MR2 MR4
## SS loadings 4.637 3.826 2.794 2.359
## Proportion Var 0.232 0.191 0.140 0.118
## Cumulative Var 0.232 0.423 0.563 0.681
## Proportion Explained 0.341 0.281 0.205 0.173
## Cumulative Proportion 0.341 0.622 0.827 1.000
##
## Mean item complexity = 2
## Test of the hypothesis that 4 factors are sufficient.
##
## The degrees of freedom for the null model are 190 and the objective function was 64.2 with Chi Square of 6580.52
## The degrees of freedom for the model are 116 and the objective function was 42.235
##
## The root mean square of the residuals (RMSR) is 0.038
## The df corrected root mean square of the residuals is 0.048
##
## The harmonic number of observations is 111 with the empirical chi square 59.661 with prob < 1
## The total number of observations was 111 with Likelihood Chi Square = 4216.486 with prob < 0
##
## Tucker Lewis Index of factoring reliability = -0.0799
## RMSEA index = 0.5642 and the 90 % confidence intervals are 0.5523 0.5816
## BIC = 3670.18
## Fit based upon off diagonal values = 0.993
プロマックス回転
プロマックス回転は有名な斜交回転であり、バリマックス回転の次に因子分析でよく用いられている回転法である。バリマックス回転と違い軸の直交性は担保しないことから因子間の相関も算出することができる。また、一般的に単純構造になりやすいといわれている。
# プロマックス回転 fa.df3 <- fa(df3, nfactors = 4, fm="minres", rotate="promax")
## Loading required namespace: GPArotation
## In factor.scores, the correlation matrix is singular, an approximation is used
print(fa.df3, sort = T, digits = 3)
## Factor Analysis using method = minres
## Call: fa(r = df3, nfactors = 4, rotate = "promax", fm = "minres")
## Standardized loadings (pattern matrix) based upon correlation matrix
## item MR1 MR3 MR2 MR4 h2 u2 com
## 本塁打 7 1.027 -0.104 -0.223 -0.046 0.9398 0.0602 1.12
## 三振 17 0.989 -0.429 0.250 0.013 0.6525 0.3475 1.51
## 打点 9 0.768 -0.041 -0.196 0.355 0.9711 0.0289 1.56
## 長打率 20 0.610 0.551 -0.230 -0.233 0.8943 0.1057 2.59
## 塁打 8 0.606 0.238 0.095 0.280 0.9810 0.0190 1.81
## 得点 2 0.544 0.238 0.436 0.108 0.8881 0.1119 2.42
## 四球 14 0.536 0.245 0.152 0.060 0.6165 0.3835 1.61
## 死球 16 0.228 0.016 0.004 0.077 0.0845 0.9155 1.24
## 打率 1 -0.436 1.203 -0.022 0.024 0.9712 0.0288 1.26
## 出塁率 19 0.013 0.927 0.012 -0.151 0.7583 0.2417 1.05
## 敬遠 15 0.267 0.412 -0.076 -0.043 0.3467 0.6533 1.82
## 二塁打 5 0.290 0.379 0.015 0.297 0.6722 0.3278 2.82
## 盗塁 10 0.072 0.077 0.834 -0.220 0.6615 0.3385 1.17
## 盗塁刺 11 -0.035 -0.012 0.748 0.015 0.5613 0.4387 1.01
## 三塁打 6 0.149 0.067 0.652 -0.186 0.4142 0.5858 1.30
## 犠打 12 -0.161 -0.324 0.562 0.103 0.4223 0.5777 1.88
## 併殺打 18 0.098 -0.097 -0.362 0.737 0.5668 0.4332 1.54
## 単打 4 -0.253 0.475 0.358 0.609 0.9333 0.0667 2.98
## 犠飛 13 0.129 -0.115 -0.057 0.528 0.2952 0.7048 1.25
## 安打 3 0.152 0.411 0.246 0.501 0.9847 0.0153 2.65
##
## MR1 MR3 MR2 MR4
## SS loadings 4.678 3.904 2.756 2.278
## Proportion Var 0.234 0.195 0.138 0.114
## Cumulative Var 0.234 0.429 0.567 0.681
## Proportion Explained 0.344 0.287 0.202 0.167
## Cumulative Proportion 0.344 0.630 0.833 1.000
##
## With factor correlations of
## MR1 MR3 MR2 MR4
## MR1 1.000 0.643 0.015 0.565
## MR3 0.643 1.000 0.212 0.504
## MR2 0.015 0.212 1.000 0.259
## MR4 0.565 0.504 0.259 1.000
##
## Mean item complexity = 1.7
## Test of the hypothesis that 4 factors are sufficient.
##
## The degrees of freedom for the null model are 190 and the objective function was 64.2 with Chi Square of 6580.52
## The degrees of freedom for the model are 116 and the objective function was 42.235
##
## The root mean square of the residuals (RMSR) is 0.038
## The df corrected root mean square of the residuals is 0.048
##
## The harmonic number of observations is 111 with the empirical chi square 59.661 with prob < 1
## The total number of observations was 111 with Likelihood Chi Square = 4216.486 with prob < 0
##
## Tucker Lewis Index of factoring reliability = -0.0799
## RMSEA index = 0.5642 and the 90 % confidence intervals are 0.5523 0.5816
## BIC = 3670.18
## Fit based upon off diagonal values = 0.993
因子負荷の可視化
今回は、回転法にプロマックス回転を用いることとする。因子負荷の推定ができたので次は視覚的に理解するために因子負荷の可視化を行い、各因子をそれぞれ解釈する必要がある。因子負荷の可視化にはfa.diagram関数を用いた。
#因子負荷の可視化 fa.diagram(fa.df3)
ここから各因子の解釈を行うが、ここが一番曖昧で難しい。図を見るとMR2に関しては盗塁や三塁打に対して高い付加をかけているため走力と断定できる。盗塁刺が多いのも、盗塁企画数が高いことを考えれば自然である。MR1という因子は本塁打や長打率・塁打が高いことからパワーと考えた。パワーが高いと勝負を避けられるケースも多いことから四球にも寄与していると考えた。MR4に関してはミートであろう。単打や安打に高い付加をかけていること。また、併殺打や犠飛の多さはバットに当てることの多さから説明できなくもないだろう。問題は、MR3である。当初、弾道の因子を想定していたが明らかに弾道ではない。こういった解釈の難しい因子が出てくるのが因子分析の特徴でもある。解釈不能な因子が出てきてしまったので、因子数を3つにして再度分析を行う。
## In factor.scores, the correlation matrix is singular, an approximation is used
## Factor Analysis using method = minres
## Call: fa(r = df3, nfactors = 3, rotate = "promax", fm = "minres")
## Standardized loadings (pattern matrix) based upon correlation matrix
## item MR1 MR3 MR2 h2 u2 com
## 打点 9 1.005 -0.026 -0.192 0.9820 0.01797 1.07
## 三振 17 0.933 -0.370 0.133 0.5698 0.43023 1.35
## 本塁打 7 0.925 -0.058 -0.338 0.8568 0.14324 1.27
## 塁打 8 0.789 0.255 0.104 0.9889 0.01111 1.24
## 得点 2 0.600 0.257 0.408 0.8793 0.12072 2.17
## 併殺打 18 0.597 -0.072 -0.177 0.3226 0.67742 1.20
## 四球 14 0.553 0.265 0.111 0.6050 0.39504 1.53
## 安打 3 0.513 0.410 0.354 0.9233 0.07667 2.74
## 犠飛 13 0.504 -0.105 0.056 0.2003 0.79968 1.11
## 二塁打 5 0.494 0.387 0.063 0.6654 0.33464 1.93
## 死球 16 0.278 0.020 0.000 0.0853 0.91471 1.01
## 打率 1 -0.438 1.221 0.043 0.9918 0.00819 1.26
## 出塁率 19 -0.115 0.933 -0.015 0.7377 0.26228 1.03
## 長打率 20 0.402 0.557 -0.330 0.7862 0.21381 2.51
## 敬遠 15 0.217 0.422 -0.109 0.3372 0.66278 1.65
## 盗塁刺 11 -0.016 -0.013 0.761 0.5741 0.42588 1.00
## 盗塁 10 -0.092 0.089 0.754 0.5884 0.41162 1.06
## 犠打 12 -0.065 -0.336 0.605 0.4279 0.57215 1.59
## 三塁打 6 0.007 0.078 0.580 0.3610 0.63902 1.04
## 単打 4 0.217 0.445 0.514 0.7435 0.25647 2.33
##
## MR1 MR3 MR2
## SS loadings 5.806 4.016 2.804
## Proportion Var 0.290 0.201 0.140
## Cumulative Var 0.290 0.491 0.631
## Proportion Explained 0.460 0.318 0.222
## Cumulative Proportion 0.460 0.778 1.000
##
## With factor correlations of
## MR1 MR3 MR2
## MR1 1.000 0.664 0.086
## MR3 0.664 1.000 0.191
## MR2 0.086 0.191 1.000
##
## Mean item complexity = 1.5
## Test of the hypothesis that 3 factors are sufficient.
##
## The degrees of freedom for the null model are 190 and the objective function was 64.2 with Chi Square of 6580.52
## The degrees of freedom for the model are 133 and the objective function was 46.214
##
## The root mean square of the residuals (RMSR) is 0.055
## The df corrected root mean square of the residuals is 0.066
##
## The harmonic number of observations is 111 with the empirical chi square 129.694 with prob < 0.565
## The total number of observations was 111 with Likelihood Chi Square = 4644.497 with prob < 0
##
## Tucker Lewis Index of factoring reliability = -0.0292
## RMSEA index = 0.5527 and the 90 % confidence intervals are 0.5417 0.5691
## BIC = 4018.13
## Fit based upon off diagonal values = 0.984
因子数を減らしたことでMR1が色々な観測変数に過剰に負荷をかけることになってしまった。MR1は本塁打、二塁打、犠飛が高いことからパワーと判断した。MR3は打率や長打率に寄与していることからミートとした。また、MR2は盗塁や三塁打に寄与していることから走力といえる。最初に疑問にした、走力が安打に影響するかといった問題は、単打に限って言えば走力が関係しているといえる。
ここから、選手ごとに因子得点を当てはめることでパワー・ミート・走力のデータが出せるのだがそれは次回。(やるかも分からない)
後記
初めて、R markdownで文章書いたけど慣れるまで書きにくい。後、ノートパソコンのバッテリーが膨張しててそれもあって書きにくかった。
23°
酒税法改正が株価に与える影響
酒税法改正
2020年10月1日に酒税法が改正され、ビール・発泡酒が減税、第3のビールは増税となる。また、ワインも増税の対象となる。特にビール産業では、第3のビールとビール・発泡酒の価格が近づくことで好調であった第3のビール(新ジャンル)成長が止まる可能性がある。また、今後2020年、2023年、2026年と三段階に渡って酒税法は改正され2026年には種別がなくなり、同じ税率が課せられるようになる。今回の増税はその第一段階である。
種別 | 1L当たり |
ビール | -20円 |
発泡酒(麦芽比率50%以上) | -20円 |
第3のビール(新ジャンル) | +28円 |
ビール類の酒税の税率改正の内容
酒税法改正でビール・発泡酒は減税、新ジャンルは増税へ アサヒビールが大手4社で先駆けて価格改定を通知
https://www.ssnp.co.jp/news/liquor/2020/05/2020-0520-1453-15.html
現在のビール業界では大手4社(サッポロ、キリン、サントリー、アサヒ)がビール全体の99%の売上を担っており、超寡占状態である。以下は大手3社の6ヶ月日足株価推移。(サントリーホールディングスは非上場企業のため、以下は3社間比較を行う)
各社とも持株会社ではあるが、酒類の売上が売上に大きく寄与しているため似たような株価推移をしている。しかし、私は酒税法が改正される10月以降明暗が分かれると予想する。
第3のビールブームの終焉
麦芽含有量に規定がない第3のビール(新ジャンル)は、近年着実に成長を遂げてきた。各企業が商品の値段を上げずに味の改良を行ってきたことに加え、度重なる増税や長く続く不況が低価格競争に有利に働いたからである。
ビール類出荷数量推移(課税移出数量ベース)
上図で明らかな通り、ビール市場全体は縮小している。これは若者のビール離れやRTD(缶チューハイなど)の台頭に起因するものである。こうした中、第3のビールはビール・発泡酒を押さえつけて人気を伸ばしていた。第3のビールの強みは価格の低さである。味は明らかに劣るがビールを常飲したい人にとって「安さ」が最大の武器であった。酒税法の改正は、第3のビールだけが増税の影響を受けるため最大の武器に致命的なダメージを背負うこととなる。
では、第3のビール(新ジャンル)に一番力を入れている企業はどこだろうか。東洋経済新報社が出版している2021年度版業界地図によると、下図のようになっている。
3社間で、比較するとキリンは新ジャンルの構成比が高い。キリンは2018年3月に「本麒麟」という新商品を出し初年度で累計出荷本数(350ml缶換算)は3億本を突破。売上目標は2回も上方修正され、過去10年に発売されたキリンビールの新商品の中で売上No.1になった。加えて近年に入り売上が減少はしているものの、いまだに高い人気を誇っている「のどごし生」のブランドもある。キリンの売上はこうした新ジャンルに支えられている。一方、アサヒは新ジャンルに「クリアアサヒ」がある。クリアアサヒは、東洋経済社の記事によると新ジャンルの中で出荷されたばかりの本麒麟を除くと売上最下位である。「アサヒ・ザ・リッチ」などの新商品を出して対抗はしているがヒット商品を出せていないのが現状である。サッポロも同様に「ゴールドスター」や「麦とホップ」などがいまいちヒットしていない現状である。
つまり、キリンを除く2社は酒税法改正によってビール・発泡酒が売れると利益が増加することが予想される。2020年10月の1回目の改正で消費者がどこまで第3のビールから離れるかは微妙なところだが、2026年には第3のビール離れが加速することは間違いないだろう。新ジャンル以外のヒット商品を出す企業に注目したい。
オンライン飲食予約事業者株価の今後の展望
Go To Eat
8/25 Go To Eatキャンペーンのオンライン飲食予約事業者の採択結果が発表された。申し込んだ事業者は18件であったが、実際に採択された事業者は13団体であった。以下はキャンペーンへのリンクと採択された13団体のリスト。
「Go To Eatキャンペーン事業」について
https://www.maff.go.jp/j/shokusan/gaisyoku/hoseigoto.html
オンライン飲食予約事業者 契約候補者
1 株式会社ぐるなび
2 株式会社カカクコム
3 ヤフー株式会社
4 株式会社一休
5 株式会社EPARK グルメ
6 株式会社リクルート
7「フードテックパートナー」
株式会社favy
株式会社トレタ
株式会社ポケットチェンジ
8 スターツ出版株式会社
9 Retty株式会社
10 auコマース&ライフ株式会社
11 株式会社USEN Media
12 株式会社Fesbase
13 表示灯株式会社
審査の上、契約に至った13団体のうち審査点が一番高かったのは、株式会社ぐるなびという結果になった。食べログを運営している株式会社カカクコムは実施体制の適格性という項目でぐるなびに離された。
さて、無事に採択された13団体のうち上場している企業は、
1. 株式会社ぐるなび(TYO)
2. 株式会社カカクコム(TYO)
3. Zホールディングス(ヤフー株式会社)
4. 株式会社リクルート
以上の4社である。
多角的な事業を行っている下2社にくらべ、ぐるなびとカカクコムは飲食予約サイトが主な事業となっており両社は似たような株価推移をしている。
直近6ヶ月のぐるなびとカカクコムの株価
2社間で、株価比較を行うと山と谷がほぼ同じ周期で存在していることがわかる。ここで注目するべきは3月下旬にコロナの影響を受け下落した株価は、7月まででゆっくり戻してきた。しかし、7月下旬から8月頭に株価が下落した。この下落は全国での感染再拡大が原因と考えられる。その後株価は上昇しておりGo To Eatへの期待感の現れが伺える。このあと、株価推移はGo To Eatの成功具合に左右されることになる。
Go To Eat は成功するのか
Go To Eat に先駆けて始まったGo To トラベルは利用者数が200万人を突破しており当初の予想よりも、多くの人が利用している。
Go To利用者1カ月で200万人 効果は限定的
https://news.yahoo.co.jp/articles/527aae9cdd88da70028a7e50fe11f7384f843f18
また、ここに来て東京をGo To トラベルの対象に加えるという話も出てきており、今後の利用者数増加も見込める。
“東京追加”は9月上旬の感染状況で判断 「GoToトラベルキャンペーン」
効果は限定的という意見もあるにしろ比較的多くの人が利用しているGo To トラベルの例を見れば、Go To Eatも成功する確率は高いと考えられる。また、Go To Eatに関しては東京を外すという選択は取りにくいので、少なくとも9/15以降に実施される可能性が高い。加えて、自治体で管轄されるプレミアム付き食事券発行事業者の2次募集があるらしいので、現実的に考えると10月以降の線も考えられる。
FYI
反対意見も紹介しておきます。
「Go To トラベル」に続いて「Go To イート」もダメそうな5つの理由
https://news.yahoo.co.jp/byline/toryu/20200810-00192537/
飲食店を支援する「Go To Eat」が、トラブル必至の理由とは
https://news.yahoo.co.jp/articles/345c5a7eed948cd36be360400b79f8cbd525c8e4
なぜ、気象予報では平均気温を使わないのか
日本列島は南北に長いため、北と南では気候のあり方が異なる。現に沖縄は亜熱帯気候に属しており、北海道は冷帯に属している。*1当然気候帯の違いは気温推移の違いを生じさせる。そこで、2009年の網走と那覇において、日較差を比較しその大きさの違いから平均気温が気象予報において役に立ちにくい。
まず、図1と図2は網走と那覇それぞれの最高気温と最低気温を一年間プロットしたものである。
(図1)
(図2)
図1と図2を比較すると網走は特に最高気温のブレが目立つ一方、那覇では一年間を通して比較的安定した気候が見られる。特に夏場では最高気温と最低気温の差が大きい日がよく見られる。こうした最高気温と最低気温の差は日較差と呼ばれ一日の気温差を表す。日較差が大きいということは、平均気温からの乖離も大きいということになる。そのため日較差が大きい地域では一日の平均気温が意味をなさない。そこで、2009年の網走と那覇において日較差を比較した。
2009年の網走と那覇における日較差比較 |
||
|
網走 |
|
最大値 |
19.8 |
10.9 |
75%分位点 |
9.2 |
6.1 |
中央値 |
6.8 |
5 |
25%分位点 |
4.9 |
4.1 |
最小値 |
1.6 |
1.7 |
(図3)
図3は2009年の網走と那覇における日較差比較を箱ひげ図として表したものである。この図から明らかなように網走では気温の日較差が大きい。仮に比較的日較差が小さい沖縄県だけの気象予報ならば、平均気温の公表も意味があるといえるが、日較差の大きい網走のような地域を含む全国的な天気予報で、平均気温を発表する必要がないと考察した。
*1 ケッペンの気候区分において亜熱帯という区分はないが、ここではフローンの気候区分・アリソフの気候区分で沖縄は亜熱帯に所属していることから亜熱帯とした。
(参考資料)
気象庁「過去の気象データ・ダウンロード」
<https://www.data.jma.go.jp/gmd/risk/obsdl/index.php>
(最終アクセス:2020/06/26)
饒村曜「冬型が緩んだ時は気温の日較差に注意、日本でも30度以上の記録がある」
<https://news.yahoo.co.jp/byline/nyomurayo/20170205-00067326/>
(最終アクセス:2020/06/26)
シャープのマスクがひどい件
多くの方がコロナウイルスに、うんざりしていると思う。外出自粛要請で家にこもりテレビでは連日コロナウイルスの話しばかり。ニュースにも飽き飽きしてきた。
さて、そんな中4月27日に株式会社シャープのマスクの抽選販売が開始された。これは、先日行われた先着販売でのサーバーダウンの影響を受けて行われたものである。
27日に行われた抽選販売では用意された個数が3万個。(抽選の申し込み数を見て4万個に変更された。)抽選応募期間も1日のみと抽選販売にしては異例の短さであった。
しかし、応募総数は想像を絶するほどだった。
応募総数が約470万人、当選確率は約0.82%ということになる。正直、ここまでの応募になるとはシャープ側も思っていなかっただろう。あわてて1万個増産したところからもそれが伺える。しかし、こういう結果を招いたのもシャープが問題であると私は考える。
なにが問題だったのか
まず筆者が思う第一の問題は、一世帯一回までの応募にすべきだったことである。
今回の抽選では電話番号と名前、メールアドレスを入力するだけなので誰でも応募できた。ましてや、クレジットカードなどの支払い方法登録もないので親が子供の名義を使って応募することも事実上可能であった。これが、結果的に応募総数の肥大化を招いてしまった一番の要因といえる。確かに、通常の使用では1世帯に50枚のマスクでは足りないが、緊急事態の今、なるべく多くの世帯に対して販売すべきではなかったのだろうか。
二つ目の問題は、第二回以降の抽選販売方式にある。次回の抽選販売がいつになるかはこのブログ執筆時点では未定となっているが第二回以降の販売方法に関しては記述がある。
なぜか、第一回の応募者を勝手に第二回以降も抽選の対象としてしまうらしい。つまり、第一回の応募総数よりも第二回以降増加することが確定しているのである。おそらく、サーバーに負荷をかけることを少しでも軽減するためだと思うが、これでは第二回以降も永遠に当たらないだろうなと思ってしまう。
おわりに
さんざん文句を書いたので、最後に良い点も書いておきます。
27日応募、28日抽選、29日に当選メールというのは緊急事態に対して迅速な対応でとても良いと思う。それだけ。