前に、というか調査後の話なのですが。今回から、キーワードに言及したIDも集計するようにしてみました。感想サイト探しの手伝いになるかも。まあ気になったから調べてみただけですが。こういうデータを調べるのにもRは超便利で最高ですね。
まずids.outというファイルにID情報を出力しておいて、Rで読み込む。
> df <- read.delim("ids.out") > head(df) id group list 1 ascidian4031 31 32 2 karinchan 27 31 3 cointoss 27 30 4 CPP 27 29 5 amado 27 28 6 amaterasumamolu 26 27
なんとなく偏差値を出したくなったので、sscoreという関数を作って偏差値も出してみる。
sscore <- function(l){ sigma = sqrt(var(l)/(length(l)/(length(l)-1))) mu = mean(l) 10*(l - mu)/sigma + 50 } > g <- df$group > df <- data.frame(df, z=sscore(g), p=g/35, r=rank(1/g, ties.method="min"))
z=偏差値、p=網羅率、r=順位。偏差値の計算間違ってるのかなと思うほど高い・・・!まあ、正規分布に従ってないから高くなるのはしょうがないんだけど。あとサンプルが多いからどうしても陽性になってしまうのかな。
> shapiro.test(g) Shapiro-Wilk normality test data: g W = 0.5817, p-value < 2.2e-16
> head(df, 30) id group list z p r 1 ascidian4031 31 32 112.27763 0.8857143 1 2 karinchan 27 31 103.27826 0.7714286 2 3 cointoss 27 30 103.27826 0.7714286 2 4 CPP 27 29 103.27826 0.7714286 2 5 amado 27 28 103.27826 0.7714286 2 6 amaterasumamolu 26 27 101.02842 0.7428571 6 7 Kugetsu 26 27 101.02842 0.7428571 6 8 kab_studio 26 30 101.02842 0.7428571 6 9 hebiashi 26 26 101.02842 0.7428571 6 10 gekikame 26 30 101.02842 0.7428571 6 11 nogawasunam 25 25 98.77858 0.7142857 11 12 spyre 25 31 98.77858 0.7142857 11 13 azejdc 25 29 98.77858 0.7142857 11 14 kazama_akira 25 28 98.77858 0.7142857 11 15 riyot 24 25 96.52874 0.6857143 15 16 anemoe 24 25 96.52874 0.6857143 15 17 starcherry 24 30 96.52874 0.6857143 15 18 andashion 24 25 96.52874 0.6857143 15 19 Suigin 24 25 96.52874 0.6857143 15 20 tryarks 23 26 94.27890 0.6571429 20 21 chieftk 23 25 94.27890 0.6571429 20 22 crow2 23 23 94.27890 0.6571429 20 23 chillover 23 23 94.27890 0.6571429 20 24 kkobayashi 22 25 92.02906 0.6285714 24 25 heta_kan 22 24 92.02906 0.6285714 24 26 zeroes 22 25 92.02906 0.6285714 24 27 asylum_mayo 22 23 92.02906 0.6285714 24 28 sandol 22 22 92.02906 0.6285714 24 29 moonphase 22 24 92.02906 0.6285714 24 30 ue6 22 24 92.02906 0.6285714 24
グラフ
次に、全体の構成を見てみます。95%ラインより上は言及数いくつなのでしょう?
> which.min(abs(cumsum(table(g))/sum(table(g)) - 0.95)) 13
なるほど。13作品以上見れば95%なのか。案外少ないな。グラフはこんな感じ
> plot(density(g))
> plot(cumsum(table(g)/sum(table(g))), type="l", xlab="count", ylab="percentile") > abline(h=0.95, col=2) > abline(v=13, col=4)