如何数据模拟多场美式橄榄球比赛?
2021-01-04 11:06:16 阅读(153) 评论(0)
本文使用R语言模拟美国橄榄球比赛的数据,我们将完成以下部分的工作。在我们完成了单场比赛的模拟后,我们可以非常方便地进行多场比赛的模拟。首先,我们需要通过循环语句实现多场比赛的时间表,并将单场比赛的模拟嵌入循环语句中;同时,我们需要变量来记录每支球队的胜利和失败。下面,我们将一步一步地展示如何模拟多场比赛。一旦你完成了单场比赛的模拟,我们就完成了本部分的三分之一的代码。处理过程按照我们既定的想法完成以下模拟。1.如前所述,我们首先需要制定一个时间表,即决定每场比赛的对抗。在许多决定方法中,NFL将有一个更好的时间表。但是,我们可以从以下任何方面的时间表来看,我们可以通过下面的时间表来模拟自己的时间表。但是,我们可以从下面的时间表来看,我们可以更好地输入到下面的时间表。但是如何通过下面的时间表来模拟时间表。我们可以更好地考虑如何通过下面的代码。games_per_team<-50for(weekin1):games_per_team){home_index<-sample(1:32,16,replace=F)home_teams<-data.frame(HomeTeam=offense[home_index,1])away_teams<-data.frame(AwayTeam=offense[-home_index,1])if(week==1){schedule<-cbind(Week=week,HomeTeam=home_teams,AwayTeam=away_teams)}else{temp<-cbind(Week=week,HomeTeam=home_teams,AwayTeam=away_teams)schedule<-rbind(schedule,temp)}}通过上述代码,我们得到了下图中显示的数据框变量。然而,由于sample函数的随机性,读者执行代码产生的主队和客队并不一定与这里的团队名称完全匹配。2.确定时间表后,我们现在可以记录每支球队的结果。records<-data.frame(Team=offense$Team)records$Wins<-0records$Losses<-0通过执行上述代码,我们可以获得以下数据框。3.现在我们需要通过程序自动实现每场比赛,并更新记录每支球队的输赢记录。我们通过在for循环中嵌入上一节中的代码来实现多场比赛。我们分步拆分for循环如下。for(iin1:nrow(schedule)){home_team<-schedule[i,2]away_team<-schedule[i,3]week<-schedule[i,1]本代码确定与模拟赛程中的周数相同的周数,并在每个周期中记录主队、客队和比赛的周数。4.下一个循环部分是我们以前的代码。本代码通过比较传球、影响和整体能力的差异来确定每场比赛的获胜者。off_game<-subset(offense,Team==home_team |Team==away_team)[,c(1,15,16,19)def_game<-subset(defense,Team==home_team|Team==away_team)[,c(1,14,15,18)game<-merge(off_game,def_game,by.x=”Team”,by.y=”Team”)game$Net_Pass[game$Team==home_team]<-game$OPassStrength[game$Team==home_team]–game$DPassStrength[game$Team==away_team]game$Net_Pass[game$Team==away_team]<-game$OPassStrength[game$Team==away_team]–game$DPassStrength[game$Team==home_team]game$Net_Rush[game$Team==home_team]<-game$ORushStrength[game$Team==home_team]–game$DRushStrength[game$Team==away_team]game$Net_Rush[game$Team==away_team]<-game$ORushStrength[game$Team==away_team]–game$DRushStrength[game$Team==home_team]game$Net_Total[game$Team==home_team]<-game$OffStrength[game$Team==home_team]–game$DefStrength[game$Team==away_team]game$Net_Total[game$Team==away_team]<-game$OffStrength[game$Team==away_team]–game$DefStrength[game$Team==home_team]game$Net_Total<-game$Net_Pass game$Net_Rush game$Net_Totalif(game$Net_Total[game$Team==home_team]>=game$Net_Total[game$Team==away_team]){winner<-home_teamloser<-away_team}else{winner<-away_teamloser<-home_team}5.本段代码记录每场比赛的结果,并更新整个赛季各队的输赢记录。if(i==1){winnerdf<-data.frame(Winner=winner)loserdf<-data.frame(Loser=loser)results<-cbind(winnerdf,loserdf)}else{winnerdf<-data.frame(Winner=winner)loserdf<-data.frame(Loser=loser)temp<-cbind(winnerdf,loserdf)results<-rbind(results,temp)}records$Wins[records$Team==winner]<-as.numeric(records$Wins[records$Team==winner]) 1records$Losses[records$Team==loser]<-as.numeric(records$Losses[records$Team==loser]) 1print(paste(“Week”,week,”:”,winner,“beat”,loser))}[1]“Week1:DenverBroncosbeatSanDiegoChargers[1]“Weeek1”:IndianapolisColtsbeatChicagoBears[1]“Weeek1”:SanFrancisco49ersbeatPhiladelphiaEagles[1]“Weeek1”:TennesseeTitansbeatDallasCowboys[1]“Weeek1”:CincinnatiBengalsbeatBaltimoreRavens[1]“Weeek1”:SeattleSeahawksbeatDetroitLions[1]“Weeek1”:GreenBayPackersbeatNewEnglandPatriots[1]“Weeek1”:PittsburghSteelersbeatMinnesotaVikings“for循环后产生的results变量如下图所示。6.最后,我们通过对每支球队获胜次数的降序来决定本赛季的最终获胜者。6.最后,我们通过对每支球队获胜次数的降序来决定本赛季的最终获胜者。records<-records[order(-records$Wins),]排序后的数据框架如下图所示。通过比较2013赛季的真实结果(见下图),我们可以看到模拟赛季前十名中的七支球队也在榜单上。这说明我们模拟赛季的结果是合理的。当然,我们也可以通过其他方法进行更准确的赛季模拟。在本节中,我们使用sample函数每周随机生成对双方的对抗。home_index<-sample(1:32,16,replace=F)以上sample函数从32支球队中随机选出16支球队作为主队,无需放回。其中home_index的队伍是主队,其他队伍是客队。同时,我们可以利用for循环来实现每一场比赛,并决定每一场比赛的胜负。for(iintimes-you-want-to-loop){dowhatyouwanttorepeat}你可以在for循环中实现任何你想要实现的逻辑。而且,正如我们在本节中实现的,条件表达式可以嵌入到for循环中。在本章中,我们利用R实现了计算、比较和绘图,甚至利用R编程语言的特性完全实现了竞争模拟引擎。在这个模拟引擎中,我们可以计算每个足球队在过去每场比赛中的表现,以及球队之间的相对优缺点。通过实现本章的逻辑,我们回答了一些基本问题,并给出了一些基本的统计变量。读者可以通过对这个项目进行更多的探索来锻炼他们使用R的能力。读者可以尝试提高本章提出的能力指数计算方法。在计算能力指数时,我们可以引入更多的变量,或者给每个变量不同的权重。更重要的是,读者可以尝试使用其他或自己建立的公式。实践数据科学的一个非常重要的过程是设计不同的实验来尝试和迭代。因此,更多的尝试和记录每个实验结果的质量可以帮助你探索更好的计算能力指数。探索的另一个方向是实现更接近现实的模拟。因此,读者可以使用真实的时间表,而不是我们模拟的时间表。当我们计算的能力指数显示比赛应该是平局时,我们可以通过引入概率变量来解释比赛的结果。同样,在这个方向上做更多的尝试和迭代可以帮助读者更好地接近现实,解释现实。如果您想为模型增加更多的变量和粒度,您可以介绍每个球员的统计变量,甚至球队球员的伤病信息,以帮助您预测球队未来的表现。但是,另一个非常有趣的研究方向是预测来自不同赛季的冠军队伍在对抗中的表现。例如,现任超级碗冠军Seatleseahawks将如何对抗前冠军NewenglandPatriots和NewyorkGiants,读者可以设计自己的逻辑来决定哪支球队是过去十年中最好的。
推荐阅读
- 服务器是干什么的 服务器有什么用处
相信很多从事计算机或者技术行业的都知道服务器到底是干什么用的,但是对于很多不是从事这一块的人对服务器都不是很熟悉,下面小编就给大家来详细介绍一下服务器是干什么的 服务器有什么用处这一块的相关内容,希望能帮助到大家。服务器是干什么的 一…查看详情
- 国外直播软件有哪些?国外十大直播软件
现在看直播的人数是越来越多,基本上可以说是全名直播了,目前国外的直播也是非常火爆的,下面万商云集小编给大家来详细介绍一下国外直播软件有哪些?国外十大直播软件这方面的内容,希望能帮助到大家了解到国外直播这一块。 一、Live.me 美国爆…查看详情
- 同城跑腿软件有哪些 同城跑腿软件排行榜
相信大家平时都使用过同城跑腿送货软件,很多的平台其实都是可以配送的,下面小编就给大家来详细介绍一下同城跑腿软件有哪些 同城跑腿软件排行榜这一块的相关内容,希望能帮助到大家。 同城跑腿软件排行榜 1、《美团》 小编认为在每一个伙…查看详情
- 国外独立网站如何建站
tiktok独立站怎么做?1、启动TikTok的社交媒体帐户 首页上放独立站网址,引导到独立品牌站,后期还有购物车。当前官方TikTok逐步开放主页链接权限,很多普通账户甚至是新注册账户,都有这一功能。 2、做TikTok网红营…查看详情
- 照片处理软件哪个好 修照片软件app哪个好
最近有许多小伙伴都在咨询小编修照片软件app哪个好,下面小编就给大家介绍几款照片处理软件。、一、迅捷图片转换器 这是一款电脑端的图片处理工具,软件内包含了格式转换、图片压缩、抠图换背景、去水印、照片修复和拼图等多个实用功能,接下来就为…查看详情
- vba编程是什么
VBA是什么东西?1、VBA是一门编程语言,VB应该听说过吧是很早微软开发的编程语言,很强大(以前)。而VBA就是由VB衍生而来。 2、VBA是寄生于office的语言,无法脱离office,而单独生存,就像PHP这种网页脚本语言,生存在…查看详情
- 我们应该怎样做好运营和推广
随着互联网的发展,网上的产品越来越同质化,随便在应用市场里面搜索一个关键词都能找到多个服务该分类的细分App,想要App脱颖而出再也不像以前那么简单了。现在的用户大多比较喜新厌旧,很多App就像流水一样在手机中过一下就走了,甚至有的App还…查看详情
- 好用的系统备份还原软件,让电脑使用更自随心所欲
喜欢的系统界面不见了、重要的数据文件丢失了、好用的系统软件更新后功能大变,这些问题都存在于电脑使用的过程当中。而有系统备份习惯的人往往可以通过备份还原的方式将这些问题解决。今天就为大家介绍几款好用的系统备份还原软件,让大家在电脑…查看详情
- 未来几年,还是直播电商的大年!有哪些机会点入局?
短视频直播,KOL,内容营销,明星带货,网红经济,圈层效应…直播电商几乎集齐了2020年所有的风口。根据相关统计,2019年电商直播市场规模约4338亿元,和2018年相比增长2.26倍。直播电商赛道目前仍处于蓝海阶段,增速快,有较大的市场…查看详情
- 淘宝818是什么节日?
优质答案(1) 818购物节最先起源于苏宁,它是苏宁周年庆典推出一个活动,线上线下都同时开展,而淘宝平台活动一年到头都有。 818淘宝也是有活动的。如果想参与,可以积极参与淘宝818,淘宝818活动是淘宝的开学季活动,如果想购买手机…查看详情
- 做法人需要什么条件(看看这些条件你满足吗?)
在现实生活中,选择成立公司的人往往需要满足相应的条件。成立公司必须按照办理注册的程序,那么法人注册的条件是什么?,下面小编就给大家来详细介绍一下做法人需要什么条件这一块的内容,希望能帮助到大家。 做法人需要什么条件 1、如果这个人不…查看详情
- 极力推荐的北斗导航系统手机软件,旅游再也不怕找不到好玩的了
现在是科学技术的社会,许多北斗系统对各位来讲都尤为重要,例如我们的日常生活也离不了北斗导航系统,它带各位带来了许多快捷,接下去让笔者给各位介绍这几种北斗导航手机软件1.北斗导航是一种便捷实用的导航仪,这款北斗导航手机版适用骑车,徒步,驾车导…查看详情
- 网店网适合电商吗?
随着互联网的发展,越来越多的人加入到电商这个不要求门槛的行业。但有些新手电商往往不知道该如何做好电商。网店网就是专门为了帮助新手电商而存在,那么网店网真的适合新手电商吗? 网店网项目模式 网店网一站式服务主要包括:开店前期准备,装修美化店铺…查看详情
- 支付宝怎么抢红包
支付宝是一个非常方便的移动支付平台,除了可以完成普通的转账和付款外,还有一个特别有趣的功能——支付宝抢红包。通过支付宝抢红包,你可以在和好友互动和聊天的同时,领取他们发出的红包,感受到惊喜和喜悦。 下面,我将详细地介绍支付宝如何抢红包…查看详情
- 听歌免费的音乐软件哪个好呢?不妨试试这几款
音乐是净化心灵和调节心情所不可缺少的,但是很多大型的音乐平台,在听歌的时候都需要付费,或者是需要缴纳会员费用,才能够有听歌的权限,自然也会对于日常的听歌产生了限制。在这里为大家介绍几款不错的听歌,免费的音乐软件,能够让大家免费聆…查看详情
猜你喜欢
最新文章
扫码二维码
立即领取《千元实战营销秘籍》
还可免费试用营销管理系统
*如有疑问,请随时拨打免费咨询热线:400-0033-166
服务时间:8:30-18:00
软件企业
认定号:川RQ-2018-0216
高新技术企业
认定号:GR201951001121
关注微信公众号
和10万中小企业共同成长
扫码下载APP
享全方位服务一触即达
Copyright © 2004-2022 万商云集(成都)科技股份有限公司 版权所有 蜀ICP备12001963号-2 川公网安备 51010402000322号
快速找产品
找一找哪款产品适合您?
咨询热线:400-0033-166
免费查找信息保护中请放心填写-
-
电话沟通
在线咨询
获取方案
下载APP
官方微信
扫码下载APP
全方位服务一触即达
关注万商云集
和10万中小企共成长
TOP
企业首选的数字选用平台