【R Advent Calendar】Dominion Dataで遊んでみる【19日目】

この記事は、R Advent Calendar 19日目の記事です。

巷では最近行われたM-1の審査結果で分析するのが流行っていますが、こちらは趣向を変えて宇宙本勉強用にDominionのCPU戦の対戦データを集めてみましたので、分析結果の一部をお披露目しようと思います。今回は効率という観点からデータセットを俯瞰していきます。ルールを知らない方はこちらをご参照下さい。

RユーザのためのRStudio[実践]入門−tidyverseによるモダンな分析フローの世界−

RユーザのためのRStudio[実践]入門−tidyverseによるモダンな分析フローの世界−

Summary

データセットの説明です。

  • 期間:2018年7月29日から9月22日まで
  • プレイヤー数:3人(私とAI2名)
  • データ数:72戦×3人、計216人分のデータ
  • 拡張パッケージ使用:なし(Dominion Onlineの無課金で遊べる基本セットのみ)*1
  • 変数:
    • 初期のサプライのカード(s_英語カード名)(有=1, 無=0の名義尺度)
    • ゲーム終了時手札に有るカード(r_英語カード名)(単位:枚)*2
    • ターン数(ゲーム終了までに使ったターン)
    • 得点(point):ゲーム終了時に獲得していた勝利点合計
    • カード枚数(card):ゲーム終了時の手持ちカード枚数
    • 順位(rank)(1st,2nd,3rdのカテゴリ)

貨幣の量で考える

まず、貨幣の量で考えます。貨幣を見る必要が有るので

ibrary(tidyverse)
→ここでread_csvでデータセットを読み込ませる作業が入ってきます。
money <- read_csv(hogehoge.csv, stringsAsFactors = FALSE)

銅貨は基本的に破棄されたりする運命なので、属州を獲得する上で必須となるのが、上級貨幣の銀貨と銀貨の量と順位を見ていきます。

silver_quan <- ggplot(data = money, mapping = aes(x = rank,y = r_silver))
silver_quan <- silver_quan + geom_violin(scale = "count")+ geom_point(data = money, mapping = aes(x = rank,y = r_silver))
print(silver_quan)

f:id:rakugou:20181215221745p:plain
順位ごとの銀貨獲得数(バイオリンプロット)

gold_quan <- ggplot(data = money, mapping = aes(x = rank,y = r_gold))
gold_quan <- gold_quan + geom_violin(scale = "count")+ geom_point(data = money, mapping = aes(x = rank,y = r_gold))
print(gold_quan)

f:id:rakugou:20181215221832p:plain
順位ごとの金貨獲得数(バイオリンプロット)

図では違いがわかりにくいですが、金貨保有ボリュームゾーンはだいたい3枚くらいがトップを取っているゾーン、3位のドンケツは金貨が3枚くらいしかないことが多い傾向にありそうなので、3〜5枚ほど稼いでおいたほうがよさそうです。

貨幣の質で考える

次に貨幣の質で見ていきます。 今回は合成変数として、山札の枚数あたりの貨幣量で見ていきます。

money_quality <- money %>% mutate(money_qual = (r_copper1 + r_silver2 + r_gold*3)/card)
mq <- ggplot(data = money_quality, aes(x = rank, y = money_qual))
mq <- mq + geom_boxplot()
print(mq)

f:id:rakugou:20181215221858p:plain
順位ごとの貨幣の質(箱ひげ図)

念の為、分散分析して、この差が意味が有るのか見ていきます。

anova(aov(money_qual ~ rank, data = money_quality))

Analysis of Variance Table

Response: money_qual
Df Sum Sq Mean Sq F value Pr(>F)
rank 2 0.0835 0.041768 1.2575 0.2865
Residuals 213 7.0750 0.033216

有意ではないっぽいですね。貨幣の質は順位によってあまり変わっていないらしいので、山札の効率化が勝利に導かれるかは時と場合による。ということでしょうか。ただ、箱ひげ図を見る限り、3位だけは0.5を突き抜けて下に伸びているので、手持ちの貨幣の総額が山札の枚数*0.7〜0.6を下回ると運用上きつくなりそうです*3

山札の枚数と勝敗

