Skip to content
Snippets Groups Projects
Commit 0a5bfd36 authored by Tucker Siegel's avatar Tucker Siegel
Browse files

update

parent ecd364d8
No related branches found
No related tags found
No related merge requests found
......@@ -36,6 +36,14 @@ var IntervalConvert = map[float64]float64{
99.9: 3.291,
}
var IntervalConvertPercentiles = map[float64][]float64{
90: {-1.645, -1.645},
95: {-1.960, 1.960},
99: {-2.576, 2.576},
99.5: {-2.807, 2.807},
99.9: {-3.291, 3.291},
}
func validateInterval(value interface{}) error {
for k := range IntervalConvert {
if k == value {
......
package services
import (
"math"
"gitlab.cs.umd.edu/dawn/go-backend/dawn-gdd/models"
"gitlab.cs.umd.edu/dawn/go-backend/dawn-gdd/persistence"
"gitlab.cs.umd.edu/dawn/go-backend/dawn-gdd/utils"
......@@ -10,60 +8,11 @@ import (
)
func GetConfidenceInterval(request models.ConfidenceIntervalRequest) models.ConfidenceIntervalResposne {
// g := persistence.NormalsFindFirstByYearAndLocation(request.BuildLocation())
// var minTemps []float64
// var maxTemps []float64
// var minVariance []float64
// var maxVariance []float64
// var lowerBound []float64
// var upperBound []float64
// var gddMinSum float64
// var gddMaxSum float64
// if request.Product == enums.ProductType.CORN {
// minTemps = g.MinTempsCorn
// maxTemps = g.MaxTempsCorn
// minVariance = g.MinVarianceCorn
// maxVariance = g.MaxVarianceCorn
// } else {
// minTemps = g.MinTemps
// maxTemps = g.MaxTemps
// minVariance = g.MinVariance
// maxVariance = g.MaxVariance
// }
// totalYears := float64(time.Now().Year() - 1991)
// for i := 0; i < len(minTemps); i++ {
// variance := (minVariance[i] + maxVariance[i])
// variance *= math.Pow(0.5, 2)
// std := math.Pow(variance, 0.5)
// gddValue := utils.CalculateSingleGdd(minTemps[i], maxTemps[i], request.Product)
// maxGddValue := (gddValue + (std / (math.Pow(totalYears, 0.5)) * zScore))
// minGddValue := (gddValue - (std / (math.Pow(totalYears, 0.5)) * zScore))
// minGddValue = utils.ClipMinFloat(minGddValue, 0)
// maxGddValue = utils.ClipMinFloat(maxGddValue, 0)
// gddMinSum += minGddValue
// gddMaxSum += maxGddValue
// lowerBound = append(lowerBound, gddMinSum)
// upperBound = append(upperBound, gddMaxSum)
// }
gs := persistence.GetLastNormalsYearly(request.BuildLocation())
product := request.Product
zScore := models.IntervalConvert[request.Interval]
// zScore := models.IntervalConvert[request.Interval]
// zScore := models.IntervalConvertPercentiles[request.Interval]
var lowerBound []float64
var upperBound []float64
......@@ -79,7 +28,9 @@ func GetConfidenceInterval(request models.ConfidenceIntervalRequest) models.Conf
}
rows = append(rows, row)
mean, std := stat.MeanStdDev(row, nil)
moe := std / math.Pow(30, 0.5) * zScore
moe := std * 1.645
// moe := std / math.Pow(30, 0.5) * zScore
upperBound = append(upperBound, utils.ClipMinFloat(mean+moe, 0))
lowerBound = append(lowerBound, utils.ClipMinFloat(mean-moe, 0))
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment