如何数据模拟多场美式橄榄球比赛?
2021-01-04 11:06:16 阅读(160) 评论(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、字体管家 专为安卓手机用户构建的字体样式下…查看详情
- 国内获得融资的6家移动CRM平台介绍
随着移动互联网时代到来,只能用于电脑的CRM客户管理系统已无法满足现代企业需求,因而催生出了移动CRM平台,也催生出许多的移动CRM平台厂商。而这些厂商中,也不乏优秀的、获得融资的移动CRM平台,接下来小万就为大家选出6家获得融资厂商,以做…查看详情
- 企业自己做网站建设,避免三大坑
现代企业愈发具有互联网经营意识,网站建设早已变成司空见惯的事情。不少初创企业做网站,或发展中企业网站改版升级,开始直接选择自己做网站建设。这在一定程度上能够帮助企业节省沟通成本,按照自己的想法来落实网站建设,但也无可厚非的带来了一些麻烦。企…查看详情
- 商标注册第19类属建筑材料,其中包括15个小项
商标注册是商标使用人取得商标专用权的前提和条件,只有经核准注册的商标,才受法律保护。“先申请先注册”的商标注册原则是中国确定商标专用权的基本准则。商标注册一共分了45类,商标注册申请人可根据实际情况进行类别选择。今天,小万就为大家详细介绍商…查看详情
- 背单词的软件哪个好用 好用的背单词app推荐
很多人都跟我说不知道怎么记单词,而且很多人不知道怎么利用记单词软件来记单词,下面万商云集小编给大家推荐一下背单词的软件哪个好用 好用的背单词app推荐,希望能帮助到大家解决记单词的问题。 1、百词斩app 这个软件想必大家不会陌生…查看详情
- 版权纠纷属于民事还是刑事
版权纠纷通常属于民事范畴,而非刑事。以下是关于版权纠纷的基本解释和划分为民事性质的原因。 版权是指对作品的独占性权利,包括复制权、发行权、演出权等。当他人未经授权使用他人作品时,可能涉及版权侵权问题。根据大多数国家和地区的法律体系,版权纠纷…查看详情
- 网站seo推广 | 建站布局关键词,若流量不佳要诊断报告分析
网站seo推广,并非是在网站建设完成后才开始进行的。要想网站有曝光、有流量,应在网站建设初期就进行关键词布局,如此才能在后续的推广中更轻松。 图片来源于网络 ◆ 网站seo推广是什么?网站seo推广就是指基于网站建设平台所进行的一系列se…查看详情
- 为什么ERP系统实施难?应该怎样规避风险
中小企业在信息数字化的道路上徘徊不前,并不是看不到先进的技术和理念,其核心原因是ERP系统实施困难的问题没有得到良好的解决。目前通过实施ERP来提高企业自身的成本、速度、管理、质量、科技等方面的竞争优势,已成为中小企业的当务之急。谁能先一步…查看详情
- 苏州商标注册去哪里?通过这些渠道就能够完成商标注册
很多企业为了能够保护自己的品牌形象,都会设有商标设计,而且设计完商标之后也会进行商标注册,其实这对于企业来讲是非常重要的选择了,只有拥有了自己的商标注册之后,才能够得到产品的保护,也能够对自己的企业形象带来维护,而且企业商标也更是能够让消费…查看详情
- 全球比较出名的网站有哪些
在进行网站建设的时候,很多人也都会选择比较靠谱的平台,因为现在比较靠谱的网站建设公司才能够带来更好的网站建设效果也能够帮助企业得到好的发展,现在全球比较出名的网站有很多,在建站之前也应该要有了解。那么全球比较出名的网站有哪些呢?下面就来给大…查看详情
- 注意事项 | 企业要做好注册商标管理,维护也是一个重要环节
商标注册完成,证书拿到手后就可以不管不顾了?错!注册商标也是需要进行管理,尤其是对企业来说。往下翻看,了解更多关于注册商标管理的事项。 图片来源于网络 企业商标证书到手后,应如何做好注册商标管理? ◆ 事项一:保持联系若是委托代理机构代为注…查看详情
- 淘宝访客数是什么意思
优质答案(1) 抖音小店总访客数指的是有多少用户点进了抖音小店的主页。点击数指的是有多少用户?点进了抖音小店的主页,同时点开了商品页面。 只有用户点开了商品页面才会计算点击数。 对于抖音小店来说,访客数以及点击率都是非常重要的两个…查看详情
- ascii码是几位码
一个字符的标准ascii码是多少字节?一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。 奇校验规定:正确的代码一个字…查看详情
- 淘宝同城购怎么操作?
优质答案(1) 是你买的东西,可能是在你的城市发给你的,所以说就会很快就到达你要的地址,然后你填的地址,然后就离你很近,然后就马上就能发货到你那里,然后一天之内可能就会给你送到或者几个小时就能给你送到,这就是同城发货,同城购买的话,应…查看详情
- 支付宝跑腿任务是干什么的?
优质答案(1) 打开支付宝——全部应用——蚂蚁微客,点进去就可以看到服务界面,点击出门跑腿图标,就可以开始报名了,要芝麻信用分大于550分才可以的。 优质答案(2) 打开支付宝app,在首页点击进入全部功能页面; 然后在找到“蚂…查看详情
猜你喜欢
最新文章

扫码二维码
立即领取《千元实战营销秘籍》
还可免费试用营销管理系统
*如有疑问,请随时拨打免费咨询热线: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

企业首选的数字选用平台