山札の枚数は勝敗に影響してくるんでしょうか、ドミニオンの基本的な戦略として、山札を圧縮して必要なカードをできるだけ多く回していくという戦法があります。圧縮する戦法か、カードを増やしていく戦法か、どちらがいいんでしょうか?

deck <- ggplot(data = money, mapping = aes(x = rank,y = card))
deck <- deck + geom_violin(scale = "count")+ geom_point(data = money, mapping = aes(x = rank,y = card))
print(deck)

f:id:rakugou:20181215221936p:plain
順位ごとの最終デッキ枚数(バイオリンプロット)

最瀕値もほぼ横並びで、だいたい似たような値に収まってきます。こちらも時と場合によることがあるのでしょう。1位のところだけ山札の枚数が多くなっているところがあるので、そのデータについて見てみましょう。

money %>%
filter(rank == 1st, card >= 45)
irr <- money %>%
+ select(r_copper,r_gardens,rank,turn,card)

r_copper r_gardens rank  turn   card
13     12     1st   26   51
10    11     1st   28   51
7     2     1st   29   47
13    12     1st   26   51

銅貨と庭園が著しく多いですね。庭園の数が2つになっているところは長期戦の末、庭園も確保せざるを得ない状況に陥っているように見受けられますが、それ以外は庭園をサプライのほぼ上限(12枚)を取りきるような形で獲得しています。山札10枚に付き1勝利点を得る庭園を集めて勝利する、特殊な戦略で勝ちきっているパターン*4です。

獲得勝利点で考える

獲得勝利点でも考えていきましょう。

win <- ggplot(data = money, mapping = aes(x = rank, y = point)) + geom_violin(scale = "count") + geom_point()
print(win)

f:id:rakugou:20181215222016p:plain
順位ごとの獲得勝利点(バイオリンプロット)

by(money$point,money$rank,summary)
→順位ごとの獲得得点の要約統計量を算出しています。 dom$rank: 1st
Min. 1st Qu. Median Mean 3rd Qu. Max.
24.00 31.00 33.00 36.04 38.00 72.00
dom$rank: 2nd
Min. 1st Qu. Median Mean 3rd Qu. Max.
20.00 26.00 28.50 30.26 32.00 60.00
dom$rank: 3rd
Min. 1st Qu. Median Mean 3rd Qu. Max.
2.00 20.00 25.00 24.51 27.00 51.00

思った以上に僅差ですね。1位の勝利点平均が属州6枚分であることは体感的に分かりますが、2位でも属州5枚分、3位でも属州4枚分の平均です。公領の獲得が2枚くらいで属州の獲得枚数が1枚減ると考えると、これくらいの数字がでそうですね。1位を狙うなら、少なくとも属州を5枚は取っていくペース配分で進めるのがよさそうです。

もっと細かいのないの?

細かいものはデータを持っているので、おいおいどこかでアップ*5できればと思っています。分析手法がおかしいものがあれば随時ご連絡下さい。

*1:拡張を使ってしまうとトークンやらランドマークやら避難所場などのイレギュラーな開始手札やらで集計がものすごくややこしくなりそうなので、基本で良かったと思っています。

*2:今回は開始と終了時のカードしか扱っていないが、5手目Rakugou、祝祭使用、銀貨×1、銅貨×2で金貨×1を購入みたいなことをするとデータ収集コストが無限に跳ね上がっていくのでできませんでした。そんなデータを取り扱えるようになってみたい。

*3:ただし、村、研究所などのアクション増加やドロー強化で山札の回転を極端に早めて、毎ターン山札を全て引ききる「引き切り」デッキの場合は、貨幣は8程度で属州をほぼ購入できるので、貨幣の質に縛られないプレイをすることが可能です。

*4:今回はAI戦で行っており、AIは庭園をかき集めて勝利する展開を取りたがらないので、この戦略が生きています。勘のいい人なら解ると思いますが、庭園を複数人で取り合う形になると、庭園不足で勝利点を十分に稼ぐことができず、属州を普通に集めていく戦略を取るほうが有利になります。

*5:このブログになるかgithubになるかは未定

いままでのできごと(20181210-1216)

いままでのできごと

