2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【R】ニコニコ動画ゲームカテTOP100の動画を統計分析してみたPart3

Last updated at Posted at 2019-02-27

環境 
Windows
R 3.2.5
Microsoft R Open 3.2.5

これからやること

前回( https://qiita.com/gaborotta/items/b248a51f2d1dfb71a062 )の続きで、2019年2月から過去1年間でニコニコ動画ゲームカテゴリのランキングTOP100に入った動画・投稿者の情報を統計的に分析する。

前回はデータを一度でも上位20以内に入った動画と100~20位の動画に分割して、それぞれの傾向を把握した。
それを基に上位20位以内にランクインする動画かどうかを判定するモデルを構築する。

使用するモデル

この問題は、上位20位以内に入るか否かの2分類問題である。
2分類問題といえば定番の二項ロジットモデルを使用することとする。
他のモデルの検討はまた次回。

目的変数は「上位20位以内に入る動画である確率」
説明変数、前回の結果を参考に、

  • 投稿時間
    • 投稿時間をそのまま連続値として放り込むのはナンセンスなので、1時間ごとにダミー変数として使用。
  • 動画再生時間
    • 5分前後の動画、10分前後の動画で20位以内に入るかどうかの差がありそうだったので、この2つ+その他の動画に3分類してダミー変数として使用。
  • 投稿者のフォロワー数
    • 2000人くらいを境に20位以内に入るかどうかの差がありそうだったので、フォロワー数多とフォロワー数少の2つのダミー変数として使用。
  • 投稿者の動画投稿数
    • これも50本くらいを境に差がありそうだったので、投稿数多と投稿数少の2つのダミー変数として使用。
  • 投稿者の登録時ニコニコVer
    • 全てをダミー変数として使用。
  • 動画につけられたタグ
    • 全てのタグを使うのはあまりにも多いので、100回以上使用されているタグを全てダミー変数として使用。

以上のように、説明変数は全てダミー変数として使用する。
それぞれの閾値は今後つめていきます。徐々に機械学習に近づいていきます。

1.データの加工

動画タグ以外

まずは不要データの削除。投稿者情報が公開されていないデータが多数あるので、除いておく。
投稿時間はそのままfactor型に変換してやればOK。
factor型にすることによって、モデル作成時にダミー変数として扱ってくれる。
動画時間は条件分岐式を使って、300~360秒の動画を5分動画(TIME_5m)、540~660秒の動画を10分動画(TIME_10m)、それ以外(other)に分けてからfactor型に変換。
フォロワー数と投稿数、ニコニコVerも同じく条件分岐で分けてからfactor型に変換する。

# 不要データの削除
videoData0<-videoData%>%filter(USER_ID!=0,FOLLOWER_NUM>0,VIDEO_NUM>0,DATE!="",LENGTH!="")

# 投稿時間のダミー変数化
videoData0<-mutate(videoData0,DATE=as.character(DATE))
videoData0<-separate(videoData0,DATE,into = c("day", "time"),sep = "T",extra = "drop")
videoData0<-separate(videoData0,time,into = c("PUSH_HOUR", "minute","second"),sep = ":",extra = "drop")
videoData0<-videoData0%>%select(-minute,-second)%>%mutate(PUSH_HOUR=factor(PUSH_HOUR))

# 動画時間のダミー変数化
videoData0<-videoData0 %>% separate(LENGTH,into = c("minute"),sep = c("秒"),extra = "drop")
videoData0<-videoData0 %>% separate(minute,into = c("minute", "second"),sep = c("分"),extra = "drop")
videoData0<-videoData0 %>% separate(minute,into = c("hour", "minute"),sep = c("時間"),extra = "drop",fill="left")  
videoData0<-videoData0 %>% mutate(hour=as.numeric(hour),minute=as.numeric(minute),second=as.numeric(second))
videoData0[is.na(videoData0)]<-0
videoData0<-videoData0 %>% mutate(time=hour*3600+minute*60+second)%>%select(-hour,-minute,-second)
videoData0<-videoData0%>%mutate(TIME_RANGE=
                                  if_else(time>300&time<361,"TIME_5m",
                                          if_else(time>540&time<661,"TIME_10m","other")))
videoData0<-videoData0%>%mutate(TIME_RANGE=factor(TIME_RANGE))

# フォロワー数と動画投稿数のダミー変数化
videoData0<-videoData0%>%mutate(FOLLOWER_RANGE=if_else(FOLLOWER_NUM>=2000,"MANY","FEW"))%>%mutate(FOLLOWER_RANGE=factor(FOLLOWER_RANGE))
videoData0<-videoData0%>%mutate(VIDEO_RANGE=if_else(VIDEO_NUM>=50,"MANY","FEW"))%>%mutate(VIDEO_RANGE=factor(VIDEO_RANGE))

動画タグ

動画タグは一つの動画に対して複数種類つけられるため、先ほどまでの変数のように1列で表現できず、
同じ方法でダミー変数化できない。
そのため、caretパッケージのdummyVars関数を使ってダミー変数を作成する。
参考(https://qiita.com/daifuku_mochi2/items/2885dc02ac4bfc284e06)
これによりダミー変数が列に変換されるが、videoTagDataはタグをベースとしたテーブルであるため、これを動画情報をベースにしたテーブルに変換する必要がある。
そこでdplyrのsummarise_each関数で生成したタグ名列を1動画ごとに足し合わした後、mutate_each関数でfactor型に変換する。
最後に動画情報データ一覧に結合する。

# 動画タグのダミー変数化
tag_name<-group_by(videoTagData,TAG_NAME)
tag_name<-tag_name%>%summarise(count=n())%>%filter(count>=100)%>%setorder(-count)
tag_name<-videoTagData%>%inner_join(tag_name,by="TAG_NAME")
tag_name<-tag_name%>%mutate(TAG_NAME=factor(TAG_NAME))
df_dummy <- dummyVars(~.,data=tag_name)
df_dummy<- data.table(predict(df_dummy, tag_name))
head(df_dummy)
df_dummy_tag<-df_dummy%>%group_by(VIDEO_ID)%>%summarise_each(funs(sum), starts_with("TAG_NAME"))%>%mutate_each(funs(factor),starts_with("TAG_NAME"))
head(df_dummy_tag)

videoData0<-videoData0%>%select(ID,PUSH_HOUR,NICO_VER,isOver20,TIME_RANGE,FOLLOWER_RANGE,VIDEO_RANGE)
sample<-inner_join(videoData0,df_dummy_tag,by=c("ID"="VIDEO_ID"))

2.モデル構築

パラメータ推定

glm関数に突っ込むだけ。
ID情報はいらないので除去。
20位以内かどうかを目的変数とし、それ以外を説明変数とする式を定義(isOver20 ~.)
family=binomial(link="logit")で2項ロジットモデルを指定。
最尤推定法でパラメータの推定をしてくれます。
結果はsummary関数で見れます。

# モデル化
# 一般化線形モデル 二項ロジットモデル
sample0<-sample%>%select(-ID)%>%mutate_all(funs(factor))
head(sample0)
result <- glm(isOver20 ~., data=sample0, family=binomial(link="logit"))
summary(result)

結果

Estimateがパラメータの値です。
「Signif. codes: 0 ‘’ 0.001 ‘’ 0.01 ‘’ 0.05 ‘.’ 0.1 ‘ ’ 1」を参考に、各パラメータが有意かどうかが分かります。

> summary(result)

Call:
glm(formula = isOver20 ~ ., family = binomial(link = "logit"), 
    data = sample0)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.2887  -0.7790  -0.4222   0.7324   3.1454  

Coefficients:
                                              Estimate Std. Error z value Pr(>|z|)    
(Intercept)                                  -0.643247   0.311667  -2.064 0.039028 *  
PUSH_HOUR 01                                  0.378723   0.131442   2.881 0.003961 ** 
PUSH_HOUR 02                                 -0.058561   0.179148  -0.327 0.743754    
PUSH_HOUR 03                                 -0.018363   0.188210  -0.098 0.922277    
PUSH_HOUR 04                                 -0.063572   0.214696  -0.296 0.767152    
PUSH_HOUR 05                                  0.359182   0.150207   2.391 0.016792 *  
PUSH_HOUR 06                                  0.105936   0.131115   0.808 0.419110    
PUSH_HOUR 07                                  0.177164   0.121802   1.455 0.145800    
PUSH_HOUR 08                                  0.221059   0.133946   1.650 0.098870 .  
PUSH_HOUR 09                                  0.294460   0.136749   2.153 0.031296 *  
PUSH_HOUR 10                                 -0.222854   0.137386  -1.622 0.104782    
PUSH_HOUR 11                                 -0.024765   0.144301  -0.172 0.863738    
PUSH_HOUR 12                                  0.013992   0.129561   0.108 0.913999    
PUSH_HOUR 13                                  0.096252   0.141671   0.679 0.496882    
PUSH_HOUR 14                                 -0.066901   0.147869  -0.452 0.650955    
PUSH_HOUR 15                                 -0.068405   0.141526  -0.483 0.628853    
PUSH_HOUR 16                                 -0.137984   0.146316  -0.943 0.345654    
PUSH_HOUR 17                                 -0.037844   0.114608  -0.330 0.741247    
PUSH_HOUR 18                                  0.038922   0.100557   0.387 0.698707    
PUSH_HOUR 19                                  0.001442   0.101646   0.014 0.988679    
PUSH_HOUR 20                                  0.039287   0.104764   0.375 0.707659    
PUSH_HOUR 21                                 -0.337744   0.116521  -2.899 0.003749 ** 
PUSH_HOUR 22                                 -0.208088   0.116478  -1.787 0.074018 .  
PUSH_HOUR 23                                 -0.158840   0.117906  -1.347 0.177923    
NICO_VERGINZA                                 0.252150   0.094247   2.675 0.007464 ** 
NICO_VERQ                                     0.021300   0.125559   0.170 0.865291    
NICO_VERRC                                    0.309489   0.105155   2.943 0.003249 ** 
NICO_VERRC2                                   0.354412   0.123414   2.872 0.004082 ** 
NICO_VERSP1                                   0.372684   0.114190   3.264 0.001100 ** 
NICO_VERZero                                  0.042642   0.151370   0.282 0.778169    
NICO_VERβ                                    0.745265   0.136759   5.449 5.05e-08 ***
NICO_VERββ                                  0.014975   0.111879   0.134 0.893519    
NICO_VERγ                                    0.120253   0.096558   1.245 0.212986    
NICO_VERく                                   -0.717475   0.319674  -2.244 0.024807 *  
NICO_VER夏                                   -0.210218   0.176766  -1.189 0.234342    
NICO_VER原宿                                  0.002068   0.111183   0.019 0.985160    
NICO_VER秋                                   -0.124539   0.205102  -0.607 0.543715    
NICO_VER冬                                  -10.208028 109.482768  -0.093 0.925714    
TIME_RANGETIME_10m                           -0.066270   0.061467  -1.078 0.280975    
TIME_RANGETIME_5m                            -0.002515   0.124600  -0.020 0.983898    
FOLLOWER_RANGEMANY                            2.062799   0.056083  36.781  < 2e-16 ***
VIDEO_RANGEMANY                              -0.433786   0.054252  -7.996 1.29e-15 ***
TAG_NAME.1080p1                              -0.119760   0.260540  -0.460 0.645761    
TAG_NAME.7_days_to_die1                       0.679914   0.236734   2.872 0.004078 ** 
TAG_NAME.7DTD1                                0.730199   0.394529   1.851 0.064197 .  
TAG_NAME.biimシステム1                       -0.116507   0.105748  -1.102 0.270574    
TAG_NAME.biimシステムpart1リンク1             0.504448   0.245285   2.057 0.039727 *  
TAG_NAME.biimシステム単発リンク1              0.888891   0.226805   3.919 8.88e-05 ***
TAG_NAME.biim兄貴リスペクト1                 -0.125852   0.111165  -1.132 0.257588    
TAG_NAME.CeVIO実況プレイ1                    -0.346238   0.209447  -1.653 0.098310 .  
TAG_NAME.dbd1                                 0.545283   0.225296   2.420 0.015508 *  
TAG_NAME.DbD1                                 0.012907   0.209341   0.062 0.950835    
TAG_NAME.Dead_by_Daylight1                    0.251441   0.171066   1.470 0.141603    
TAG_NAME.EDF51                               -0.295358   0.309690  -0.954 0.340225    
TAG_NAME.Fate1                               -0.327458   0.286481  -1.143 0.253024    
`TAG_NAME.fate/go`1                          -0.623181   0.328783  -1.895 0.058037 .  
`TAG_NAME.Fate/go`1                          -0.829671   0.280716  -2.956 0.003121 ** 
`TAG_NAME.Fate/Grand_Order`1                 -0.243913   0.203880  -1.196 0.231557    
`TAG_NAME.fate/grandorder`1                  -0.546936   0.306288  -1.786 0.074149 .  
TAG_NAME.FGO1                                 1.010131   0.197305   5.120 3.06e-07 ***
TAG_NAME.FGO宝具1                             0.421589   0.332065   1.270 0.204228    
TAG_NAME.gdgdゆっくりーず1                   -0.752672   0.246281  -3.056 0.002242 ** 
TAG_NAME.Hearthstone1                        -0.301526   1.119753  -0.269 0.787715    
TAG_NAME.IA実況プレイ1                        1.115433   0.319850   3.487 0.000488 ***
TAG_NAME.Kenshi1                              0.399070   0.159369   2.504 0.012277 *  
TAG_NAME.MHW1                                 0.096330   0.253755   0.380 0.704228    
TAG_NAME.MikuMikuDance1                      -0.748511   0.432749  -1.730 0.083690 .  
TAG_NAME.Minecraft1                          -0.289551   0.141441  -2.047 0.040644 *  
TAG_NAME.MMD艦これ1                           0.439434   0.444246   0.989 0.322580    
TAG_NAME.MO1                                  0.439953   0.686532   0.641 0.521631    
TAG_NAME.moco781                              1.394452   0.335132   4.161 3.17e-05 ***
TAG_NAME.MTG1                                -1.485666   0.630546  -2.356 0.018465 *  
TAG_NAME.MUGEN1                              -0.351582   0.127943  -2.748 0.005997 ** 
TAG_NAME.Nintendo_Switch1                     0.987509   0.344691   2.865 0.004171 ** 
TAG_NAME.nintendoswitch1                     -1.591042   0.258691  -6.150 7.73e-10 ***
TAG_NAME.ONE実況プレイ1                       0.037926   0.318418   0.119 0.905191    
TAG_NAME.PCゲーム1                            0.630201   0.188326   3.346 0.000819 ***
`TAG_NAME.PLAYERUNKNOWN'S_BATTLEGROUNDS`1     0.169232   0.198222   0.854 0.393244    
TAG_NAME.PS41                                 0.103827   0.153536   0.676 0.498888    
TAG_NAME.pubg1                                1.307507   0.250975   5.210 1.89e-07 ***
TAG_NAME.PUBG1                                0.887158   0.170944   5.190 2.11e-07 ***
TAG_NAME.RimWorld1                           -0.461862   0.230812  -2.001 0.045389 *  
TAG_NAME.RTA1                                 0.197473   0.116660   1.693 0.090509 .  
TAG_NAME.Skyrim1                              0.490241   0.324675   1.510 0.131058    
TAG_NAME.Splatoon21                          -0.143791   0.390605  -0.368 0.712782    
TAG_NAME.steam1                               0.461013   0.156616   2.944 0.003244 ** 
TAG_NAME.Steam1                              -0.138646   0.088120  -1.573 0.115629    
TAG_NAME.TAS1                                 0.377089   0.161601   2.333 0.019624 *  
TAG_NAME.TRPG1                               -0.608992   0.260363  -2.339 0.019335 *  
TAG_NAME.VOICEROID1                          -0.475681   0.285268  -1.667 0.095418 .  
`TAG_NAME.VOICEROID+_琴葉_茜・葵`1           -0.076573   0.176459  -0.434 0.664332    
TAG_NAME.VOICEROID実況プレイ1                -0.167211   0.079207  -2.111 0.034766 *  
TAG_NAME.VOICEROID実況プレイPart1リンク1     -0.088004   0.117491  -0.749 0.453843    
TAG_NAME.VOICEROID実況プレイ最終回リンク1     0.959147   0.216672   4.427 9.57e-06 ***
TAG_NAME.VOICEROID実況プレイ単発リンク1       0.055946   0.240778   0.232 0.816261    
TAG_NAME.VOICEROID遊劇場1                     0.443553   0.191890   2.312 0.020805 *  
TAG_NAME.World_of_Tanks1                     -0.717739   0.469014  -1.530 0.125939    
TAG_NAME.WoT1                                 0.735085   0.514458   1.429 0.153046    
TAG_NAME.アニメ1                              0.175126   0.240535   0.728 0.466572    
TAG_NAME.ガンオン1                            0.690010   0.682084   1.012 0.311720    
TAG_NAME.ガンダムオンライン1                  0.317492   0.630719   0.503 0.614697    
TAG_NAME.クトゥルフ神話TRPG1                 -0.362804   0.164452  -2.206 0.027374 *  
TAG_NAME.クトゥルフ神話TRPG第一話リンク1     -0.312469   0.340030  -0.919 0.358124    
TAG_NAME.ゲーム1                             -1.711786   0.282899  -6.051 1.44e-09 ***
TAG_NAME.ゲームPV1                           -0.635166   0.238111  -2.668 0.007641 ** 
TAG_NAME.ゲームエフェクト集1                 -0.396289   0.384731  -1.030 0.302990    
TAG_NAME.ゲーム実況1                          0.393026   0.212466   1.850 0.064338 .  
TAG_NAME.さとうささら実況プレイ1              0.110030   0.248334   0.443 0.657713    
TAG_NAME.サムネホイホイ1                      0.651252   0.214242   3.040 0.002367 ** 
TAG_NAME.シノビガミ1                         -1.111485   0.259683  -4.280 1.87e-05 ***
TAG_NAME.スパロボ1                           -0.357577   0.288685  -1.239 0.215479    
TAG_NAME.スプラトゥーン21                    -0.392959   0.389432  -1.009 0.312948    
TAG_NAME.スマブラ1                            0.305719   0.361722   0.845 0.398012    
TAG_NAME.スマブラSP1                          0.011065   0.495475   0.022 0.982182    
TAG_NAME.とらねずの人1                        1.781407   0.165046  10.793  < 2e-16 ***
TAG_NAME.どんたこす1                         -2.853507   0.827008  -3.450 0.000560 ***
TAG_NAME.ニンテンドースイッチ1               -0.160483   0.340780  -0.471 0.637692    
TAG_NAME.ネタが多すぎてタグに困る動画1        0.354755   0.227716   1.558 0.119261    
TAG_NAME.ハースストーン1                     -1.077673   1.092636  -0.986 0.323984    
TAG_NAME.バーチャルYouTuber1                  0.399030   0.175854   2.269 0.023262 *  
TAG_NAME.パワプロ1                           -0.970091   0.435760  -2.226 0.026000 *  
TAG_NAME.パワプロ20181                       -0.463125   0.606934  -0.763 0.445429    
TAG_NAME.ヒテッマンリスペクト1               -1.996962   0.391956  -5.095 3.49e-07 ***
TAG_NAME.ファミコン1                          0.273050   0.248377   1.099 0.271621    
TAG_NAME.プレイ動画1                         -0.062514   0.282497  -0.221 0.824865    
`TAG_NAME.ボイロ×mtg`1                       0.186053   0.655745   0.284 0.776619    
`TAG_NAME.ボイロ×MTG`1                       0.212828   0.604363   0.352 0.724724    
TAG_NAME.ポケモン1                            0.435511   0.224213   1.942 0.052089 .  
TAG_NAME.ポケモンUSM1                        -0.212605   0.393618  -0.540 0.589108    
TAG_NAME.ポケモンusm対戦リンク1              -1.247113   0.284237  -4.388 1.15e-05 ***
TAG_NAME.ポケモンUSM対戦リンク1              -1.457755   0.455683  -3.199 0.001379 ** 
TAG_NAME.ポケモン手描き実況リンク1            0.158531   0.461397   0.344 0.731155    
TAG_NAME.マインクラフト1                      0.585107   0.192560   3.039 0.002377 ** 
`TAG_NAME.モダン(mtg)`1                      -1.597390   0.783778  -2.038 0.041544 *  
TAG_NAME.もっと評価されるべき1               -0.577322   0.175897  -3.282 0.001030 ** 
TAG_NAME.モンスターハンターワールド1          0.529660   0.295956   1.790 0.073509 .  
TAG_NAME.ゆづきず実況プレイ1                 -0.329650   0.314180  -1.049 0.294069    
TAG_NAME.ゆっくりTRPG1                       -0.467650   0.162359  -2.880 0.003972 ** 
TAG_NAME.ゆっくりTRPG第一話リンク1           -0.098032   0.293639  -0.334 0.738491    
TAG_NAME.ゆっくり解説1                        0.476938   0.151240   3.154 0.001613 ** 
TAG_NAME.ゆっくり実況1                       -0.339193   0.170583  -1.988 0.046763 *  
TAG_NAME.ゆっくり実況プレイ1                 -0.057851   0.059690  -0.969 0.332449    
TAG_NAME.ゆっくり実況プレイPart1リンク1       0.153139   0.155682   0.984 0.325282    
TAG_NAME.ゆっくり実況プレイ最終回リンク1      0.905366   0.209399   4.324 1.53e-05 ***
TAG_NAME.ゆっくり実況プレイ単発リンク1        0.291059   0.280585   1.037 0.299582    
TAG_NAME.リアルタイムアタックpart1リンク1     0.618549   0.303729   2.037 0.041699 *  
TAG_NAME.リアルタイムアタックPart1リンク1     0.754112   0.261145   2.888 0.003881 ** 
TAG_NAME.リターン1                            1.116500   0.325788   3.427 0.000610 ***
TAG_NAME.レトロゲーム1                        0.872534   0.192353   4.536 5.73e-06 ***
TAG_NAME.嘘字幕シリーズ1                     -0.968910   0.311829  -3.107 0.001889 ** 
TAG_NAME.音街ウナ実況プレイ1                 -0.011365   0.183453  -0.062 0.950600    
TAG_NAME.課金観戦リンク1                      0.121020   0.255250   0.474 0.635412    
TAG_NAME.艦これ1                              0.447382   0.288901   1.549 0.121487    
TAG_NAME.艦隊これくしょん1                   -0.298465   0.305759  -0.976 0.328992    
TAG_NAME.京町セイカ実況プレイ1               -0.361205   0.191830  -1.883 0.059707 .  
TAG_NAME.琴葉葵1                             -0.106301   0.220816  -0.481 0.630234    
TAG_NAME.琴葉葵実況プレイ1                    0.185813   0.119504   1.555 0.119979    
TAG_NAME.琴葉茜1                              0.447557   0.207941   2.152 0.031371 *  
`TAG_NAME.琴葉茜・葵実況プレイ`1              0.393414   0.078661   5.001 5.69e-07 ***
TAG_NAME.琴葉茜実況プレイ1                    0.315731   0.115781   2.727 0.006392 ** 
TAG_NAME.琴葉姉妹実況プレイ1                 -0.813480   0.212996  -3.819 0.000134 ***
TAG_NAME.結月ゆかり1                         -0.291373   0.207370  -1.405 0.159995    
TAG_NAME.結月ゆかり実況プレイ1                0.121339   0.075152   1.615 0.106402    
TAG_NAME.弦巻マキ実況プレイ1                 -0.041612   0.090390  -0.460 0.645255    
TAG_NAME.字幕プレイ動画1                     -1.397778   0.416374  -3.357 0.000788 ***
TAG_NAME.字幕プレイ動物園1                   -4.127953   0.780276  -5.290 1.22e-07 ***
TAG_NAME.実況プレイ動画1                     -0.218803   0.094138  -2.324 0.020110 *  
TAG_NAME.衝撃のラスト1                        0.460224   0.249862   1.842 0.065488 .  
TAG_NAME.神回1                                0.397291   0.169675   2.341 0.019207 *  
TAG_NAME.声優1                                0.252770   0.293013   0.863 0.388326    
TAG_NAME.千年戦争アイギス1                   -1.834336   0.721835  -2.541 0.011047 *  
TAG_NAME.多人数VOICEROID実況プレイ1           0.830210   0.210854   3.937 8.24e-05 ***
TAG_NAME.大乱闘スマッシュブラザーズSPECIAL1  -0.682698   0.498819  -1.369 0.171115    
TAG_NAME.地球防衛軍51                        -0.412492   0.244845  -1.685 0.092045 .  
TAG_NAME.刀剣乱舞1                            0.513853   0.333226   1.542 0.123060    
TAG_NAME.刀剣乱舞偽実況1                     -1.455755   0.547128  -2.661 0.007797 ** 
TAG_NAME.東北きりたん1                        0.300364   0.181221   1.657 0.097429 .  
TAG_NAME.東北きりたん実況プレイ1              0.125783   0.084940   1.481 0.138647    
TAG_NAME.東北ずん子1                          0.291033   0.284453   1.023 0.306246    
TAG_NAME.東北ずん子実況プレイ1               -0.206326   0.121320  -1.701 0.089005 .  
TAG_NAME.東北姉妹実況プレイ1                 -0.102716   0.240651  -0.427 0.669507    
TAG_NAME.日本語読めない卓1                    0.498172   0.225508   2.209 0.027167 *  
TAG_NAME.任天堂1                              0.406735   0.302979   1.342 0.179449    
TAG_NAME.任天堂ゲーム配信1                    0.512865   0.249129   2.059 0.039529 *  
TAG_NAME.縛りプレイ1                         -0.123123   0.163877  -0.751 0.452466    
TAG_NAME.裏影P1                               2.178431   0.418622   5.204 1.95e-07 ***
TAG_NAME.紲星あかり1                          0.448681   0.186183   2.410 0.015957 *  
TAG_NAME.紲星あかり実況プレイ1               -0.017078   0.104652  -0.163 0.870371    
---
Signif. codes:  0 *** 0.001 ** 0.01 * 0.05 . 0.1   1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 21458  on 18254  degrees of freedom
Residual deviance: 16980  on 18067  degrees of freedom
AIC: 17356

Number of Fisher Scoring iterations: 11

考察

有意がどうかについてだが、サンプル数が多いと、それ自体あまり意味がなくなってしまうことがある。
今回はサンプル数が18255とそれなりに多いので、そこまで有意かどうかについて拘る必要はないと思われる。
(もちろん、有意であればそのパラメータ自体に統計的に意味があるという事ではあるので、まったく考える必要がないということはない。)

まずはモデルの適合度を見る。
fitted関数によってサンプルデータを入れた際のモデルの結果を計算する。
20位以内である確率が50%以上のデータを20以内に入る動画とし、モデルの適合度を見る
次に、各パラメータの値を棒グラフで示し、各説明変数の影響度を見る。

# モデルの適合度
sample1<-sample0%>%mutate(fit=fitted(result))
sample1<-sample1%>%select(isOver20,FOLLOWER_RANGE,VIDEO_RANGE,PUSH_HOUR,NICO_VER,TIME_RANGE,fit)
sample1<-sample1%>%mutate(isOver20=if_else(isOver20=="1",1,0))%>%mutate(d2=(isOver20-fit)^2)
sample1<-sample1%>%mutate(isOver20_Simu=if_else(fit>=0.5,1,0))
re<-sample1%>%mutate(judge=isOver20==isOver20_Simu)%>%group_by(judge)%>%summarise(count=n())

# パラメータについて
smma<-summary(result)
coe<-data.table(rownames(smma[["coefficients"]]),smma[["coefficients"]])
g1 <- ggplot(coe, aes(x = V1, y = Estimate, fill = V1))
g1 <- g1 + geom_bar(stat = "identity")+theme(legend.position = 'none')+theme(axis.text.x = element_text(angle = 90, hjust = 1))
plot(g1)

適合度は以下より約77.6%となった。
割と適当に閾値を決めたにしては良いモデルが作れたかと思われる。

> head(re)
# A tibble: 2 x 2
  judge count
  <lgl> <int>
1 FALSE  4095
2  TRUE 14160
> 14160/(14160+4095)
[1] 0.7756779

次に各説明変数のパラメータ
model_para.png

Interceptに比べて各説明変数が高いか低いかで評価する。

まず目につくのが、ニコニコVerが冬の投稿者が切なすぎる。
冬であるというだけでパラメータがここまで負の値を取るのだからやばさが分かる。

良い要因としては、
・フォロワー数が2000人以上いること
・ニコニコVerがβであること
・投稿時間は1時や5時がいいこと(前回の分析では目立たなかったが、確かに20位以内に入りがち)
・7DTD,Part1リンク、DbD、FGO、IA実況プレイ、Kenshi、PCゲーム、PUBG、最終回、任天堂 等のタグが正の要因に。
・投稿者固有のタグはかなり高いor低い要因に。
・動画時間は5分、10分にすると他よりは少し良い程度。それよりも有効なタグをつけた方が効果的。
・投稿数はむしろマイナスに。

さて、上の結果だが、前回の分析とは少し違った結果にもなっている。
交互作用や多重共線性を全く考えていないからである。(この投稿者はこのタグを使いやすい、このタグがつくとこのタグがつきやすい等)

つまり、今回のモデルの結果はある程度は参考になるが、それほどではない。
さらに今回はテストデータそのままで適合度を見ているので、適合度がそれなりに高いのは当然である。
同意義のタグをまとめて分析したり、さらなるなんやかんやの工夫が必要である。

まとめ

glmを使ってロジスティック回帰をしました。
入力データが微妙なので、結果も微妙なことに。
さらなるデータ加工が必要であることが分かります。

あと投稿者に着目して分析した方がいいかと。
フォロワー数が多い方がいいとか、特定の投稿者タグが高いとか、投稿者に依存している部分がかなり多いです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?