服务热线:400-0033-166
万商云集 - 企业数字化选用平台

企业首选的

数字选用平台

如何数据模拟多场美式橄榄球比赛?

2021-01-04 11:06:16 阅读(175 评论(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,读者可以设计自己的逻辑来决定哪支球队是过去十年中最好的。

内容来源:数据分析网,以上内容来源于网络,不代表本站观点,如有侵权,请联系删除。

推荐阅读

不同于微商城,小程序商城运营推广有诀窍

微商城和小程序是当前企业商家的主要流量来源,虽然两者都是基于微信的商城运营,但在运营推广上还是有区别的,企业商家切记不能一概而论。 流量入口的区别微商城需要和公众号绑定,可以通过二维码、转发链接进入,但总的来说还是需要依附在公众号上,将公众…查看详情

拼车软件有哪些?这五款是不错的选择

如果大家的家里面自己买得有车的话,就会发现其实自己开车的机会并不多。因为大家每天都要上班,如果自己开车去公司上班的话,就需要找好比较合适的停车位。而有的时候,停车位有可能刚好离公司非常远,所以这是非常不方便的。而拼车出行逐渐成为…查看详情

什么是oa系统?企业为什么要用oa系统?

随着OA办公系统逐渐掀起的热潮,越来越多的企业开始将目光投入到OA办公系统上,那么究竟什么是oa系统呢?企业为什么要用oa系统? 什么是oa系统? OA系统的英文全称是:OfficeAutomationSystem,中文全称是自动化办公系统…查看详情

windows10自带ie怎么降级

  Windows10自带的IE其实是IE11,目前已经是最新版本,不建议降级。但是,如果你确实需要降级,可以按照以下步骤操作:  1.从开始菜单中打开“控制面板”。  2.在控制面板页面中,找到“程序”选项,点击进入。  3.在“程序和功…查看详情

推荐几款电脑系统优化软件,轻松提升电脑的运行速度

相信有很多用户都遇到很大一个问题,电脑怎么莫名其妙就变卡了呢?开机时长越来越慢,加载网页时长越来越长等等。这是因为电脑里面垃圾信息文件等等太多了导致的原因,今天小编给大家推荐几款电脑系统优化软件,一起来看看吧! 1.Win…查看详情

干货!电商托管代运营协议范本参考

电商托管代运营是一种新的商业服务。电子商务本身是一个复杂的过程,需要技术和市场营销的双重支持,在网络日渐重要的当今社会,中小企业一方面迫切希望能通过网络开展电子商务,另一方面又受到经验少、专业人才缺乏和成本高企的限制。 因此电商务托管服务应…查看详情

专利侵权行为有哪些?

现代社会中,专利代表着一个物品的知识产权,也是法律对知识产权的保护,毕竟创造一个东西所要付出的时间、精力和代价是很大的,下面万商云集小编给大家详细介绍下专利侵权行为。  一、专利侵权行为  根据我国《民法典》的相关规定,主要在合同编规定了侵…查看详情

搜狗高速浏览器怎么样

  搜狗高速浏览器是一款十分出色的浏览器,其拥有原生的极速引擎、高效的广告屏蔽、页面截图以及畅快无比的视频播放,同时还具有独特的搜索引擎核心,让我们不仅能够畅游互联网,而且可以更加方便快捷地搜索各种信息和资料。除此之外,搜狗浏览器还支持多个…查看详情

这应该是电脑上,最好用的5款电脑视频剪辑软件

现在随着互联网的飞跃腾达,许多短视频作者都需要一些电脑视频剪辑软件,在这个新时代的路上,互联网电商也越来越庞大,那么我们应该如何选择电脑视频剪辑软件呢?下面是给大家推荐的电脑视频剪辑软件!1.爱剪辑这款爱剪辑软件是国内首款免费的软件,从迄今…查看详情

便宜的crm系统有哪些?哪些因素会影响crm系统的价格?

对于中小企业来说,选择crm系统通常只考虑两点:一是功能是否满足基本需求,二是它是否是便宜的crm系统。那么今天小万就为需要节省支出的中小企业介绍一下crm系统是如何定价的,并推荐几个便宜的crm系统。 图片来源于网络 ▍ crm系统是怎…查看详情

4S店常用的汽修管理软件

现在市面上的4s店非常多,因为,汽车已经成为了大家必不可少的代步工具,所以,修车的店面也比较多,毕竟汽车也有坏的时候,对于修车店的老板如何管理,可以先看一下汽修管理软件有哪些? 1、智百盛 是一套实用性好、功能周全的汽车维修…查看详情

免费去除马赛克的app,轻松去除马赛克烦恼

喜欢的图片想要保存下来,但是上面却有难看的马赛克或者是水印的话,自然让大家十分烦恼,现在可以通过各种免费的趣马赛克APP,都能够轻松的去除这些标记,可以还原清晰的图片,那么下面就一起来了解,这几款好用的免费去除马赛克的APP吧。…查看详情

小程序开发报价浮动大的原因是什么?

由于市场对小程序的需求日益增加,于是就催生了很多第三方小程序开发公司。中小企业找到这些公司想要开发小程序,却又发现了其中的问题。同样的的需求,为什么不同的公司小程序开发报价浮动那么大,这都是什么原因呢?一起来了解下吧。 图片来源于网络影响小…查看详情

能自己制作图片的app手机做设计图的软件

照片是需要修饰的,如果只是普通的照片看上去不怎么显眼也不好看,如果用软件改一下的话看上去就会高一个档次,那么,在修图片之前,大家需要看一下制作图片的软件app都有什么? 1、制作图片软件 特别好用的专业摄影+后勤处置的图片类…查看详情

如果商标被注册该怎么办?改名、购买都可行

越来越多的商界朋友知道,商标专用权唯一获取的途径就是通过向国家商标局提交商标申请。随着越来越多的人申请注册商标,很多公司名字(商号)已经注册不了了,有时候好不容易想了一个很满意的商标名字,但又被别人注册了。如果商标被注册,碰到这种情况该怎么…查看详情

最新文章