如何数据模拟多场美式橄榄球比赛?
2021-01-04 11:06:16 阅读(179) 评论(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,读者可以设计自己的逻辑来决定哪支球队是过去十年中最好的。
推荐阅读
- 好用的办公软件有哪些 好用的办公软件排行榜
现在大家很多的时候都会涉及到线上办公,现在线上办公的软件都是非常不错的,下面*就给大家来详细介绍一下好用的办公软件有哪些 好用的办公软件排行榜这一块的内容,希望能帮助到大家!好用的办公软件有哪些 1、《WPSOffice》 这是一款…查看详情
- 软件版权登记费用标准是多少?诉求不同收费不同
对于软件著作权相信大家都不陌生,但是想要取得软件的著作权是需要根据法律的规定到指定的部门和机构办理登记的,当然这也是国家对软件著作开发者权益的一种保护手段,确保知识产权的归属,那么软件版权登记费用标准是什么呢?*为你详细解答。 图片来源于网…查看详情
- 如何选择网站搭建公司会比较好?
网站建设是十分重要的,不管是大型的企业还是中小型企业,也都认识了网站建设的重要性,都会选择比较好的平台来建设网站。其实现在的建站平台也比较多,在选择网站搭建公司的时候,也应该要了解一些相关的注意事项,这样才能够帮助到自己选择更好…查看详情
- dat文件用什么软件打开 dat文件是什么
我们在接触电脑的时候,会接触许多不同的软件,每一款软件的意义是不一样的,那么,如果想要更好的使用计算机,需要大家先了解一下dat文件用什么软件打开,因为这个软件的打开方式是不一样的。1.dat文件用什么软件点开倘若dat是配置种类文档,大部…查看详情
- 买车APP软件哪个好?这三款app是购车人的福音
因为现在的社会比较发达,大家的消费水平也逐渐提高,所以很多家庭都已经步入买车的环节了,因为汽车是一个很好的代步工具,有了汽车去哪里都会特别的方便,那么买车APP软件哪个好呢? 1、购车通 是一款中国和外国著名汽车商携手共建的…查看详情
- lan是指什么网
lan通常是指什么网?即局域网。是最常见且应用最为广泛的一种网络,它是指在1~5公里范围内两台以上的计算机设备(如服务器、工作站)通过线缆(如同轴线缆、双绞线、光缆等)连接起来实现的资源共享的计算机网络,如家庭、办公室、学校或者有计算机、服…查看详情
- 手机bl锁的全称是什么
手机BL是什么意思?手机bl全称是“BootLoader”,是在操作系统内核运行之前运行的一段小程序,可以初始化*件设备、建立内存空间映射图,从而将系统的软*件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。手机bl锁的全…查看详情
- 注册商标所需要的资料:若注册商标为人物肖像,应公证
随着我国经济的不断发展,企业为了区别商品或服务出处,便于消费者认牌购物,打造品牌效应。基于企业市场竞争和广告宣传的需要,注册商标都是势在必行的。那么注册商标所需要的资料有哪些呢? 图片来源于网络 注册商标申请程序:1、形式审查:自申请之日起…查看详情
- 你真正了解mes系统和erp系统区别吗?
在企业管理工作运转流程中,Mes系统项目的进行往往离不开erp系统的协同,你真正了解mes系统和erp系统区别吗? Mes系统和erp系统概念的区别: MES为制造执行系统,旨在加强MRP计划的执行功能,把MRP计划同车间作业现场控制,通过…查看详情
- 2022库房管理软件推荐排行榜
现代企业为方便库房管理,提高管理层的效率,提高库房管理层次渐逐信息化以及为了节约劳动力成本所需要的费用而采用的一种智能化、人性化的库房管理软件。库房管理软件采用了计算化功能。主要为解决现代企业的库房管理难题。操作人员能随时快速的…查看详情
- 淘宝小卖家应该具备怎样的运营思维
随着互联网和电商的发展,越来越多的小商家开启了淘宝店,都想借助淘宝这个大平台让自己的生意更好,但是随着淘宝卖家的量越来越多,淘宝生意也越来越难做,而且很多小卖家在产品的选择、店铺装修设计、后期推广运营上的能力比较欠缺,也导致其销量不好。目前…查看详情
- 线上推广的优势和好处有哪些?
企业要做好电商运营与推广,首先要了解清楚商城网站的线上推广方式,然后结合自己的情况去选择对应的推广方式。下面HiShop*就跟大家一起来了解一下,线上推广100种方式中哪种更有效! 线上推广的好处 1,网络宣传速度快,成本低,覆盖面…查看详情
- 看书软件哪个好 2022好用免费的看书软件
现在越来越多的人都比较喜欢读书,随着社会和互联网的快速发展,移动读书趋势越来越明显,在手机上就可以实现随时i读书,下面万商云集*为大家整理了几款好用免费的看书软件,希望大家喜欢。1、藏书馆 藏书馆是一个通过借阅形式读书的APP,你随时…查看详情
- 最具价值十大人力资源管理软件排名
随着科技的进步与发展,为满足人们日常生活的需要,各大企业上市。而一个好的企业,更需要领导者有更好的管理。综合多方面的考虑以及各大企业的反馈和各客户及员工的反映,我们对人力资源管理软件进行了排名。 1、东宝软件。产品功能涵盖人力资源管理六大模…查看详情
- 如何做好知识产权保护?从法律角度给你帮助
如何做好知识产权保护,首先就要先了解知识产权是什么,接下来小万将从法律的角度给大家解析一下什么是知识产权及知识产权的基本特征。什么叫知识产权?虽然知识产权经常被人们提及,可是什么是知识产权呢,知识产权总是看起来是个很高大上的行业。知识产权其…查看详情
猜你喜欢
最新文章

扫码二维码
立即领取《千元实战营销秘籍》
还可免费试用营销管理系统
*如有疑问,请随时拨打免费咨询热线:400-0033-166
邮箱:zjb@iwanshang.com
服务时间:8:30-18:00
软件企业
认定号:川RQ-2018-0216
高新技术企业
认定号:GR201951001121

关注微信公众号
和10万中小企业共同成长

扫码下载APP
享全方位服务一触即达
Copyright © 2004-2022 万商云集(成都)科技股份有限公司 版权所有
蜀ICP备12001963号-2
川公网安备 51010402000322号

快速找产品

找一找哪款产品适合您?
咨询热线:400-0033-166
-


-
电话沟通
获取方案
下载APP
官方微信
扫码下载APP
全方位服务一触即达

关注万商云集
和10万中小企共成长

TOP

企业首选的AI增效平台

400-0033-166
8:30-18:00















































注册有好礼



