- Questions
- Data
- Result: Analysis and Findings
- Conclusion and Discussion
6/15/2020
## id type name yearpublished minplayers maxplayers playingtime ## 486 36235 boardgame The Duke 2013 2 2 30 ## minplaytime maxplaytime minage users_rated average_rating ## 486 30 30 13 3526 7.4375 ## bayes_average_rating total_owners total_traders total_wanters total_wishers ## 486 6.8684 5864 188 310 1498 ## total_comments total_weights average_weight types ## 486 850 120 2.5167 boardgame,abstracts ## categories mechanics ## 486 Abstract Strategy,Medieval Grid Movement,Tile Placement ## family ## 486 Crowdfunding: Kickstarter,The Duke,Mensa Select ## designers ## 486 Jeremy Holcomb,Stephen McLaughlin ## description ## 486 Levy. Maneuver. Conquer. The Duke is a dynamic, tile-based strategy game with an old-world, feudal theme, high-quality wooden playing pieces, and an innovative game mechanism in its double-sided tiles. Each side represents a different posture – often considered to be defensive or offensive – and demonstrates exactly what the piece can do within the turn. At the end of a move (or after the use of a special ability), the tile is flipped to its other side, displaying a new offensive or defensive posture. Each posture conveys different options for maneuver and attack. The full circle is a standard Move, the hollow circle the Jump, the arrow provides for the Slide, the star a special Strike ability and so on. Each turn a player may select any tile to maneuver, attempting to defend his own troops while positioning himself to capture his opponent's tiles. If you end your movement in a square occupied by an opponent's tile, you capture that tile. Capture your opponent's Duke to win! Players start the game by placing their Duke in one of the two middle squares on their side of the game board. Two Footman are then placed next to the Duke. Each turn a player may choose to either move a single tile or randomly draw a new tile from the bag. With fifteen different Troop Tiles, all double-sided, and nineteen total pieces for each player (plus special optional tiles), the variety of game play is limitless. Beyond the endless variety of the basic game, Terrain Tiles introduce a variety of game play options, altering the game board. These rules also include several alternate objectives, such as the challenging Dark Rider game which pits five Pikeman against a lone Knight.
## Warning: package 'ggplot2' was built under R version 3.6.3
## Warning: package 'readr' was built under R version 3.6.3
## Warning: package 'dplyr' was built under R version 3.6.3
## ## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats': ## ## filter, lag
## The following objects are masked from 'package:base': ## ## intersect, setdiff, setequal, union
## Warning: package 'stringr' was built under R version 3.6.3
## Warning: package 'gridExtra' was built under R version 3.6.3
## ## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr': ## ## combine
## Warning: package 'ggrepel' was built under R version 3.6.3
## 'data.frame': 976 obs. of 26 variables: ## $ id : chr "36235" "197405" "19427" "215613" ... ## $ type : chr "boardgame" "boardgame" "boardgame" "boardgame" ... ## $ name : chr "The Duke" "Tak" "Gemblo" "Tao Long: The Way of the Dragon" ... ## $ yearpublished : int 2013 2017 2003 2017 2016 2017 2012 2015 2013 2019 ... ## $ minplayers : int 2 2 2 2 1 2 2 2 2 2 ... ## $ maxplayers : int 2 2 6 2 4 4 7 2 2 4 ... ## $ playingtime : int 30 60 30 30 30 60 45 45 15 30 ... ## $ minplaytime : int 30 20 30 10 30 15 45 30 15 15 ... ## $ maxplaytime : int 30 60 30 30 30 60 45 45 15 30 ... ## $ minage : int 13 12 6 14 13 12 8 12 0 14 ... ## $ users_rated : int 3526 1708 1335 1040 927 534 743 1705 1730 271 ... ## $ average_rating : num 7.44 7.73 6.83 7.03 6.8 ... ## $ bayes_average_rating: num 6.87 6.63 6.14 6.12 5.98 ... ## $ total_owners : int 5864 3329 1478 3239 1948 1252 1218 3607 4785 512 ... ## $ total_traders : int 188 41 41 144 168 21 74 191 362 11 ... ## $ total_wanters : int 310 199 148 64 45 44 45 88 19 25 ... ## $ total_wishers : int 1498 1089 588 492 235 165 191 650 255 105 ... ## $ total_comments : num 850 475 466 353 325 154 222 536 736 104 ... ## $ total_weights : num 120 46 128 22 24 16 46 51 122 12 ... ## $ average_weight : num 2.52 2.46 1.9 2.68 1.96 ... ## $ types : chr "boardgame,abstracts" "boardgame,abstracts" "boardgame,abstracts" "boardgame,abstracts" ... ## $ categories : chr "Abstract Strategy,Medieval" "Abstract Strategy" "Abstract Strategy" "Abstract Strategy" ... ## $ mechanics : chr "Grid Movement,Tile Placement" "Grid Movement,Network and Route Building" "" "Grid Movement,Modular Board,Point to Point Movement" ... ## $ family : chr "Crowdfunding: Kickstarter,The Duke,Mensa Select" "5x5 grid,Combinatorial,Connection Games,Crowdfunding: Kickstarter,Fictional Games" "Combinatorial,Crowdfunding: Kickstarter,Gemblo" "Crowdfunding: Kickstarter" ... ## $ designers : chr "Jeremy Holcomb,Stephen McLaughlin" "James Ernest,Patrick Rothfuss" "Justin Oh" "Dox Lucchin,Pedro Latro" ... ## $ description : chr "Levy. Maneuver. Conquer. The Duke is a dynamic, tile-based strategy game with an old-world, feudal the"| __truncated__ ""My next several hours were spent learning how to play tak. Even if I had not been nearly mad with idlenes"| __truncated__ "Gemblo is an abstract strategy game with translucent, colored pieces, each of which is made up of one to five h"| __truncated__ ""There was something formless and perfect before the Universe was born. For lack of a better name, I call "| __truncated__ ...
## Warning: package 'treemap' was built under R version 3.6.3
## Warning: package 'viridis' was built under R version 3.6.3
## Loading required package: viridisLite
## Warning: package 'viridisLite' was built under R version 3.6.3
## Warning: package 'splitstackshape' was built under R version 3.6.3
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family not ## found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font ## family not found in Windows font database ## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font ## family not found in Windows font database ## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font ## family not found in Windows font database
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font ## family not found in Windows font database ## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font ## family not found in Windows font database ## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font ## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font ## family not found in Windows font database ## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font ## family not found in Windows font database ## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font ## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font ## family not found in Windows font database ## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font ## family not found in Windows font database ## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font ## family not found in Windows font database
## Selecting by average_rating
## Warning: Removed 20 rows containing missing values (geom_segment).
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font ## family not found in Windows font database ## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font ## family not found in Windows font database ## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font ## family not found in Windows font database
## Selecting by bayes_average_rating
## Warning: Removed 20 rows containing missing values (geom_segment).
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font ## family not found in Windows font database ## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font ## family not found in Windows font database ## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font ## family not found in Windows font database
## ## Call: ## lm(formula = average_rating ~ types + maxplayers + minage + total_wanters + ## yearpublished + playingtime + users_rated + average_weight + ## total_owners, data = par_year1234) ## ## Residuals: ## Min 1Q Median 3Q Max ## -2.35232 -0.24534 0.01443 0.25114 2.17439 ## ## Coefficients: ## Estimate Std. Error t value ## (Intercept) 5.87067363 0.11374194 51.614 ## typesboardgame,strategygames 0.03273491 0.05892177 0.556 ## maxplayers 0.01001343 0.00483840 2.070 ## minage -0.00623653 0.00839849 -0.743 ## total_wanters 0.00111332 0.00014275 7.799 ## yearpublished2 0.16490067 0.04966829 3.320 ## yearpublished3 0.33804976 0.05739377 5.890 ## yearpublished4 0.67470240 0.06218698 10.850 ## playingtime 0.00048708 0.00041633 1.170 ## users_rated -0.00006134 0.00002301 -2.666 ## average_weight 0.29092989 0.04547164 6.398 ## total_owners 0.00003987 0.00001445 2.760 ## Pr(>|t|) ## (Intercept) < 0.0000000000000002 *** ## typesboardgame,strategygames 0.578707 ## maxplayers 0.038903 * ## minage 0.458017 ## total_wanters 0.0000000000000263 *** ## yearpublished2 0.000952 *** ## yearpublished3 0.0000000063147203 *** ## yearpublished4 < 0.0000000000000002 *** ## playingtime 0.242478 ## users_rated 0.007869 ** ## average_weight 0.0000000003090201 *** ## total_owners 0.005952 ** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 0.4908 on 624 degrees of freedom ## Multiple R-squared: 0.5157, Adjusted R-squared: 0.5072 ## F-statistic: 60.42 on 11 and 624 DF, p-value: < 0.00000000000000022
## ## Call: ## lm(formula = average_rating ~ types + maxplayers + minage + total_wanters + ## yearpublished + playingtime * average_weight + users_rated + ## total_owners, data = par_year1234) ## ## Residuals: ## Min 1Q Median 3Q Max ## -2.3454 -0.2433 0.0124 0.2540 2.1980 ## ## Coefficients: ## Estimate Std. Error t value ## (Intercept) 5.89695955 0.12483889 47.237 ## typesboardgame,strategygames 0.03889964 0.06017193 0.646 ## maxplayers 0.01008558 0.00484331 2.082 ## minage -0.00552839 0.00851636 -0.649 ## total_wanters 0.00111640 0.00014296 7.809 ## yearpublished2 0.16386413 0.04973883 3.294 ## yearpublished3 0.33991510 0.05754301 5.907 ## yearpublished4 0.67649007 0.06232152 10.855 ## playingtime -0.00033713 0.00166175 -0.203 ## average_weight 0.28138771 0.04916289 5.724 ## users_rated -0.00006027 0.00002312 -2.607 ## total_owners 0.00003890 0.00001458 2.668 ## playingtime:average_weight 0.00021840 0.00042628 0.512 ## Pr(>|t|) ## (Intercept) < 0.0000000000000002 *** ## typesboardgame,strategygames 0.51821 ## maxplayers 0.03772 * ## minage 0.51648 ## total_wanters 0.0000000000000245 *** ## yearpublished2 0.00104 ** ## yearpublished3 0.0000000057275230 *** ## yearpublished4 < 0.0000000000000002 *** ## playingtime 0.83930 ## average_weight 0.0000000162182083 *** ## users_rated 0.00935 ** ## total_owners 0.00783 ** ## playingtime:average_weight 0.60859 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 0.4911 on 623 degrees of freedom ## Multiple R-squared: 0.516, Adjusted R-squared: 0.5066 ## F-statistic: 55.34 on 12 and 623 DF, p-value: < 0.00000000000000022
quadratic model:
## ## Call: ## lm(formula = average_rating ~ types + yearpublished + poly(maxplayers, ## 2) + poly(minage, 2) + poly(total_wanters, 2) + poly(playingtime, ## 2) + poly(users_rated, 2) + poly(average_weight, 2) + poly(total_owners, ## 2), data = par_year1234) ## ## Residuals: ## Min 1Q Median 3Q Max ## -2.24115 -0.22880 -0.00857 0.23810 2.26954 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 6.78441 0.04968 136.560 < 0.0000000000000002 ## typesboardgame,strategygames 0.03594 0.05835 0.616 0.538214 ## yearpublished2 0.17312 0.04772 3.628 0.000310 ## yearpublished3 0.31212 0.05518 5.657 0.00000002362118310 ## yearpublished4 0.60649 0.06055 10.016 < 0.0000000000000002 ## poly(maxplayers, 2)1 1.34974 0.51326 2.630 0.008759 ## poly(maxplayers, 2)2 -0.23954 0.49702 -0.482 0.630013 ## poly(minage, 2)1 -0.41506 0.53601 -0.774 0.439017 ## poly(minage, 2)2 -0.54438 0.48860 -1.114 0.265643 ## poly(total_wanters, 2)1 7.43181 0.91520 8.120 0.00000000000000253 ## poly(total_wanters, 2)2 -5.17844 0.63806 -8.116 0.00000000000000262 ## poly(playingtime, 2)1 0.71776 0.72261 0.993 0.320963 ## poly(playingtime, 2)2 0.24389 0.60269 0.405 0.685867 ## poly(users_rated, 2)1 -6.36362 2.73241 -2.329 0.020184 ## poly(users_rated, 2)2 4.68346 1.38830 3.374 0.000789 ## poly(average_weight, 2)1 5.05295 0.96378 5.243 0.00000021752684085 ## poly(average_weight, 2)2 -0.31244 0.51904 -0.602 0.547426 ## poly(total_owners, 2)1 5.91401 2.43880 2.425 0.015596 ## poly(total_owners, 2)2 -1.76605 1.35128 -1.307 0.191717 ## ## (Intercept) *** ## typesboardgame,strategygames ## yearpublished2 *** ## yearpublished3 *** ## yearpublished4 *** ## poly(maxplayers, 2)1 ** ## poly(maxplayers, 2)2 ## poly(minage, 2)1 ## poly(minage, 2)2 ## poly(total_wanters, 2)1 *** ## poly(total_wanters, 2)2 *** ## poly(playingtime, 2)1 ## poly(playingtime, 2)2 ## poly(users_rated, 2)1 * ## poly(users_rated, 2)2 *** ## poly(average_weight, 2)1 *** ## poly(average_weight, 2)2 ## poly(total_owners, 2)1 * ## poly(total_owners, 2)2 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 0.4671 on 617 degrees of freedom ## Multiple R-squared: 0.5664, Adjusted R-squared: 0.5538 ## F-statistic: 44.78 on 18 and 617 DF, p-value: < 0.00000000000000022
## Warning in sqrt(crit * p * (1 - hh)/hh): 產生了 NaNs ## Warning in sqrt(crit * p * (1 - hh)/hh): 產生了 NaNs
## Warning: package 'caret' was built under R version 3.6.3
## Loading required package: lattice
## Warning: package 'ellipse' was built under R version 3.6.3
## ## Attaching package: 'ellipse'
## The following object is masked from 'package:graphics': ## ## pairs
## counts percentage ## 0 340 43.53393 ## 1 441 56.46607
## ## Call: ## summary.resamples(object = results) ## ## Models: lda, cart, knn, svm, rf, xgb ## Number of resamples: 10 ## ## Accuracy ## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's ## lda 0.6836735 0.7397959 0.7845571 0.7706186 0.8020724 0.8247423 0 ## cart 0.6428571 0.7500000 0.7704082 0.7582790 0.7815064 0.8041237 0 ## knn 0.7142857 0.7216495 0.7487376 0.7612666 0.7959184 0.8453608 0 ## svm 0.7755102 0.8067010 0.8265306 0.8310120 0.8509363 0.9175258 0 ## rf 0.8163265 0.8380234 0.8564065 0.8545550 0.8673469 0.8969072 0 ## xgb 0.8265306 0.8392857 0.8564065 0.8597307 0.8740532 0.9175258 0 ## ## Kappa ## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's ## lda 0.3560831 0.4729190 0.5571063 0.5334978 0.5972336 0.6440751 0 ## cart 0.2910294 0.4866880 0.5210937 0.5015601 0.5593714 0.5907173 0 ## knn 0.4198732 0.4372251 0.4939052 0.5163414 0.5866723 0.6787370 0 ## svm 0.5418615 0.6060157 0.6495024 0.6563757 0.6970886 0.8320346 0 ## rf 0.6308079 0.6760997 0.7081475 0.7056573 0.7320100 0.7900433 0 ## xgb 0.6468843 0.6718148 0.7078990 0.7149074 0.7442114 0.8310840 0
-https://www.kaggle.com/devisangeetha/insights-geek-board-game
-https://www.kaggle.com/maxphilipp/board-games-mechanics