声優統計入門

@R_Linux
多項ロジスティクス回帰モデルについての説明。
年齢、ロリコン度から、好きな声優を当てるというモデル作り。
X_{age}X_{loli}の情報量があるときに、Y_{voice}がわかるようにY_{voice}=a_1X_{age}+a_2X_{loli}+bを決めるという作業を行う。
これにはこのブログでもお馴染みのRでやることができる。
データQCをしたあとのところから適当なデータを作ってやってみる。

custmer <- 944
library(MCMCpack)
p1 <- c(rdirichlet(1, rep(1, 4)))
age <- sample(c(13, 23, 28, 33), size=custmer, prob=c(rdirichlet(1, rep(1, 4))), replace=TRUE)
loli <- sample(1:5, size=custmer, prob=c(rdirichlet(1, rep(1, 5))), replace=TRUE)
CV <- sample(c("Kugimiya", "Kanemoto", "Yoshitani"), size=custmer, prob=c(rdirichlet(1, rep(1, 3))), replace=TRUE)
voice <- data.frame(CV, age, loli)

summary(voice)
         CV           age             loli     
 Kanemoto : 24   Min.   :13.00   Min.   :1.00  
 Kugimiya :817   1st Qu.:23.00   1st Qu.:2.00  
 Yoshitani:103   Median :33.00   Median :2.00  
                 Mean   :27.54   Mean   :2.46  
                 3rd Qu.:33.00   3rd Qu.:3.00  
                 Max.   :33.00   Max.   :5.00
library(nnet)
model1 <- multinom(CV ~ age + loli, voice)
Call:
multinom(formula = CV ~ age + loli, data = voice)

Coefficients:
          (Intercept)          age       loli
Kugimiya     3.608153 -0.011131366 0.09559276
Yoshitani    1.215311 -0.008000982 0.18927574

Residual Deviance: 867.0625 
AIC: 879.0625 
aniota <- data.frame(age = 33, loli = 5)
predict(model1, aniota, type="probs")
  Kanemoto   Kugimiya  Yoshitani 
0.02045641 0.84309415 0.13644944 

この後、様々なモデルが出てくるので、そのときはそのときでググるなりヘルプ見るなりやってみるということで、初心者向け解説が終わる。