如何数据模拟多场美式橄榄球比赛?
2021-01-04 11:06:16 阅读(176) 评论(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,读者可以设计自己的逻辑来决定哪支球队是过去十年中最好的。
推荐阅读
- 关于小百货商店进货渠道及优势分析
当今社会,开一家百货店、便利店和小超市已经成为许多创业者的首选,那么一个很实质性的问题来了,那就是开店需要货源,要去哪里进货呢?怎样才能进到物美价廉的产品,应该注意什么问题呢?下面是一些关于小百货商店进货渠道。 要进货首先要对自己的店铺进行…查看详情
- windows10怎么找到u盘
在使用Windows10操作系统时,有时需要打开U盘以分享和传输文件。不过,如果您是初次使用该系统,可能会找不到U盘的位置。以下是如何在 Windows10中找到U盘的步骤: 1.将U盘插入计算机 将U盘插入计算机。如果您是第一次…查看详情
- 专业销售管理利器——红圈CRM
在2017年就诞生的业内最全面、最完整、最丰富的专业销售管理利器,红透半边天且风靡至今。它就是专门为直销团队打造的红圈OMS和帮助企业有力把控项目销售过程的红圈CRM以及企业智能高配置化平台红圈云构。其中,发布于2016年10月的红圈CRM…查看详情
- 有声小说app有哪些 有声小说App排行榜前十名
现在很多人特别喜欢听有声小说,这样子比较适合懒人,而且很多的人也比较喜欢在闲暇时间听小说,下面万商云集小编给大家有声小说app有哪些 有声小说App排行榜前十名,特此给大家介绍一下下面这几款听小说app. NO.1懒人听书 自从下了「懒…查看详情
- 企业oa系统主要功能和作用分别是哪些?
Oa(OfficeAutomation),即基于网络搭建的自动化办公通信平台,完成信息发布、文档管理、工作流程自动化等等工作,那么企业oa系统主要功能和作用分别是哪些呢? oa系统主要功能是哪些? oa系统对于一个企业来说,更像是一个以目标…查看详情
- url地址是什么意思 url地址的详细介绍
当我们打开浏览器,要访问一个网站或者一个ftp服务器的时候,一定要输入一串字符串,其实很多人不知道这个字符串是什么意思,其实这个就是url,下面小编就给大家来详细介绍一下url地址是什么意思 url地址的详细介绍这一块的内容,希望能…查看详情
- 线上服务不只是客服,电商系统满足购物体验也是服务要求
电商市场拓展快速,队伍也在逐渐壮大,不同类型的电商平台层出不穷,同一类型的电商平台数不胜数。当下,企业进行电商系统开发的时候,不仅要明确企业自身的电商系统要求,更要满足消费者对电商系统的要求。毕竟,得人心者得天下,虽然线上购物没有线下实体店…查看详情
- 新零售ERP如何让零售行业焕然一新
未来的十年、二十年,没有电子商务这一说,只有新零售。也就是说,线上线下和物流必须结合在一起,才能诞生真正的新零售,线上线下加上现代物流合在一起,才能真正创造出新的零售起来。零售行业变革已经开始。传统的零售业,透过手工形式记账,月底再统一汇总…查看详情
- 社区团购小程序的优势有哪些?
社区团购小程序以配送成本低和不需要实体店的优势,短时间内在在电商市场占据了不小的份额。很多具有前瞻性的电商人都已经在着手开发当中,但对于大多数中小企业对它还不太了解,今天小万就为大家剖析时下热门的社区团购小程序吧!图片来源于网络一、什么是社…查看详情
- web前端框架是什么
什么是WEB前端,WEB前端的概念是什么?web前端即为网站的前端开发,前端开发是创建Web页面或app等前端界面呈现给用户的过程。 web前端开发通过HTML,CSS及JavaScript以及衍生出来的各种技术、框架、解决方案,来实现互…查看详情
- APP版权登记知识整理:流程 费用 材料 实操及注意事项
目前,APP版权登记只能在中国版权保护中心进行,暂时还不支持在地方版权局登记办理。APP版权登记应按照软件著作权登记流程和标准进行,并且,从2017年4月起,版权保护中心已经停征软件著作权登记费用。图片来源于网络中国版权保护中心是国家版权局…查看详情
- 写作软件哪个好用 2022写作软件app排名
最近几年自媒体创作是非常火爆的,很多人都需要创作内容,下面万商云集小编给大家来详细介绍下写作软件哪个好用 2022写作软件app排名这方面的内容。希望能帮助到大家解决创作内容的问题、 1.小记 小记app是一款非常方便的手机日志,这款软…查看详情
- 免费婚恋软件 婚恋app哪个靠谱
对于年轻人来说,从恋爱到结婚是必经之路,然而在这个忙碌的社会,就算想谈恋爱也没有时间去认识新的朋友。在这种情况下,婚恋平台就成了首选,那么哪些婚恋平台靠谱呢?今天万商云集小编就给大家介绍下免费婚恋软件,希望能带给大家帮助。 1、百合…查看详情
- 2022年推广引流方法有哪些
大家好,这里是万商云集,下面小编给大家来介绍一下2022年推广引流方法有哪些,希望能帮助到大家做好营销推广。 1.软文。软文是目前最流行的推广方式之一。它之所以叫软文,当然不是生硬的宣传。软文主要是围绕消费者需求和产品特点进行写文章,…查看详情
- 老板课堂|做到这6点,你将拥有更多追随者!
作为中小企业老板,要想获得真正意义上的追随者,就需要抛开对职权的过于自信,通过个人影响力的提升去吸引更多的追随者。那么,一个优秀的老板应该怎样做?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

企业首选的数字选用平台

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















































注册有好礼