今月は割と羽を休めることができたような気がします。土日両方家にいて、ゆっくりまったり作業を進めることができるというのは非常によいですね。但し、Nintendo Switchが入ってきてしまったので、時間を区切って一日を過ごすということを考えていかないといけません。

rakugou.hatenablog.jp

気になること

X-H1のファームウエアの更新:概要 | 富士フイルム

Ver. 2.00すごすぎませんか、手ブレ補正強化されるし*1、Ankerのバッテリで充電進捗確認できるし、これは欲しいと思ってしまった。稟議は上げているけれど、なかなか通らないので悩ましい。

rakugou.hatenablog.jp

Budget -予算推移-

予算に入っていた欲しかったものを一つ繰り下げたのと、必要経費を一つとSwitchとスマブラを計上のため、-20,000円くらい。Switchを抜いた当初の予算比的にはほぼ同じくらいなので、なんとか頑張っているといったところ。

*1:手ブレ補正レンズとの連携強化なので、手持ちのレンズではXF10-24とXF50-140が恩恵を受けるといったところだが、5.5段分の補正はすげぇ魅力的

【稟議】Nintendo Switch + 大乱闘スマッシュブラザーズSpecialセット

【購入商品】 

【金額】 

  • \39,930- 

【購入場所】 

Joshin WebかJoshin店舗か検討中

【購入理由】 

  • かれこれ7〜8年ぶりのゲーム機。オンライン対戦も可能なので、ぼっちでも通信対戦してコミュニケーションツールとしても楽しみたい。ただ、家の回線がADSL回線なので、果たしてうまく行くのか…
  • ソフトと本体別で買った方が安いみたいですが、Nintendo Onlineの3ヶ月お試し期間がついてるのでそちらの方が得かもと考えました。ただし、かなり鈍ってるっぽいので、オンラインの導入時期によってはソフト+本体になるかもしれません。

  • 商品説明で載ってたハイスピードHDMIが気になる。普通のHDMIとは何か違うのでしょうか…
  • Ubuntuをインストールしたとかいう噂がありますが、やや小さいくらいのディスプレイなのでOSを仕込む無茶をしなくとも、何かできるのかなぁなどと考えています。
  • 久々にゲーム機を購入するので、依存に陥らないように気をつけなければなりませんね…

いままでのできごと(20181203-1209)

いままでのできごと  

紅葉狩りも終わり、山陰で旅行納めをしてゆっくりするつもりでしたが、所用があり動いてばかりの週末で腰を落ち着けることはできんのかという感じです。最近は日々の生活を残して眠ってしまっているので、インプットが本当に足りなくて焦っています。12月は部屋にこもる予定なので、ここで勉強を進めておきたい。

Topic -気になること-  

Ubuntu Offline Meeting、今回はYoutubeライブ配信を眺めていました。金銭の工面ができなかったのでやむなく参加しませんでしたが、空気感とかからあげとかコミュニケーションとか、そういうきっかけになるので、次こそはお金のせいで行けなかったということは避けたい…

Events/OfflineTokyo201812 - Ubuntu Japanese Wiki

Budget -予算推移-  

今のところ-8,000円、仕込みで食費が高騰したのがいけませんね。冷凍庫はぎゅうぎゅうなので、今週末の食費は軽くできるのではと考えているけれど、甘いでしょうか…

そうこうしているうちに、Nintendo Switch大乱闘スマッシュブラザーズspecialが出てしまったので、Switch込で買いたいねぇと思っていたら一瞬にして赤字に届いてしまいかねないので、悩ましいところです。

いままでのできごと(20181126-1202)

いままでのできごと 

すごく急に決まりましたが、もう一度山陰鳥取に行きました。

人との旅行計画を練る時には、どういうふうな旅行と思われてるんだろうと気になる時があります。 自分の性分からしてかなり詰め詰めな体力勝負な旅行になる傾向にありますが、人に合わせようと努力する結果どのように見えてるんだろうとふと思うことがあります。相手にとって快適だとよいのですが…

Topic -気になること- 

www.gizmodo.jp

