最近数量化III類を見直してましてね。やっぱあれ使い勝手いいなと思ったりして。 昨日放送されたキングオブコントの評定値を使って分析をしてみようと思っています。
まずはデータを。今回は実際の審査員に加えて,私や妻子が一緒に参加してくれたので,彼女らのデータも入っています。ただ,下の子は決勝を見てないので,欠損値になりました。
とりあえずデータはこんな感じ。
library(tidyverse)
## ─ Attaching packages ──────────────────── tidyverse 1.3.1 ─
## ✓ ggplot2 3.3.3 ✓ purrr 0.3.4
## ✓ tibble 3.1.2 ✓ dplyr 1.0.6
## ✓ tidyr 1.1.3 ✓ stringr 1.4.0
## ✓ readr 1.4.0 ✓ forcats 0.5.1
## ─ Conflicts ───────────────────── tidyverse_conflicts() ─
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(ggrepel)
library(MASS)
##
## 次のパッケージを付け加えます: 'MASS'
## 以下のオブジェクトは 'package:dplyr' からマスクされています:
##
## select
dat <- c(
78, 75, 80, 90, 92, 80, 80, 93, 80, 92, 95, 83, 95,
90, 88, 90, 94, 95, 92, 90, 92, 92, 92, 92, 95, 93,
90, 90, 88, 93, 97, 91, 87, 91, 90, 91, 93, 95, 94,
89, 91, 90, 92, 94, 91, 89, 92, 93, 92, 95, 91, 92,
90, 91, 90, 89, 96, 91, 87, 86, 92, 88, 90, 90, 90,
86, 85, 88, 90, 95, 92, 87, 93, 94, 91, 93, 92, 95,
83, 86, 87, 95, 95, 84, 82, 89, 94, 95, 94, 84, 90,
80, 87, 87, 93, 85, 83, 88, 93, 83, 95, 95, 86, 94,
80, 90, 73, 95, 80, 80, 87, 95, 85, 98, NA, NA, NA
) %>%
matrix(nrow = 13) %>%
transform() %>%
dplyr::mutate(player = c(
"滝音", "GAG", "ロングコートダディ", "空気階段",
"ジャルジャル", "ザ・ギース", "うるとらブギーズ",
"ニッポンの社長", "ニューヨーク", "ジャングルポケット",
"空気階段2nd", "ニューヨーク2nd", "ジャングルポケット2nd"
)) %>%
dplyr::rename(
"kosugitti" = X1,
"設楽" = X2,
"日村" = X3,
"大竹" = X4,
"三村" = X5,
"松本" = X6,
"妻" = X7,
"子1" = X8,
"子2" = X9
) %>% na.omit %>% print
## kosugitti 設楽 日村 大竹 三村 松本 妻 子1 子2 player
## 1 78 90 90 89 90 86 83 80 80 滝音
## 2 75 88 90 91 91 85 86 87 90 GAG
## 3 80 90 88 90 90 88 87 87 73 ロングコートダディ
## 4 90 94 93 92 89 90 95 93 95 空気階段
## 5 92 95 97 94 96 95 95 85 80 ジャルジャル
## 6 80 92 91 91 91 92 84 83 80 ザ・ギース
## 7 80 90 87 89 87 87 82 88 87 うるとらブギーズ
## 8 93 92 91 92 86 93 89 93 95 ニッポンの社長
## 9 80 92 90 93 92 94 94 83 85 ニューヨーク
## 10 92 92 91 92 88 91 95 95 98 ジャングルポケット
分析してみます。欠損値の入った決勝は除外しようかな。
dat %>% dplyr::select(-player) %>% corresp(nf=2) -> result.cr
result.cr$cscore %>% as.data.frame %>% rownames_to_column("label") %>% dplyr::mutate(type=1) -> tmp1
result.cr$rscore %>% as.data.frame %>% dplyr::mutate(label = dat$player) %>% dplyr::mutate(type=2)-> tmp2
bind_rows(tmp1,tmp2) %>%
dplyr::mutate(type = factor(type,labels=c("rater","player"))) %>% print %>%
ggplot() + aes(x=V1,y=V2,color=type,label=label)+geom_point()+geom_text_repel(family="HiraKakuProN-W3")
## label V1 V2 type
## ...1 kosugitti 0.70280861 2.4063981 rater
## ...2 設楽 -0.54407053 -0.1750142 rater
## ...3 日村 -0.62964105 -0.1875375 rater
## ...4 大竹 -0.52568653 -0.6168768 rater
## ...5 三村 -1.25948965 -0.8511602 rater
## ...6 松本 -0.62365438 0.3368169 rater
## ...7 妻 -0.07019572 0.7395686 rater
## ...8 子1 0.94553364 -0.2378495 rater
## ...9 子2 2.19080214 -1.2925925 rater
## 1 滝音 -0.82349794 -0.6097337 player
## 2 GAG 0.25189532 -2.1128035 player
## 3 ロングコートダディ -1.15509936 0.5008517 player
## 4 空気階段 1.02563028 0.3847534 player
## 5 ジャルジャル -1.11980739 1.6861890 player
## 6 ザ・ギース -0.95300414 -0.2995271 player
## 7 うるとらブギーズ 0.41242144 -0.8426724 player
## 8 ニッポンの社長 1.30057086 0.8583184 player
## 9 ニューヨーク -0.63556131 -0.3123025 player
## 10 ジャングルポケット 1.52022528 0.5392712 player