-
Notifications
You must be signed in to change notification settings - Fork 0
/
追加の分析.html
401 lines (363 loc) · 41.5 KB
/
追加の分析.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
<!DOCTYPE html>
<html lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>4 追加の分析 | 三國志で学ぶデータ分析 (Japan.R 2019)</title>
<meta name="description" content="“三国志を題材にしたRを使ったデータ分析のチュートリアル”" />
<meta name="generator" content="bookdown 0.21 and GitBook 2.6.7" />
<meta property="og:title" content="4 追加の分析 | 三國志で学ぶデータ分析 (Japan.R 2019)" />
<meta property="og:type" content="book" />
<meta property="og:url" content="https://gedevan-aleksizde.github.io/Japan.R2019" />
<meta property="og:image" content="https://gedevan-aleksizde.github.io/Japan.R2019images/cover.png" />
<meta property="og:description" content="“三国志を題材にしたRを使ったデータ分析のチュートリアル”" />
<meta name="github-repo" content="Gedevan-Aleksizde/Japan.R2019" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="4 追加の分析 | 三國志で学ぶデータ分析 (Japan.R 2019)" />
<meta name="twitter:description" content="“三国志を題材にしたRを使ったデータ分析のチュートリアル”" />
<meta name="twitter:image" content="https://gedevan-aleksizde.github.io/Japan.R2019images/cover.png" />
<meta name="author" content="ill-identified" />
<meta name="date" content="2021-01-14" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<link rel="prev" href="検証三國志シリーズの人材は年々無個性化しているのか.html"/>
<link rel="next" href="まとめ.html"/>
<script src="libs/header-attrs-2.6/header-attrs.js"></script>
<script src="libs/jquery-2.2.3/jquery.min.js"></script>
<link href="libs/gitbook-2.6.7/css/style.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-table.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-bookdown.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-highlight.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-search.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-fontsettings.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-clipboard.css" rel="stylesheet" />
<script src="libs/kePrint-0.0.1/kePrint.js"></script>
<link href="libs/lightable-0.0.1/lightable.css" rel="stylesheet" />
<style type="text/css">
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
color: #aaaaaa;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
code span.at { color: #7d9029; } /* Attribute */
code span.bn { color: #40a070; } /* BaseN */
code span.bu { } /* BuiltIn */
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
code span.ch { color: #4070a0; } /* Char */
code span.cn { color: #880000; } /* Constant */
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
code span.dt { color: #902000; } /* DataType */
code span.dv { color: #40a070; } /* DecVal */
code span.er { color: #ff0000; font-weight: bold; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #40a070; } /* Float */
code span.fu { color: #06287e; } /* Function */
code span.im { } /* Import */
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
code span.op { color: #666666; } /* Operator */
code span.ot { color: #007020; } /* Other */
code span.pp { color: #bc7a00; } /* Preprocessor */
code span.sc { color: #4070a0; } /* SpecialChar */
code span.ss { color: #bb6688; } /* SpecialString */
code span.st { color: #4070a0; } /* String */
code span.va { color: #19177c; } /* Variable */
code span.vs { color: #4070a0; } /* VerbatimString */
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
</style>
<link rel="stylesheet" href="css/style.css" type="text/css" />
</head>
<body>
<div class="book without-animation with-summary font-size-2 font-family-1" data-basepath=".">
<div class="book-summary">
<nav role="navigation">
<ul class="summary">
<li><a href="./">Top</a></li>
<li class="divider"></li>
<li class="chapter" data-level="" data-path="index.html"><a href="index.html"><i class="fa fa-check"></i>概要</a></li>
<li class="chapter" data-level="1" data-path="イントロダクション.html"><a href="イントロダクション.html"><i class="fa fa-check"></i><b>1</b> イントロダクション</a>
<ul>
<li class="chapter" data-level="1.1" data-path="イントロダクション.html"><a href="イントロダクション.html#三国志の背景"><i class="fa fa-check"></i><b>1.1</b> 三国志の背景</a></li>
<li class="chapter" data-level="1.2" data-path="イントロダクション.html"><a href="イントロダクション.html#コーエーテクモのゲーム三國志シリーズ"><i class="fa fa-check"></i><b>1.2</b> コーエーテクモのゲーム『三國志』シリーズ</a></li>
<li class="chapter" data-level="1.3" data-path="イントロダクション.html"><a href="イントロダクション.html#問題提起"><i class="fa fa-check"></i><b>1.3</b> 問題提起</a></li>
<li class="chapter" data-level="1.4" data-path="イントロダクション.html"><a href="イントロダクション.html#先行関連研究"><i class="fa fa-check"></i><b>1.4</b> 先行・関連研究</a></li>
</ul></li>
<li class="chapter" data-level="2" data-path="前処理.html"><a href="前処理.html"><i class="fa fa-check"></i><b>2</b> 前処理</a>
<ul>
<li class="chapter" data-level="2.1" data-path="前処理.html"><a href="前処理.html#データ取得元"><i class="fa fa-check"></i><b>2.1</b> データ取得元</a></li>
<li class="chapter" data-level="2.2" data-path="前処理.html"><a href="前処理.html#スクレイピング"><i class="fa fa-check"></i><b>2.2</b> スクレイピング</a></li>
<li class="chapter" data-level="2.3" data-path="前処理.html"><a href="前処理.html#データの整然化"><i class="fa fa-check"></i><b>2.3</b> データの整然化</a></li>
<li class="chapter" data-level="2.4" data-path="前処理.html"><a href="前処理.html#さらなる名寄せ処理"><i class="fa fa-check"></i><b>2.4</b> さらなる名寄せ処理</a>
<ul>
<li class="chapter" data-level="" data-path="前処理.html"><a href="前処理.html#三国志以外の登場人物を除外する"><i class="fa fa-check"></i>三国志以外の登場人物を除外する</a></li>
<li class="chapter" data-level="" data-path="前処理.html"><a href="前処理.html#漢字が使われていない名前を検査する"><i class="fa fa-check"></i>漢字が使われていない名前を検査する</a></li>
<li class="chapter" data-level="" data-path="前処理.html"><a href="前処理.html#字以上の名前を検査する"><i class="fa fa-check"></i>3字以上の名前を検査する</a></li>
<li class="chapter" data-level="" data-path="前処理.html"><a href="前処理.html#出現頻度の少ない人名を検査する"><i class="fa fa-check"></i>出現頻度の少ない人名を検査する</a></li>
</ul></li>
<li class="chapter" data-level="2.5" data-path="前処理.html"><a href="前処理.html#機械学習による名寄せ処理"><i class="fa fa-check"></i><b>2.5</b> 機械学習による名寄せ処理</a></li>
<li class="chapter" data-level="2.6" data-path="前処理.html"><a href="前処理.html#草稿-ディープラーニングでなんとかできないか"><i class="fa fa-check"></i><b>2.6</b> [草稿] ディープラーニングでなんとかできないか?</a></li>
<li class="chapter" data-level="2.7" data-path="前処理.html"><a href="前処理.html#補足-dbpedia-を利用した二重チェック"><i class="fa fa-check"></i><b>2.7</b> 補足: DBpedia を利用した二重チェック</a></li>
</ul></li>
<li class="chapter" data-level="3" data-path="検証三國志シリーズの人材は年々無個性化しているのか.html"><a href="検証三國志シリーズの人材は年々無個性化しているのか.html"><i class="fa fa-check"></i><b>3</b> 検証:「三國志」シリーズの人材は年々無個性化しているのか?</a>
<ul>
<li class="chapter" data-level="3.1" data-path="検証三國志シリーズの人材は年々無個性化しているのか.html"><a href="検証三國志シリーズの人材は年々無個性化しているのか.html#ggplot2による視覚化"><i class="fa fa-check"></i><b>3.1</b> <code>ggplot2</code>による視覚化</a>
<ul>
<li class="chapter" data-level="" data-path="検証三國志シリーズの人材は年々無個性化しているのか.html"><a href="検証三國志シリーズの人材は年々無個性化しているのか.html#テクニカル-ggplot2の使い方"><i class="fa fa-check"></i>[テクニカル] ggplot2の使い方</a></li>
</ul></li>
<li class="chapter" data-level="3.2" data-path="検証三國志シリーズの人材は年々無個性化しているのか.html"><a href="検証三國志シリーズの人材は年々無個性化しているのか.html#補足-データビジュアライゼーションの教科書について"><i class="fa fa-check"></i><b>3.2</b> 補足: データビジュアライゼーションの教科書について</a></li>
<li class="chapter" data-level="3.3" data-path="検証三國志シリーズの人材は年々無個性化しているのか.html"><a href="検証三國志シリーズの人材は年々無個性化しているのか.html#skimrによる要約統計の計算"><i class="fa fa-check"></i><b>3.3</b> <code>skimr</code>による要約統計の計算</a></li>
<li class="chapter" data-level="3.4" data-path="検証三國志シリーズの人材は年々無個性化しているのか.html"><a href="検証三國志シリーズの人材は年々無個性化しているのか.html#要約統計量の視覚化による判断"><i class="fa fa-check"></i><b>3.4</b> 要約統計量の視覚化による判断</a>
<ul>
<li class="chapter" data-level="3.4.1" data-path="検証三國志シリーズの人材は年々無個性化しているのか.html"><a href="検証三國志シリーズの人材は年々無個性化しているのか.html#作品ごとの要約統計量推移"><i class="fa fa-check"></i><b>3.4.1</b> 作品ごとの要約統計量推移</a></li>
<li class="chapter" data-level="" data-path="検証三國志シリーズの人材は年々無個性化しているのか.html"><a href="検証三國志シリーズの人材は年々無個性化しているのか.html#テクニカル-複数の折れ線グラフの描き方"><i class="fa fa-check"></i>[テクニカル] 複数の折れ線グラフの描き方</a></li>
<li class="chapter" data-level="3.4.2" data-path="検証三國志シリーズの人材は年々無個性化しているのか.html"><a href="検証三國志シリーズの人材は年々無個性化しているのか.html#人物別に確認する"><i class="fa fa-check"></i><b>3.4.2</b> 人物別に確認する</a></li>
<li class="chapter" data-level="" data-path="検証三國志シリーズの人材は年々無個性化しているのか.html"><a href="検証三國志シリーズの人材は年々無個性化しているのか.html#テクニカル-異なるグラフを1つにまとめる"><i class="fa fa-check"></i>[テクニカル] 異なるグラフを1つにまとめる</a></li>
</ul></li>
<li class="chapter" data-level="3.5" data-path="検証三國志シリーズの人材は年々無個性化しているのか.html"><a href="検証三國志シリーズの人材は年々無個性化しているのか.html#データの視覚化からわかったこと"><i class="fa fa-check"></i><b>3.5</b> データの視覚化からわかったこと</a></li>
</ul></li>
<li class="chapter" data-level="4" data-path="追加の分析.html"><a href="追加の分析.html"><i class="fa fa-check"></i><b>4</b> 追加の分析</a>
<ul>
<li class="chapter" data-level="4.1" data-path="追加の分析.html"><a href="追加の分析.html#主成分分析の利用"><i class="fa fa-check"></i><b>4.1</b> 主成分分析の利用</a></li>
<li class="chapter" data-level="4.2" data-path="追加の分析.html"><a href="追加の分析.html#魏呉蜀の勢力別ひいき"><i class="fa fa-check"></i><b>4.2</b> 魏・呉・蜀の勢力別ひいき</a></li>
</ul></li>
<li class="chapter" data-level="5" data-path="まとめ.html"><a href="まとめ.html"><i class="fa fa-check"></i><b>5</b> まとめ</a></li>
<li class="chapter" data-level="" data-path="参考文献.html"><a href="参考文献.html"><i class="fa fa-check"></i>参考文献</a></li>
<li class="divider"></li>
<p style='text-align:center;display:block;margin: 0 auto;'><img src='https://i.creativecommons.org/l/by-nc/4.0/88x31.png'></p><li><a href="https://bookdown.org" target="_blank">Published with bookdown</a></li>
</ul>
</nav>
</div>
<div class="book-body">
<div class="body-inner">
<div class="book-header" role="navigation">
<h1>
<i class="fa fa-circle-o-notch fa-spin"></i><a href="./">三國志で学ぶデータ分析 (Japan.R 2019)</a>
</h1>
</div>
<div class="page-wrapper" tabindex="-1" role="main">
<div class="page-inner">
<section class="normal" id="section-">
<div id="追加の分析" class="section level1" number="4">
<h1><span class="header-section-number">4</span> 追加の分析</h1>
<div id="主成分分析の利用" class="section level2" number="4.1">
<h2><span class="header-section-number">4.1</span> 主成分分析の利用</h2>
<p>ステータスの項目は主要な4項目はほとんどのシリーズで採用されているが, 基本的にシリーズごとに設定は異なる<a href="#fn43" class="footnote-ref" id="fnref43"><sup>43</sup></a>. 前節では作品ごとの能力値のレンジを補正するために正規化処理をしたが, 項目数は正規化できない. そこで<strong>主成分分析</strong>(PCA)によって, 全ての項目を数種類の項目に凝縮してみる. 主成分の計算には組み込みの関数 <code>stat::prcomp()</code> を, グラフの描画(バイプロット)には <code>factoextra::fviz_pcabiplot()</code> を使用している. なお, このパッケージも<code>ggplot2</code>を利用してグラフを描画している.</p>
<div class="sourceCode" id="cb32"><pre class="sourceCode numberSource r numberLines"><code class="sourceCode r"><span id="cb32-1"><a href="追加の分析.html#cb32-1"></a>get_design_mat_input <span class="ot"><-</span> <span class="cf">function</span>(df) {</span>
<span id="cb32-2"><a href="追加の分析.html#cb32-2"></a> <span class="co"># デザイン行列作成に必要な列 + title, name_id を取り出す</span></span>
<span id="cb32-3"><a href="追加の分析.html#cb32-3"></a> df <span class="sc">%>%</span> <span class="fu">select_if</span>(<span class="fu">str_detect</span>(<span class="fu">names</span>(.), <span class="st">"name_id"</span>) <span class="sc">|</span> <span class="fu">map_lgl</span>(., <span class="sc">~!</span><span class="fu">is.character</span>(.x))) <span class="sc">%>%</span> </span>
<span id="cb32-4"><a href="追加の分析.html#cb32-4"></a> <span class="fu">select</span>(<span class="sc">-</span>order, <span class="sc">-</span><span class="fu">matches</span>(<span class="st">"生年|誕生|没年|登場|顔番号|相性"</span>)) <span class="sc">%>%</span> </span>
<span id="cb32-5"><a href="追加の分析.html#cb32-5"></a> drop_na</span>
<span id="cb32-6"><a href="追加の分析.html#cb32-6"></a>}</span>
<span id="cb32-7"><a href="追加の分析.html#cb32-7"></a>convert_design_mat <span class="ot"><-</span> <span class="cf">function</span>(df, <span class="at">name =</span> T, <span class="at">center =</span> T, <span class="at">scale =</span> T) {</span>
<span id="cb32-8"><a href="追加の分析.html#cb32-8"></a> <span class="co"># title, name_id 列を除いてデザイン行列に変換する</span></span>
<span id="cb32-9"><a href="追加の分析.html#cb32-9"></a> <span class="co"># (正規化処理オプションあり)</span></span>
<span id="cb32-10"><a href="追加の分析.html#cb32-10"></a> <span class="fu">model.matrix</span>(<span class="sc">~</span>. <span class="sc">-</span> <span class="dv">1</span>, <span class="fu">select</span>(df, <span class="sc">-</span>title, <span class="sc">-</span>name_id, <span class="sc">-</span>attend_times, <span class="sc">-</span>at_first) <span class="sc">%>%</span> </span>
<span id="cb32-11"><a href="追加の分析.html#cb32-11"></a> <span class="fu">mutate_if</span>(is.numeric, <span class="sc">~</span><span class="fu">scale</span>(.x, <span class="at">center =</span> center, <span class="at">scale =</span> scale))) <span class="sc">%>%</span> </span>
<span id="cb32-12"><a href="追加の分析.html#cb32-12"></a> magrittr<span class="sc">::</span><span class="fu">set_rownames</span>(df<span class="sc">$</span>name_id)</span>
<span id="cb32-13"><a href="追加の分析.html#cb32-13"></a>}</span>
<span id="cb32-14"><a href="追加の分析.html#cb32-14"></a></span>
<span id="cb32-15"><a href="追加の分析.html#cb32-15"></a>pca_conveted <span class="ot"><-</span> df_all <span class="sc">%>%</span> <span class="fu">mutate</span>(<span class="at">title =</span> <span class="fu">as.integer</span>(title)) <span class="sc">%>%</span> <span class="fu">group_by</span>(title) <span class="sc">%>%</span> </span>
<span id="cb32-16"><a href="追加の分析.html#cb32-16"></a> <span class="fu">group_map</span>(<span class="sc">~</span><span class="fu">unnest</span>(.x, <span class="at">cols =</span> data) <span class="sc">%>%</span> get_design_mat_input <span class="sc">%>%</span> <span class="fu">list</span>(<span class="at">title =</span> .<span class="sc">$</span>title[<span class="dv">1</span>], </span>
<span id="cb32-17"><a href="追加の分析.html#cb32-17"></a> <span class="at">name =</span> <span class="fu">select</span>(., name_id, attend_times), <span class="at">pca =</span> <span class="fu">prcomp</span>(<span class="fu">convert_design_mat</span>(.), </span>
<span id="cb32-18"><a href="追加の分析.html#cb32-18"></a> <span class="at">center =</span> F, <span class="at">scale. =</span> F)), <span class="at">keep =</span> T)</span></code></pre></div>
<div class="rmdtip">
PCAは単位もスケールも異なる変数どうしの関係を見る方法であり, スケールを揃えるかどうかで結果も大きく変わってしまう. 多くの場合ではスケールの違いは変数どうしの関係とは直接関係ないため, 特に理由がない限りPCAの入力データは<strong>標準化処理したものを使うべき</strong>である. <code>prcomp()</code>は<code>center</code>, <code>scale.</code>という内部で標準化処理をするためのオプションがあるため, 標準化処理を自分で書くことは必須ではない.
</div>
<p>バイプロットは負荷量の多い順に第2主成分までを使った散布図であり, 第1・第2主成分の累積寄与率が高くない場合は, ステータス値による特徴をうまく捉えられない場合もある<a href="#fn44" class="footnote-ref" id="fnref44"><sup>44</sup></a> (図<a href="追加の分析.html#fig:pca-biplot">4.1</a>).</p>
<div class="sourceCode" id="cb33"><pre class="sourceCode numberSource r numberLines"><code class="sourceCode r"><span id="cb33-1"><a href="追加の分析.html#cb33-1"></a><span class="fu">map_dfr</span>(pca_conveted, <span class="sc">~</span><span class="fu">get_eig</span>(.x<span class="sc">$</span>pca) <span class="sc">%>%</span> <span class="fu">as_tibble</span>(<span class="at">rownames =</span> <span class="st">"d"</span>) <span class="sc">%>%</span> </span>
<span id="cb33-2"><a href="追加の分析.html#cb33-2"></a> <span class="fu">select</span>(d, variance.percent) <span class="sc">%>%</span> <span class="fu">mutate</span>(<span class="at">title =</span> .x<span class="sc">$</span>title)) <span class="sc">%>%</span> <span class="fu">mutate</span>(<span class="at">variance.percent =</span> variance.percent<span class="sc">/</span><span class="dv">100</span>, </span>
<span id="cb33-3"><a href="追加の分析.html#cb33-3"></a> <span class="at">d =</span> <span class="fu">factor</span>(d, <span class="at">levels =</span> <span class="fu">rev</span>(<span class="fu">unique</span>(d)))) <span class="sc">%>%</span> <span class="fu">filter</span>(d <span class="sc">%in%</span> <span class="fu">paste0</span>(<span class="st">"Dim."</span>, </span>
<span id="cb33-4"><a href="追加の分析.html#cb33-4"></a> <span class="dv">1</span><span class="sc">:</span><span class="dv">2</span>)) <span class="sc">%>%</span> <span class="fu">ggplot</span>(<span class="fu">aes</span>(<span class="at">x =</span> title, <span class="at">y =</span> variance.percent, <span class="at">group =</span> d, <span class="at">fill =</span> d)) <span class="sc">+</span> </span>
<span id="cb33-5"><a href="追加の分析.html#cb33-5"></a> <span class="fu">geom_bar</span>(<span class="at">stat =</span> <span class="st">"identity"</span>, <span class="at">position =</span> <span class="st">"stack"</span>) <span class="sc">+</span> <span class="fu">scale_fill_pander</span>(<span class="at">guide =</span> <span class="fu">guide_legend</span>(<span class="at">reverse =</span> <span class="cn">TRUE</span>)) <span class="sc">+</span> </span>
<span id="cb33-6"><a href="追加の分析.html#cb33-6"></a> <span class="fu">labs</span>(<span class="at">y =</span> <span class="st">"accumurated importance"</span>) <span class="sc">+</span> <span class="fu">scale_y_continuous</span>(<span class="at">labels =</span> scales<span class="sc">::</span>percent) <span class="sc">+</span> </span>
<span id="cb33-7"><a href="追加の分析.html#cb33-7"></a> <span class="fu">scale_x_continuous</span>(<span class="at">breaks =</span> <span class="dv">1</span><span class="sc">:</span><span class="dv">13</span>) <span class="sc">+</span> theme_document</span></code></pre></div>
<div class="figure" style="text-align: center"><span id="fig:pca-biplot"></span>
<img src="three-kingdoms_files/figure-html/pca-biplot-1.svg" alt="シリーズごとの第2主成分までの累積寄与率" width="75%" />
<p class="caption">
図 4.1: シリーズごとの第2主成分までの累積寄与率
</p>
</div>
<p>三國志2, 9 についてこの方法で求めた第1・第2主成分でプロットした散布図が図<a href="追加の分析.html#fig:biplot-2">4.2</a>,<a href="追加の分析.html#fig:biplot-9">4.3</a>である.</p>
<div class="sourceCode" id="cb34"><pre class="sourceCode numberSource r numberLines"><code class="sourceCode r"><span id="cb34-1"><a href="追加の分析.html#cb34-1"></a><span class="fu">fviz_pca_biplot</span>(pca_conveted[[<span class="dv">2</span>]]<span class="sc">$</span>pca) <span class="sc">+</span> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">"三國志II"</span>, <span class="at">caption =</span> <span class="st">"https://github.com/Gedevan-Aleksizde/Japan.R2019</span><span class="sc">\n</span><span class="st">データ出典: http://hima.que.ne.jp/sangokushi/"</span>)</span></code></pre></div>
<div class="figure" style="text-align: center"><span id="fig:biplot-2"></span>
<img src="three-kingdoms_files/figure-html/biplot-2-1.svg" alt="三國志2の主成分バイプロット図" width="75%" />
<p class="caption">
図 4.2: 三國志2の主成分バイプロット図
</p>
</div>
<div class="sourceCode" id="cb35"><pre class="sourceCode numberSource r numberLines"><code class="sourceCode r"><span id="cb35-1"><a href="追加の分析.html#cb35-1"></a><span class="fu">fviz_pca_biplot</span>(pca_conveted[[<span class="dv">9</span>]]<span class="sc">$</span>pca) <span class="sc">+</span> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">"三國志IX"</span>, <span class="at">caption =</span> <span class="st">"https://github.com/Gedevan-Aleksizde/Japan.R2019</span><span class="sc">\n</span><span class="st">データ出典: http://lee.serio.jp/novel/sangoku/san9busho.html"</span>)</span></code></pre></div>
<div class="figure" style="text-align: center"><span id="fig:biplot-9"></span>
<img src="three-kingdoms_files/figure-html/biplot-9-1.svg" alt="三国志9の主成分バイプロット図" width="75%" />
<p class="caption">
図 4.3: 三国志9の主成分バイプロット図
</p>
</div>
<p>これらの傾向から, 概ね, 知力と武力は別の要素として見られる傾向がある.</p>
</div>
<div id="魏呉蜀の勢力別ひいき" class="section level2" number="4.2">
<h2><span class="header-section-number">4.2</span> 魏・呉・蜀の勢力別ひいき</h2>
<p>発表中に視聴者からも指摘があったが, 魏の曹操を主役にした漫画『蒼天航路』の人気を反映して, 従来は悪役であることが多い魏の人物の能力を底上げしたことが, 三國志シリーズのプロデューサーによって語られている<a href="#fn45" class="footnote-ref" id="fnref45"><sup>45</sup></a>.</p>
<p>三國志シリーズには「相性」というマスクステータス値があり, 主君と配下の値の差で相性が決まるようになっている. 今回参考にしたサイトの中にも相性値を掲載しているものもあったので, それらをもとに登場人物がどこに属するかを分類してステータス値をプロットする. 各人物について, <strong>劉備</strong>, <strong>曹操</strong>, <ruby><strong>孫権</strong><rp>(</rp><rt>ソンケン</rt><rp>)</rp></ruby>, のいずれに最も相性値が近いかによって, 魏・呉・蜀のどれに属するかを判定する<a href="#fn46" class="footnote-ref" id="fnref46"><sup>46</sup></a>. 散布図で「武力」と「知力」で表したのが , 主要ステータス数値の平均を, 散布図とバイオリン図でそれぞれ表したのが図<a href="追加の分析.html#fig:matching-STR">4.4</a>, <a href="追加の分析.html#fig:matching-INT">4.5</a>, <a href="追加の分析.html#fig:matching-total">4.6</a>, <a href="追加の分析.html#fig:matching-total-violin">4.7</a>である.</p>
<div class="sourceCode" id="cb36"><pre class="sourceCode numberSource r numberLines"><code class="sourceCode r"><span id="cb36-1"><a href="追加の分析.html#cb36-1"></a>df_norm_faction <span class="ot"><-</span> df_norm <span class="sc">%>%</span> <span class="fu">filter</span>(<span class="sc">!</span><span class="fu">is.na</span>(相性)) <span class="sc">%>%</span> <span class="fu">group_by</span>(title) <span class="sc">%>%</span> </span>
<span id="cb36-2"><a href="追加の分析.html#cb36-2"></a> <span class="fu">group_map</span>(<span class="sc">~</span><span class="fu">mutate</span>(.x, 蜀 <span class="ot">=</span> <span class="fu">abs</span>(相性 <span class="sc">-</span> <span class="fu">filter</span>(.x, name_id <span class="sc">==</span> <span class="st">"劉備"</span>)<span class="sc">$</span>相性), </span>
<span id="cb36-3"><a href="追加の分析.html#cb36-3"></a> 魏 <span class="ot">=</span> <span class="fu">abs</span>(相性 <span class="sc">-</span> <span class="fu">filter</span>(.x, name_id <span class="sc">==</span> <span class="st">"曹操"</span>)<span class="sc">$</span>相性), 呉 <span class="ot">=</span> <span class="fu">abs</span>(相性 <span class="sc">-</span> </span>
<span id="cb36-4"><a href="追加の分析.html#cb36-4"></a> <span class="fu">filter</span>(.x, name_id <span class="sc">==</span> <span class="st">"孫権"</span>)<span class="sc">$</span>相性)) <span class="sc">%>%</span> <span class="fu">pivot_longer</span>(tidyselect<span class="sc">::</span><span class="fu">vars_select</span>(<span class="fu">names</span>(.), </span>
<span id="cb36-5"><a href="追加の分析.html#cb36-5"></a> 魏, 呉, 蜀), <span class="at">names_to =</span> <span class="st">"faction"</span>, <span class="at">values_to =</span> <span class="st">"dist"</span>) <span class="sc">%>%</span> <span class="fu">group_by</span>(name_id) <span class="sc">%>%</span> </span>
<span id="cb36-6"><a href="追加の分析.html#cb36-6"></a> <span class="fu">filter</span>(<span class="fu">rank</span>(dist) <span class="sc">==</span> <span class="dv">1</span>) <span class="sc">%>%</span> ungroup, <span class="at">keep =</span> T) <span class="sc">%>%</span> bind_rows <span class="sc">%>%</span> </span>
<span id="cb36-7"><a href="追加の分析.html#cb36-7"></a> <span class="fu">mutate</span>(<span class="at">faction =</span> <span class="fu">factor</span>(faction, <span class="at">levels =</span> <span class="fu">c</span>(<span class="st">"魏"</span>, <span class="st">"蜀"</span>, <span class="st">"呉"</span>)))</span></code></pre></div>
<div class="sourceCode" id="cb37"><pre class="sourceCode numberSource r numberLines"><code class="sourceCode r"><span id="cb37-1"><a href="追加の分析.html#cb37-1"></a><span class="fu">set.seed</span>(<span class="dv">42</span>)</span>
<span id="cb37-2"><a href="追加の分析.html#cb37-2"></a>df_norm_faction <span class="sc">%>%</span> <span class="fu">ggplot</span>(<span class="fu">aes</span>(<span class="at">x =</span> 相性, <span class="at">y =</span> 武力, <span class="at">color =</span> faction)) <span class="sc">+</span> </span>
<span id="cb37-3"><a href="追加の分析.html#cb37-3"></a> <span class="fu">geom_point</span>() <span class="sc">+</span> <span class="fu">geom_label</span>(<span class="fu">aes</span>(<span class="at">label =</span> name_id), <span class="at">data =</span> <span class="fu">group_by</span>(df_norm_faction, </span>
<span id="cb37-4"><a href="追加の分析.html#cb37-4"></a> title, faction) <span class="sc">%>%</span> <span class="fu">sample_n</span>(<span class="dv">2</span>)) <span class="sc">+</span> <span class="fu">facet_wrap</span>(<span class="sc">~</span>title) <span class="sc">+</span> theme_document <span class="sc">+</span> </span>
<span id="cb37-5"><a href="追加の分析.html#cb37-5"></a> <span class="fu">scale_color_pander</span>()</span></code></pre></div>
<div class="figure" style="text-align: center"><span id="fig:matching-STR"></span>
<img src="three-kingdoms_files/figure-html/matching-STR-1.svg" alt="三国別武力の散布図" width="75%" />
<p class="caption">
図 4.4: 三国別武力の散布図
</p>
</div>
<div class="sourceCode" id="cb38"><pre class="sourceCode numberSource r numberLines"><code class="sourceCode r"><span id="cb38-1"><a href="追加の分析.html#cb38-1"></a>df_norm_faction <span class="sc">%>%</span> <span class="fu">ggplot</span>(<span class="fu">aes</span>(<span class="at">x =</span> 相性, <span class="at">y =</span> 知力, <span class="at">color =</span> faction)) <span class="sc">+</span> </span>
<span id="cb38-2"><a href="追加の分析.html#cb38-2"></a> <span class="fu">geom_point</span>() <span class="sc">+</span> <span class="fu">geom_label</span>(<span class="fu">aes</span>(<span class="at">label =</span> name_id), <span class="at">data =</span> <span class="fu">group_by</span>(df_norm_faction, </span>
<span id="cb38-3"><a href="追加の分析.html#cb38-3"></a> title, faction) <span class="sc">%>%</span> <span class="fu">sample_n</span>(<span class="dv">2</span>)) <span class="sc">+</span> <span class="fu">facet_wrap</span>(<span class="sc">~</span>title) <span class="sc">+</span> theme_document <span class="sc">+</span> </span>
<span id="cb38-4"><a href="追加の分析.html#cb38-4"></a> <span class="fu">scale_color_pander</span>()</span></code></pre></div>
<div class="figure" style="text-align: center"><span id="fig:matching-INT"></span>
<img src="three-kingdoms_files/figure-html/matching-INT-1.svg" alt="三国別知力の散布図" width="75%" />
<p class="caption">
図 4.5: 三国別知力の散布図
</p>
</div>
<div class="sourceCode" id="cb39"><pre class="sourceCode numberSource r numberLines"><code class="sourceCode r"><span id="cb39-1"><a href="追加の分析.html#cb39-1"></a>df_norm_faction <span class="sc">%>%</span> <span class="fu">ggplot</span>(<span class="fu">aes</span>(<span class="at">x =</span> 相性, <span class="at">y =</span> total, <span class="at">color =</span> faction)) <span class="sc">+</span> </span>
<span id="cb39-2"><a href="追加の分析.html#cb39-2"></a> <span class="fu">geom_point</span>() <span class="sc">+</span> <span class="fu">geom_label</span>(<span class="fu">aes</span>(<span class="at">label =</span> name_id), <span class="at">data =</span> <span class="fu">group_by</span>(df_norm_faction, </span>
<span id="cb39-3"><a href="追加の分析.html#cb39-3"></a> title, faction) <span class="sc">%>%</span> <span class="fu">sample_n</span>(<span class="dv">2</span>)) <span class="sc">+</span> <span class="fu">facet_wrap</span>(<span class="sc">~</span>title) <span class="sc">+</span> <span class="fu">labs</span>(<span class="at">y =</span> <span class="st">"主要ステータス値平均"</span>) <span class="sc">+</span> </span>
<span id="cb39-4"><a href="追加の分析.html#cb39-4"></a> theme_document <span class="sc">+</span> <span class="fu">scale_color_pander</span>()</span></code></pre></div>
<div class="figure" style="text-align: center"><span id="fig:matching-total"></span>
<img src="three-kingdoms_files/figure-html/matching-total-1.svg" alt="三国別主要ステータス値平均の散布図" width="75%" />
<p class="caption">
図 4.6: 三国別主要ステータス値平均の散布図
</p>
</div>
<div class="sourceCode" id="cb40"><pre class="sourceCode numberSource r numberLines"><code class="sourceCode r"><span id="cb40-1"><a href="追加の分析.html#cb40-1"></a>df_norm_faction <span class="sc">%>%</span> <span class="fu">ggplot</span>(<span class="fu">aes</span>(<span class="at">x =</span> faction, <span class="at">y =</span> total, <span class="at">fill =</span> faction)) <span class="sc">+</span> </span>
<span id="cb40-2"><a href="追加の分析.html#cb40-2"></a> <span class="fu">geom_violin</span>(<span class="at">draw_quantiles =</span> <span class="fu">c</span>(<span class="fl">0.25</span>, <span class="fl">0.5</span>, <span class="fl">0.75</span>)) <span class="sc">+</span> <span class="fu">facet_wrap</span>(<span class="sc">~</span>title) <span class="sc">+</span> </span>
<span id="cb40-3"><a href="追加の分析.html#cb40-3"></a> <span class="fu">labs</span>(<span class="at">y =</span> <span class="st">"主要ステータス値平均"</span>) <span class="sc">+</span> theme_document <span class="sc">+</span> <span class="fu">scale_fill_pander</span>()</span></code></pre></div>
<div class="figure" style="text-align: center"><span id="fig:matching-total-violin"></span>
<img src="three-kingdoms_files/figure-html/matching-total-violin-1.svg" alt="主要ステータス値平均のバイオリン図" width="75%" />
<p class="caption">
図 4.7: 主要ステータス値平均のバイオリン図
</p>
</div>
<p>ここからわかるのは, 三国志6以前で呉に属する人物のステータスの低さである. 確かに, 三国志2では呉で武力が90を超える人物は<strong>孫堅</strong> (90), <ruby><strong>孫策</strong><rp>(</rp><rt>ソンサク</rt><rp>)</rp></ruby> (94), <ruby><strong>太史慈</strong><rp>(</rp><rt>タイシジ</rt><rp>)</rp></ruby> (95), <ruby><strong>甘寧</strong><rp>(</rp><rt>カンネイ</rt><rp>)</rp></ruby> (92) の4名が存在する (ただし<strong>孫堅</strong>, <strong>孫策</strong>は呉の成立前に死亡する)が, 一方で魏・蜀はともに武力が90を超える人物は10名近く存在する. 呉には武勇を示すエピソードのある武将が他にも多くいるが, <ruby><strong>周泰</strong><rp>(</rp><rt>シュウタイ</rt><rp>)</rp></ruby> (85), <ruby><strong>呂蒙</strong><rp>(</rp><rt>リョモウ</rt><rp>)</rp></ruby> (83), <ruby><strong>程普</strong><rp>(</rp><rt>テイフ</rt><rp>)</rp></ruby> (60), <ruby><strong>韓当</strong><rp>(</rp><rt>カントウ</rt><rp>)</rp></ruby> (58), <ruby><strong>董襲</strong><rp>(</rp><rt>トウシュウ</rt><rp>)</rp></ruby> (56) などは他2国の人物と比較しても低く設定されているように見える. 実態として呉の人材が豊富でなかったという話ではなく, 作品ごとの推移でみると最近の作品ほど分布の形が徐々に画一化してきているという意味である.</p>
</div>
</div>
<div class="footnotes">
<hr />
<ol start="43">
<li id="fn43"><p>さらに, 今回参照したページは非公式のものなので, そもそも全ての項目が掲載されているわけではない.<a href="追加の分析.html#fnref43" class="footnote-back">↩︎</a></p></li>
<li id="fn44"><p>ただし, 作品によっては人物がある技能をもつかどうかのフラグが大量に掲載されているものがあり, これらも変数に含めた結果寄与率が下がっている可能性もある.<a href="追加の分析.html#fnref44" class="footnote-back">↩︎</a></p></li>
<li id="fn45"><p>『<a href="https://mantan-web.jp/article/20151229dog00m200061000c.html">三國志:人気歴史ゲームの誕生秘話 シブサワ・コウに聞く - MANTANWEB(まんたんウェブ)</a>』<a href="追加の分析.html#fnref45" class="footnote-back">↩︎</a></p></li>
<li id="fn46"><p>よって, 実際には各陣営に属していなかった群雄が三国に分類されることもある. 例えば, シリーズを通して<strong>董卓</strong>は<strong>曹操</strong>と相性値が近く, <ruby><strong>公孫瓚</strong><rp>(</rp><rt>コウソンサン</rt><rp>)</rp></ruby>や<ruby><strong>袁紹</strong><rp>(</rp><rt>エンショウ</rt><rp>)</rp></ruby>とその配下の人物は劉備や孫権に近い.<a href="追加の分析.html#fnref46" class="footnote-back">↩︎</a></p></li>
</ol>
</div>
</section>
</div>
</div>
</div>
<a href="検証三國志シリーズの人材は年々無個性化しているのか.html" class="navigation navigation-prev " aria-label="Previous page"><i class="fa fa-angle-left"></i></a>
<a href="まとめ.html" class="navigation navigation-next " aria-label="Next page"><i class="fa fa-angle-right"></i></a>
</div>
</div>
<script src="libs/gitbook-2.6.7/js/app.min.js"></script>
<script src="libs/gitbook-2.6.7/js/lunr.js"></script>
<script src="libs/gitbook-2.6.7/js/clipboard.min.js"></script>
<script src="libs/gitbook-2.6.7/js/plugin-search.js"></script>
<script src="libs/gitbook-2.6.7/js/plugin-sharing.js"></script>
<script src="libs/gitbook-2.6.7/js/plugin-fontsettings.js"></script>
<script src="libs/gitbook-2.6.7/js/plugin-bookdown.js"></script>
<script src="libs/gitbook-2.6.7/js/jquery.highlight.js"></script>
<script src="libs/gitbook-2.6.7/js/plugin-clipboard.js"></script>
<script>
gitbook.require(["gitbook"], function(gitbook) {
gitbook.start({
"sharing": {
"github": true,
"facebook": true,
"twitter": true,
"linkedin": false,
"weibo": true,
"instapaper": false,
"vk": false,
"all": ["vk", "facebook", "linkedin"]
},
"fontsettings": {
"theme": "white",
"family": "sans",
"size": 2
},
"edit": null,
"history": {
"link": null,
"text": null
},
"view": {
"link": "https://github.com/Gedevan-Aleksizde/Japan.R2019/blob/master/index.Rmd",
"text": null
},
"download": ["three-kingdoms.pdf", "three-kingdoms.epub"],
"toc": {
"collapse": "none",
"fonttheme": {
"family": "serif"
}
},
"search": true,
"info": true
});
});
</script>
<!-- dynamically load mathjax for compatibility with self-contained -->
<script>
(function () {
var script = document.createElement("script");
script.type = "text/javascript";
var src = "true";
if (src === "" || src === "true") src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-MML-AM_CHTML";
if (location.protocol !== "file:")
if (/^https?:/.test(src))
src = src.replace(/^https?:/, '');
script.src = src;
document.getElementsByTagName("head")[0].appendChild(script);
})();
</script>
</body>
</html>