Type-C版のPowerCore Fusion出るみたいですね。コンセプトとしては魅力的ですが、新幹線のコンセントで差したりすると、自重で接続が勝手に外れないかどうか非常に心配*1。前にレビューしたバッテリー非搭載の大型Type-C充電ケーブルですら金属部分が見えていたくらいなのでちょっと心配。ホコリがきっかけに引火するのもよくないですからね...

rakugou.hatenablog.jp

別問題ですが、廃棄ボタン電池を発端としたコーナンの全焼事件もありましたので、電池の取扱には一層注意を払いたいところです。

mainichi.jp

Budget -予算推移- 

11月は山陰旅行を計算してなかったので、出費高騰しましたね。予算2.5万オーバーになってしまいました。旅券云々を早めに手配する計算を怠っていました。12月は勉強に使いたいと思っていますが、趣味のどれを削れるかを思案中です。だいたい12月はモノが安くなる傾向があって出費が増えるのです…ほら、Amazonのサイバーマンデーセールも控えていますし...

*1:横差しする場合に不安があるだけなので、上から差す場合は重さのデメリットは回避できるでしょう。

2018山陰旅行〜あめつちの車窓から

rakugou.hatenablog.jp

前回からだいぶ日が空いてしまいましたね…

20181021_ametuchi05

20181021_ametuchi06

20181021_ametuchi13

20181021_ametuchi15

今回の旅行のメインパート。「山陰めぐりパスであめつちに乗りたい」という一心で今回の旅程を構成していました。全部付きのきっぷにグリーン車券を上乗せするだけで乗車できるのは魅力的ですよね。 日本旅行で事前にお菓子をオーダーしておきましたし、発車40分前から*1車内の物色や撮影を済ませておいたので抜かりはなかったと言えるでしょう。 あめつちの昼の回は、出雲市から宍道湖畔を走り抜け、米子からは右手には大山、左手には日本海、さらに倉吉付近でのサンセットと、美しい車窓を眺めながら鳥取まで4時間の旅を堪能しました。

今日は全体的に晴れていたので、Pro Neg. Hiをベースにした設定が生きていたと思います。ちょっと露出を上げ目に撮ってみるといい感じですね。 稲佐の浜の時と同じような設定ですが、あまり撮ったことのないテイストで色づくりをしてみましたが、いかがでしょうか。

20181021_ametuchi16

*1:もともとはPokemon Goのコミュニティ・デイでダンバルを乱獲しようと思っていたのですが、不具合がありプレイできない状態に、その後、乗り換え待ちの間になんとかならないだろうと判断して先にホームで待っていました。

箕面の滝

f:id:rakugou:20181125104609j:plain

f:id:rakugou:20181125102603j:plain

大阪梅田からワンコインとちょっと、時間にして30分で行ける場所。流石に紅葉となると人間が多いですね。滝に近くなると人が犇めきあうので、定番の観光地ここにありという感じです。 滝の色づきもちょうどいい感じでした。ちょうどお昼に差し掛かる頃には、晴れた日には滝に虹がかかるというステキ仕様のため、一番いい時期に来れたなぁと思います。 次は深緑の時期の、できれば人の少ない時期がいいなぁと思います。梅田からも片道20kmくらいの近場なので、自転車登坂の練習でも行くことができますね。

f:id:rakugou:20181125105908j:plain

f:id:rakugou:20181125113427j:plain

完全に前回の曽爾高原と順序逆にすればよかったと後悔しっぱなしでした。夕方には梅田にいましたが、きれいに夕日の黄色が出ていたのがなおさら悔やまれます。

rakugou.hatenablog.jp

今回は晴れていたのでシャッタースピードの確保に苦労しました。XF16-55mmF2.8 R LM WRで最大限のF22まで絞り込んだ上、X-T2の拡張感度ISO100をもってしてもシャッタースピードを1/8秒にするのが限界でした。それ以上長くすると明るすぎてしまいます。やっぱり長い絹糸のような滝を撮影するためにはNDフィルターは欠かせないと思いましたが、いかんせんφ77mmのフィルターだけで高くつきます。フィルター遊びをするためにXF18-50F2.8-4 R LM OISを欲しいと思ってしまいましたが、これでは本末転倒ですね。やはりフィルターだけちょこちょこ買う方が安上がりなのか...

f:id:rakugou:20181125120604j:plain