コード例 #1
0
        public static void GetAllStdDevForEvent(int eventTyepId, string eventName, int competitionId)
        {
            var l = new List <MainCalculator.TeamStdDevAndAverage>();

            using (var db = new sakilaEntities4())
            {
                var teams = db.team.Where(x => x.TeamTypeID == 1 && x.TeamName != "NA").ToList();
                foreach (var team in teams)
                {
                    var allValues =
                        db.matchevent.Where(
                            x =>
                            x.EventTypeID == eventTyepId &&
                            x.TeamID == team.TeamID &&
                            x.competitionmatch.CompetitionID == competitionId &&
                            x.eventvalue != null)
                        .Select(x => x.eventvalue).ToList();
                    if (!allValues.Any())
                    {
                        continue;
                    }

                    var avg    = (double)allValues.Average();
                    var result = MainCalculator.CalculateStdDev(allValues.Select(x => x.Value).ToList());
                    l.Add(new MainCalculator.TeamStdDevAndAverage {
                        StdDev = result, TeamName = team.TeamName, Average = avg
                    });
                }
            }

            var path = @"C:\Users\user\Desktop\DataProjects\AverageAndStdDev" + eventName + ".tsv";

            File.WriteAllLines(path, l.OrderByDescending(x => x.Average).Select(x => x.TeamName + "\t" + Math.Round(x.Average, 2) + "\t" + Math.Round(x.StdDev, 2)));
        }
コード例 #2
0
        public static MainCalculator.TeamStdDevAndAverage GetGoalsStdDevForTeam(team team)
        {
            var allValues = GetTeamGoals(team.TeamID);
            var avg       = (double)allValues.Average();
            var result    = MainCalculator.CalculateStdDev(allValues.ToList());

            return(new MainCalculator.TeamStdDevAndAverage {
                StdDev = result, TeamName = team.TeamName, Average = avg
            });
        }
コード例 #3
0
        public static MainCalculator.TeamStdDevAndAverage GetGoalsConcededAverageAtAway(List <competitionmatch> relevantMatches, int teamId,
                                                                                        int competitionId, int matchesToTake = 50)
        {
            //var relevantMatches = MainCalculator.GetTeamLatesMatches(db, teamId, competitionId, matchesToTake);
            var awayGoalsValues = relevantMatches.Where(x => x.AwayTeamID == teamId).Select(x => x.HomeGoals).ToList();
            var avg             = Math.Round(awayGoalsValues.Average(), 2);
            var result          = Math.Round(MainCalculator.CalculateStdDev(awayGoalsValues.ToList()), 2);

            return(new MainCalculator.TeamStdDevAndAverage {
                StdDev = result, Average = avg
            });
        }
コード例 #4
0
        public static MainCalculator.TeamStdDevAndAverage GetGoalsScoringAverageAtAway(List <competitionmatch> allMatches, int teamId,
                                                                                       int competitionId, int matchesToTake = 50)
        {
            var relevantMatches = allMatches.Where(x => x.AwayTeamID == teamId).ToList();
            var homeGoalsValues = relevantMatches.Where(x => x.HomeTeamID == teamId).Select(x => x.HomeGoals).ToList();
            var awayGoalsValues = relevantMatches.Where(x => x.AwayTeamID == teamId).Select(x => x.AwayGoals).ToList();
            var allValues       = homeGoalsValues.Concat(awayGoalsValues).ToList();
            var avg             = Math.Round(allValues.Average(), 2);
            var result          = Math.Round(MainCalculator.CalculateStdDev(allValues.ToList()), 2);

            return(new MainCalculator.TeamStdDevAndAverage {
                StdDev = result, Average = avg
            });
        }
コード例 #5
0
        public static double GetStdValueForTeamInEvent(sakilaEntities4 db, int teamId, int competitionId, int eventTypeId,
                                                       int gamesToTake = 50)
        {
            var values =
                db.matchevent.Where(
                    x =>
                    x.EventTypeID == eventTypeId &&
                    x.TeamID == teamId &&
                    x.competitionmatch.CompetitionID == competitionId &&
                    x.eventvalue != null)
                .OrderByDescending(x => x.competitionmatch.MatchDate)
                .Take(gamesToTake)
                .Select(x => (int)x.eventvalue)
                .ToList();

            return(MainCalculator.CalculateStdDev(values));
        }
コード例 #6
0
        public static MainCalculator.TeamStdDevAndAverage GetGoalsConcededAverage(List <competitionmatch> relevantMatches, int teamId,
                                                                                  int competitionId, int matchesToTake = 50, DateTime?endDate = null)
        {
            if (!endDate.HasValue)
            {
                endDate = DateTime.Now;
            }
            relevantMatches = relevantMatches.Take(matchesToTake).ToList();
            var homeGoalsValues = relevantMatches.Where(x => x.HomeTeamID == teamId).Select(x => x.AwayGoals).ToList();
            var awayGoalsValues = relevantMatches.Where(x => x.AwayTeamID == teamId).Select(x => x.HomeGoals).ToList();
            var allValues       = homeGoalsValues.Concat(awayGoalsValues).ToList();
            var avg             = Math.Round(allValues.Average(), 2);
            var result          = Math.Round(MainCalculator.CalculateStdDev(allValues.ToList()), 2);

            return(new MainCalculator.TeamStdDevAndAverage {
                StdDev = result, Average = avg
            });
        }
コード例 #7
0
        public static MainCalculator.TeamStdDevAndAverage GetGoalsScoringAverage(sakilaEntities4 db, int teamId,
                                                                                 int competitionId, int matchesToTake = 50, DateTime?endDate = null)
        {
            if (!endDate.HasValue)
            {
                endDate = DateTime.Now;
            }

            var relevantMatches = MainCalculator.GetTeamLatesMatches(db, teamId, competitionId, matchesToTake, endDate);
            var homeGoalsValues = relevantMatches.Where(x => x.HomeTeamID == teamId).Select(x => x.HomeGoals).ToList();
            var awayGoalsValues = relevantMatches.Where(x => x.AwayTeamID == teamId).Select(x => x.AwayGoals).ToList();
            var allValues       = homeGoalsValues.Concat(awayGoalsValues).ToList();
            var avg             = Math.Round(allValues.Average(), 2);
            var result          = Math.Round(MainCalculator.CalculateStdDev(allValues.ToList()), 2);

            return(new MainCalculator.TeamStdDevAndAverage {
                StdDev = result, Average = avg
            });
        }
コード例 #8
0
        public static double GetStdEventValuePerTeamMatches(sakilaEntities4 db, int teamId, int competitionId, int eventTypeId, int gamesToTake = 50)
        {
            var matchesIds = MainCalculator.GetTeamLatesMatches(db, teamId, competitionId, gamesToTake)
                             .Select(x => x.CompetitionMatchID)
                             .ToList();

            var values =
                db.matchevent.Where(
                    x =>
                    x.EventTypeID == eventTypeId &&
                    matchesIds.Contains(x.MatchID) &&
                    x.competitionmatch.CompetitionID == competitionId &&
                    x.eventvalue != null)
                .OrderByDescending(x => x.competitionmatch.MatchDate)
                .Take(gamesToTake)
                .Select(x => (int)x.eventvalue)
                .ToList();

            return(Math.Round(MainCalculator.CalculateStdDev(values), 2));
        }