Example usage for org.apache.commons.math3.stat.descriptive SummaryStatistics getMean

List of usage examples for org.apache.commons.math3.stat.descriptive SummaryStatistics getMean

Introduction

In this page you can find the example usage for org.apache.commons.math3.stat.descriptive SummaryStatistics getMean.

Prototype

public double getMean() 

Source Link

Document

Returns the mean of the values that have been added.

Usage

From source file:gdsc.smlm.ij.plugins.DensityImage.java

/**
 * Output a log message of the results including the average density for localisations and the expected average.
 * /*from   w  w  w  .j a  va2 s.c  o m*/
 * @param results
 * @param density
 * @param radius
 * @param filtered
 * @return
 */
private SummaryStatistics logDensityResults(MemoryPeakResults results, int[] density, float radius,
        int filtered) {
    float region = (float) (radius * radius * ((useSquareApproximation) ? 4 : Math.PI));

    Rectangle bounds = results.getBounds();
    float area = bounds.width * bounds.height;
    float expected = results.size() * region / area;
    SummaryStatistics summary = new SummaryStatistics();

    for (int i = 0; i < results.size(); i++) {
        summary.addValue(density[i]);
    }

    DensityManager dm = new DensityManager(results);

    // Compute this using the input density scores since the radius is the same.
    final double l = (useSquareApproximation) ? dm.ripleysLFunction(radius)
            : dm.ripleysLFunction(density, radius);

    String msg = String.format("Density %s : N=%d, %.0fpx : Radius=%s : L(r) - r = %s : E = %s, Obs = %s (%sx)",
            results.getName(), summary.getN(), area, rounded(radius), rounded(l - radius), rounded(expected),
            rounded(summary.getMean()), rounded(summary.getMean() / expected));
    if (filterLocalisations)
        msg += String.format(" : Filtered=%d (%s%%)", filtered, rounded(filtered * 100.0 / density.length));
    IJ.log(msg);

    return summary;
}

From source file:model.scenario.OneLinkSupplyChainScenarioRegressionTest.java

private OneLinkSupplyChainResult testFoodMonopolistWithFixedProductionRun(int random,
        final boolean competitorsLearned, int speed, float divideGainsByThis, File csvFileToWrite) {
    final MacroII macroII = new MacroII(random);
    final OneLinkSupplyChainScenarioCheatingBuyPriceAndForcedMonopolist scenario1 = new OneLinkSupplyChainScenarioCheatingBuyPriceAndForcedMonopolist(
            macroII, OneLinkSupplyChainScenario.OUTPUT_GOOD) {
        @Override//from  w  w w . ja v a2 s.  co  m
        protected void buildBeefSalesPredictor(SalesDepartment dept) {
            if (competitorsLearned)
                dept.setPredictorStrategy(new FixedDecreaseSalesPredictor(0));
        }
    };
    scenario1.setControlType(MarginalMaximizer.class);
    scenario1.setSalesDepartmentType(SalesDepartmentOneAtATime.class);
    //use standard PID parameters
    scenario1.setDivideProportionalGainByThis(divideGainsByThis);
    scenario1.setDivideIntegrativeGainByThis(divideGainsByThis);
    //100 days delay
    scenario1.setBeefPricingSpeed(speed);
    //no need for filter with the cheating price
    scenario1.setBeefPriceFilterer(null);
    scenario1.setBeefTargetInventory(10);

    //add csv writer if needed
    if (csvFileToWrite != null)
        DailyStatCollector.addDailyStatCollectorToModel(csvFileToWrite, macroII);

    macroII.setScenario(scenario1);
    macroII.start();

    while (macroII.schedule.getTime() < 9000) {
        macroII.schedule.step(macroII);
    }

    //I used to assert this:
    //Assert.assertEquals(macroII.getMarket(OneLinkSupplyChainScenario.OUTPUT_GOOD).getLatestObservation(MarketDataType.AVERAGE_CLOSING_PRICE),85,6 );
    //but that's too hard because while on average the price hovers there, competition is noisy. Sometimes a lot.
    //so what I did was to attach a daily stat collector and then check the average of the last 10 prices
    SummaryStatistics averageFoodPrice = new SummaryStatistics();
    SummaryStatistics averageBeefProduced = new SummaryStatistics();
    SummaryStatistics averageBeefPrice = new SummaryStatistics();
    for (int j = 0; j < 1000; j++) {
        //make the model run one more day:
        macroII.schedule.step(macroII);
        averageFoodPrice.addValue(macroII.getMarket(OneLinkSupplyChainScenario.OUTPUT_GOOD)
                .getLatestObservation(MarketDataType.AVERAGE_CLOSING_PRICE));
        averageBeefProduced
                .addValue(macroII.getMarket(OneLinkSupplyChainScenario.INPUT_GOOD).getYesterdayVolume());
        averageBeefPrice.addValue(macroII.getMarket(OneLinkSupplyChainScenario.INPUT_GOOD)
                .getLatestObservation(MarketDataType.AVERAGE_CLOSING_PRICE));
    }

    System.out.println("beef price: " + averageBeefPrice.getMean());
    System.out.println("food price: " + averageFoodPrice.getMean());
    System.out.println("produced: " + averageBeefProduced.getMean());
    System.out.println();

    return new OneLinkSupplyChainResult(averageBeefPrice.getMean(), averageFoodPrice.getMean(),
            averageBeefProduced.getMean(), macroII);

}

From source file:model.experiments.stickyprices.StickyPricesCSVPrinter.java

private static void simpleDelaySweep(int maxDivider, int maxSpeed, int demandDelay, int experimentsPerSetup)
        throws IOException {

    CSVWriter writer = new CSVWriter(new FileWriter(Paths.get("runs", "rawdata", "delaySweep.csv").toFile()));
    writer.writeNext(new String[] { "speed", "divider", "distance", "variance", "success" });

    for (int divider = 1; divider < maxDivider; divider++) {
        //for all speeds
        for (int speed = 0; speed < maxSpeed; speed++) {

            SummaryStatistics averageSquaredDistance = new SummaryStatistics();
            SummaryStatistics averageVariance = new SummaryStatistics();
            int successes = 0;

            for (int runNumber = 0; runNumber < experimentsPerSetup; runNumber++) {
                float totalDistance = 0;
                SummaryStatistics prices = new SummaryStatistics();

                //runNumber!
                final SimpleSellerScenario run = runWithDelay(demandDelay, speed, divider, false, true,
                        runNumber);//  ww  w .  ja  v  a2s .  c o m

                final double[] pricesInRun = run.getDepartments().get(0).getData()
                        .getObservationsRecordedTheseDays(SalesDataType.LAST_ASKED_PRICE, 0, 14999);
                for (double price : pricesInRun) {
                    totalDistance += Math.pow(price - 51, 2);
                    prices.addValue(price);
                }

                averageSquaredDistance.addValue(Math.sqrt(totalDistance));
                averageVariance.addValue(prices.getVariance());
                if (pricesInRun[pricesInRun.length - 1] == 51)
                    successes++;
            }

            String[] csvLine = new String[5];
            csvLine[0] = String.valueOf(speed);
            csvLine[1] = String.valueOf(divider);
            csvLine[2] = String.valueOf(averageSquaredDistance.getMean());
            csvLine[3] = String.valueOf(averageVariance.getMean());
            csvLine[4] = String.valueOf(successes);
            writer.writeNext(csvLine);
            writer.flush();
            System.out.println(Arrays.toString(csvLine));
        }

    }

}

From source file:model.scenario.CompetitiveScenarioTest.java

@Test
public void rightPriceAndQuantityLearningInventory() {

    for (int competitors = 4; competitors <= 7; competitors++) {
        System.out.println("FORCED COMPETITIVE FIRMS: " + (competitors + 1));
        for (int i = 0; i < 5; i++) {

            final MacroII macroII = new MacroII(System.currentTimeMillis());
            final TripolistScenario scenario1 = new TripolistScenario(macroII);
            scenario1.setSalesDepartmentType(SalesDepartmentOneAtATime.class);
            scenario1.setAskPricingStrategy(SalesControlWithFixedInventoryAndPID.class);
            scenario1.setControlType(//from   w  w  w.  j  a  va  2  s .c  om
                    MonopolistScenario.MonopolistScenarioIntegratedControlEnum.MARGINAL_PLANT_CONTROL);
            scenario1.setAdditionalCompetitors(competitors);
            scenario1.setWorkersToBeRehiredEveryDay(true);
            scenario1.setDemandIntercept(102);

            //assign scenario
            macroII.setScenario(scenario1);

            macroII.start();

            while (macroII.schedule.getTime() < 8000) {
                macroII.schedule.step(macroII);
                /*      System.out.println("sales: " + scenario1.getCompetitors().get(0).getSalesDepartment(GoodType.GENERIC).
                    getLatestObservation(SalesDataType.OUTFLOW) +","
                    + scenario1.getCompetitors().get(1).getSalesDepartment(GoodType.GENERIC).
                    getLatestObservation(SalesDataType.OUTFLOW));
                  */

            }
            SummaryStatistics prices = new SummaryStatistics();
            SummaryStatistics quantities = new SummaryStatistics();
            SummaryStatistics target = new SummaryStatistics();
            for (int j = 0; j < 500; j++) {
                macroII.schedule.step(macroII);
                assert !Float.isNaN(macroII.getMarket(UndifferentiatedGoodType.GENERIC).getTodayAveragePrice());
                prices.addValue(macroII.getMarket(UndifferentiatedGoodType.GENERIC).getTodayAveragePrice());
                quantities.addValue(macroII.getMarket(UndifferentiatedGoodType.GENERIC).getTodayVolume());

                for (EconomicAgent agent : macroII.getMarket(UndifferentiatedGoodType.GENERIC).getSellers()) {
                    SalesDepartment department = ((Firm) agent)
                            .getSalesDepartment(UndifferentiatedGoodType.GENERIC);
                    target.addValue(macroII.getMarket(UndifferentiatedGoodType.GENERIC).getTodayVolume());
                }

            }

            System.out.println(prices.getMean() + " - " + quantities.getMean() + "/" + target.getMean() + "----"
                    + macroII.seed() + " | "
                    + macroII.getMarket(UndifferentiatedGoodType.GENERIC).getLastDaysAveragePrice());
            System.out.println("standard deviations: price : " + prices.getStandardDeviation() + " , quantity: "
                    + quantities.getStandardDeviation());
            OneSectorStatics.printSlopes(scenario1);
            if (competitors >= 4) {
                assertEquals(prices.getMean(), 58, 5);
                //                    assertTrue(prices.getStandardDeviation() < 5.5);
                assertEquals(quantities.getMean(), 44, 5);
                //                  assertTrue(quantities.getStandardDeviation() < 5.5);
            }
            macroII.finish();
        }

    }

}

From source file:model.scenario.CompetitiveScenarioTest.java

@Test
public void rightPriceAndQuantityTestAsMarginalNoPIDAlreadyLearnedFlows() {

    for (int competitors = 4; competitors <= 7; competitors++) {
        //  System.out.println("FORCED COMPETITIVE FIRMS: " + (competitors+1));

        for (int i = 0; i < 5; i++) {

            final MacroII macroII = new MacroII(System.currentTimeMillis());
            final TripolistScenario scenario1 = new TripolistScenario(macroII);
            scenario1.setSalesDepartmentType(SalesDepartmentOneAtATime.class);
            scenario1.setAskPricingStrategy(InventoryBufferSalesControl.class);
            scenario1.setControlType(/*from w  ww  .  j  a  v  a  2 s.c  o  m*/
                    MonopolistScenario.MonopolistScenarioIntegratedControlEnum.MARGINAL_PLANT_CONTROL);
            scenario1.setAdditionalCompetitors(competitors);
            scenario1.setWorkersToBeRehiredEveryDay(true);
            scenario1.setDemandIntercept(102);

            scenario1.setSalesPricePreditorStrategy(FixedDecreaseSalesPredictor.class);

            //assign scenario
            macroII.setScenario(scenario1);

            macroII.start();

            macroII.schedule.step(macroII);
            for (Firm firm : scenario1.getCompetitors()) {
                for (HumanResources hr : firm.getHRs())
                    hr.setPredictor(new FixedIncreasePurchasesPredictor(0));

                firm.getSalesDepartment(UndifferentiatedGoodType.GENERIC)
                        .setPredictorStrategy(new FixedDecreaseSalesPredictor(0));
            }

            while (macroII.schedule.getTime() < 5000) {
                macroII.schedule.step(macroII);

            }

            SummaryStatistics prices = new SummaryStatistics();
            SummaryStatistics quantities = new SummaryStatistics();
            SummaryStatistics target = new SummaryStatistics();
            for (int j = 0; j < 500; j++) {
                macroII.schedule.step(macroII);
                assert !Float.isNaN(macroII.getMarket(UndifferentiatedGoodType.GENERIC).getTodayAveragePrice());
                prices.addValue(macroII.getMarket(UndifferentiatedGoodType.GENERIC).getTodayAveragePrice());
                quantities.addValue(macroII.getMarket(UndifferentiatedGoodType.GENERIC).getTodayVolume());

                for (EconomicAgent agent : macroII.getMarket(UndifferentiatedGoodType.GENERIC).getSellers()) {
                    SalesDepartment department = ((Firm) agent)
                            .getSalesDepartment(UndifferentiatedGoodType.GENERIC);
                    target.addValue(macroII.getMarket(UndifferentiatedGoodType.GENERIC).getTodayVolume());
                }

            }

            System.out.println(prices.getMean() + " - " + quantities.getMean() + "/" + target.getMean() + "----"
                    + macroII.seed() + " | "
                    + macroII.getMarket(UndifferentiatedGoodType.GENERIC).getLastDaysAveragePrice());
            System.out.println("standard deviations: price : " + prices.getStandardDeviation() + " , quantity: "
                    + quantities.getStandardDeviation());

            assertEquals(prices.getMean(), 58, 5);
            assertTrue(prices.getStandardDeviation() < 5.5);
            assertEquals(quantities.getMean(), 44, 5);
            assertTrue(quantities.getStandardDeviation() < 5.5);
        }

    }

}

From source file:model.scenario.CompetitiveScenarioTest.java

@Test
public void rightPriceAndQuantityTestAsMarginalNoPIDStickyLearned() {

    for (int competitors = 4; competitors <= 7; competitors++) {
        System.out.println("FORCED COMPETITIVE FIRMS: " + (competitors + 1));
        float averageResultingPrice = 0;
        float averageResultingQuantity = 0;
        for (int i = 0; i < 5; i++) {

            final MacroII macroII = new MacroII(System.currentTimeMillis());
            final TripolistScenario scenario1 = new TripolistScenario(macroII);
            scenario1.setSalesDepartmentType(SalesDepartmentOneAtATime.class);
            scenario1.setAskPricingStrategy(InventoryBufferSalesControl.class);
            scenario1.setControlType(/*w w w  .ja  va 2 s .co m*/
                    MonopolistScenario.MonopolistScenarioIntegratedControlEnum.MARGINAL_PLANT_CONTROL);
            scenario1.setAdditionalCompetitors(competitors);
            scenario1.setWorkersToBeRehiredEveryDay(true);
            scenario1.setDemandIntercept(102);
            scenario1.setBuyerDelay(50);

            //assign scenario
            macroII.setScenario(scenario1);

            macroII.start();
            macroII.schedule.step(macroII);
            for (Firm firm : scenario1.getCompetitors()) {
                SalesDepartment department = firm.getSalesDepartment(UndifferentiatedGoodType.GENERIC);
                final SimpleFlowSellerPID askPricingStrategy = new SimpleFlowSellerPID(department);
                // askPricingStrategy.setTargetInventory(1000);
                askPricingStrategy.setSpeed(0); //stickiness!
                department.setAskPricingStrategy(askPricingStrategy);
                department.setPredictorStrategy(new FixedDecreaseSalesPredictor(0));
            }

            while (macroII.schedule.getTime() < 8000) {
                macroII.schedule.step(macroII);

            }
            SummaryStatistics prices = new SummaryStatistics();
            SummaryStatistics quantities = new SummaryStatistics();
            SummaryStatistics target = new SummaryStatistics();
            for (int j = 0; j < 3000; j++) {
                macroII.schedule.step(macroII);
                //                   assert !Float.isNaN(macroII.getMarket(GoodType.GENERIC).getTodayAveragePrice());
                prices.addValue(macroII.getMarket(UndifferentiatedGoodType.GENERIC).getLastPrice());
                quantities.addValue(macroII.getMarket(UndifferentiatedGoodType.GENERIC).getTodayVolume());

                for (EconomicAgent agent : macroII.getMarket(UndifferentiatedGoodType.GENERIC).getSellers()) {
                    SalesDepartment department = ((Firm) agent)
                            .getSalesDepartment(UndifferentiatedGoodType.GENERIC);
                    target.addValue(macroII.getMarket(UndifferentiatedGoodType.GENERIC).getTodayVolume());
                }

            }

            System.out.println(prices.getMean() + " - " + quantities.getMean() + "/" + target.getMean() + "----"
                    + macroII.seed() + " | "
                    + macroII.getMarket(UndifferentiatedGoodType.GENERIC).getLastDaysAveragePrice());
            System.out.println("standard deviations: price : " + prices.getStandardDeviation()
                    + " , quantity deviation: " + quantities.getStandardDeviation());
            OneSectorStatics.printSlopes(scenario1);

            if (competitors >= 4) {
                assertEquals(prices.getMean(), 58, 5);
                //                    assertTrue(prices.getStandardDeviation() < 5.5);         these are probably a lot higher with stickiness
                assertEquals(quantities.getMean(), 44, 5);
                //         assertTrue(quantities.getStandardDeviation() < 5.5);
            }
        }

    }

}

From source file:model.scenario.CompetitiveScenarioTest.java

@Test
public void rightPriceAndQuantityLearningFlows() {

    for (int competitors = 4; competitors <= 7; competitors++) {
        System.out.println("FORCED COMPETITIVE FIRMS: " + (competitors + 1));
        for (int i = 0; i < 5; i++) {

            final MacroII macroII = new MacroII(System.currentTimeMillis());
            final TripolistScenario scenario1 = new TripolistScenario(macroII);
            scenario1.setSalesDepartmentType(SalesDepartmentOneAtATime.class);
            scenario1.setAskPricingStrategy(InventoryBufferSalesControl.class);
            scenario1.setControlType(/* w w w  .  j  a v  a  2 s .c  o  m*/
                    MonopolistScenario.MonopolistScenarioIntegratedControlEnum.MARGINAL_PLANT_CONTROL);
            scenario1.setAdditionalCompetitors(competitors);
            scenario1.setWorkersToBeRehiredEveryDay(true);
            scenario1.setDemandIntercept(102);

            //assign scenario
            macroII.setScenario(scenario1);

            macroII.start();
            macroII.schedule.step(macroII);

            try {
                final HumanResources hr = scenario1.getMonopolist().getHRs().iterator().next();
                final ErrorCorrectingPurchasePredictor predictor = new ErrorCorrectingPurchasePredictor(macroII,
                        hr);
                hr.setPredictor(predictor);

                predictor.setDebugWriter(Paths.get("runs", "tmp.csv"));
            } catch (IOException e) {
                e.printStackTrace();
            }

            while (macroII.schedule.getTime() < 8000) {
                macroII.schedule.step(macroII);
                /*      System.out.println("sales: " + scenario1.getCompetitors().get(0).getSalesDepartment(GoodType.GENERIC).
                    getLatestObservation(SalesDataType.OUTFLOW) +","
                    + scenario1.getCompetitors().get(1).getSalesDepartment(GoodType.GENERIC).
                    getLatestObservation(SalesDataType.OUTFLOW));
                  */

            }
            SummaryStatistics prices = new SummaryStatistics();
            SummaryStatistics quantities = new SummaryStatistics();
            SummaryStatistics target = new SummaryStatistics();
            for (int j = 0; j < 500; j++) {
                macroII.schedule.step(macroII);
                assert !Float.isNaN(macroII.getMarket(UndifferentiatedGoodType.GENERIC).getTodayAveragePrice());
                prices.addValue(macroII.getMarket(UndifferentiatedGoodType.GENERIC).getTodayAveragePrice());
                quantities.addValue(macroII.getMarket(UndifferentiatedGoodType.GENERIC).getTodayVolume());

                for (EconomicAgent agent : macroII.getMarket(UndifferentiatedGoodType.GENERIC).getSellers()) {
                    SalesDepartment department = ((Firm) agent)
                            .getSalesDepartment(UndifferentiatedGoodType.GENERIC);
                    target.addValue(macroII.getMarket(UndifferentiatedGoodType.GENERIC).getTodayVolume());
                }

            }

            System.out.println(prices.getMean() + " - " + quantities.getMean() + "/" + target.getMean() + "----"
                    + macroII.seed() + " | "
                    + macroII.getMarket(UndifferentiatedGoodType.GENERIC).getLastDaysAveragePrice());
            System.out.println("standard deviations: price : " + prices.getStandardDeviation() + " , quantity: "
                    + quantities.getStandardDeviation());
            OneSectorStatics.printSlopes(scenario1);

            if (competitors >= 4) {
                assertEquals(prices.getMean(), 58, 5);
                assertTrue(prices.getStandardDeviation() < 5.5);
                assertEquals(quantities.getMean(), 44, 5);
                assertTrue(quantities.getStandardDeviation() < 5.5);
            }
            macroII.finish();
        }

    }

}

From source file:model.scenario.CompetitiveScenarioTest.java

@Test
public void rightPriceAndQuantityTestAsMarginalInventoryTargetAlreadyLearned() {

    List<Integer> competitors = new LinkedList<>();
    for (int competitor = 0; competitor <= 7; competitor++)
        competitors.add(competitor);/*from w ww.  j a va  2  s. c  o m*/
    competitors.add(25);

    for (Integer competitor : competitors) {
        System.out.println("FORCED COMPETITIVE FIRMS: " + (competitor + 1));
        float averageResultingPrice = 0;
        float averageResultingQuantity = 0;
        for (int i = 0; i < 5; i++) {

            final MacroII macroII = new MacroII(System.currentTimeMillis()); //1387582416533
            final TripolistScenario scenario1 = new TripolistScenario(macroII);

            scenario1.setSalesDepartmentType(SalesDepartmentOneAtATime.class);
            scenario1.setAskPricingStrategy(SalesControlWithFixedInventoryAndPID.class);
            scenario1.setControlType(
                    MonopolistScenario.MonopolistScenarioIntegratedControlEnum.MARGINAL_PLANT_CONTROL);
            scenario1.setAdditionalCompetitors(competitor);
            scenario1.setWorkersToBeRehiredEveryDay(true);
            scenario1.setDemandIntercept(102);

            scenario1.setSalesPricePreditorStrategy(FixedDecreaseSalesPredictor.class);

            //assign scenario
            macroII.setScenario(scenario1);

            macroII.start();

            macroII.schedule.step(macroII);
            for (Firm firm : scenario1.getCompetitors()) {
                for (HumanResources hr : firm.getHRs())
                    hr.setPredictor(new FixedIncreasePurchasesPredictor(0));
                for (SalesDepartment dept : firm.getSalesDepartments().values())
                    dept.setPredictorStrategy(new FixedDecreaseSalesPredictor(0));
            }

            while (macroII.schedule.getTime() < 10000) {
                macroII.schedule.step(macroII);

            }

            SummaryStatistics prices = new SummaryStatistics();
            SummaryStatistics quantities = new SummaryStatistics();
            SummaryStatistics target = new SummaryStatistics();
            for (int j = 0; j < 500; j++) {
                macroII.schedule.step(macroII);
                //                    assert !Float.isNaN(macroII.getMarket(UndifferentiatedGoodType.GENERIC).getTodayAveragePrice());
                prices.addValue(macroII.getMarket(UndifferentiatedGoodType.GENERIC).getTodayAveragePrice());
                quantities.addValue(macroII.getMarket(UndifferentiatedGoodType.GENERIC).getTodayVolume());

                for (EconomicAgent agent : macroII.getMarket(UndifferentiatedGoodType.GENERIC).getSellers()) {
                    SalesDepartment department = ((Firm) agent)
                            .getSalesDepartment(UndifferentiatedGoodType.GENERIC);
                    target.addValue(macroII.getMarket(UndifferentiatedGoodType.GENERIC).getTodayVolume());
                }

            }

            System.out.println(prices.getMean() + " - " + quantities.getMean() + "/" + target.getMean() + "----"
                    + macroII.seed() + " | "
                    + macroII.getMarket(UndifferentiatedGoodType.GENERIC).getLastDaysAveragePrice());
            System.out.println("standard deviations: price : " + prices.getStandardDeviation() + " , quantity: "
                    + quantities.getStandardDeviation());

            averageResultingPrice += prices.getMean();
            averageResultingQuantity += quantities.getMean();

            assertEquals(prices.getMean(), 58, 5);
            //                assertTrue(String.valueOf(prices.getStandardDeviation()),prices.getStandardDeviation() < 5.5);
            assertEquals(quantities.getMean(), 44, 5);
            //                assertTrue(String.valueOf(prices.getStandardDeviation()),quantities.getStandardDeviation() < 5.5);

        }

        System.out.println(averageResultingPrice / 5f + " --- " + averageResultingQuantity / 5f);
    }

}

From source file:gdsc.smlm.ij.plugins.TraceMolecules.java

private double getBlinkingRate(Trace[] traces) {
    SummaryStatistics stats = new SummaryStatistics();
    for (Trace trace : traces)
        stats.addValue(trace.getNBlinks());
    double blinkingRate = stats.getMean();
    return blinkingRate;
}

From source file:model.experiments.stickyprices.StickyPricesCSVPrinter.java

private static double[] competitiveSweepRun(int seed, int demandIntercept, int demandSlope, int wageSlope,
        int dailyWageIntercept, float proportionalGain, float integralGain, int maximizationTimePeriod,
        double correctCompetitivePrice, String filename, int additionalCompetitors) {

    //create the run
    MacroII macroII = new MacroII(seed);
    TripolistScenario scenario = new TripolistScenario(macroII);
    macroII.setScenario(scenario);//  w  ww  .  j av a 2s .  com
    scenario.setAdditionalCompetitors(additionalCompetitors);
    //set the demand
    scenario.setDemandIntercept(demandIntercept);
    scenario.setDemandSlope(demandSlope);
    scenario.setDailyWageSlope(wageSlope);
    scenario.setDailyWageIntercept(dailyWageIntercept);
    scenario.setAskPricingStrategy(SimpleFlowSellerPID.class);
    scenario.setControlType(MonopolistScenario.MonopolistScenarioIntegratedControlEnum.MARGINAL_PLANT_CONTROL);

    //start it and have one step
    macroII.start();
    macroII.schedule.step(macroII);

    //now set the right parameters
    for (final Firm firm : scenario.getCompetitors()) {
        final SalesDepartment salesDepartment = firm.getSalesDepartment(UndifferentiatedGoodType.GENERIC);
        final SimpleFlowSellerPID strategy = new SimpleFlowSellerPID(salesDepartment,
                proportionalGain + (float) macroII.random.nextGaussian() / 100f,
                integralGain + (float) macroII.random.nextGaussian() / 100f, 0f, 0, salesDepartment.getMarket(),
                salesDepartment.getRandom().nextInt(100), salesDepartment.getFirm().getModel()); //added a bit of noise
        salesDepartment.setAskPricingStrategy(strategy);

        //all impacts are 0 because it's perfect competitive
        salesDepartment.setPredictorStrategy(new FixedDecreaseSalesPredictor(0));
        firm.getHRs().iterator().next().setPredictor(new FixedIncreasePurchasesPredictor(0));
    }
    for (final PlantControl control : scenario.getMaximizers()) {
        ((MarginalPlantControl) control).getMaximizer().setHowManyDaysBeforeEachCheck(maximizationTimePeriod);
    }

    SummaryStatistics distance = new SummaryStatistics();
    SummaryStatistics finalPrice = new SummaryStatistics();
    SummaryStatistics finalDistance = new SummaryStatistics();

    //run the model
    for (int i = 0; i < 4000; i++) {
        macroII.schedule.step(macroII);
        MarginalMaximizerPIDTuning.printProgressBar(5000, i, 100);
        final double closingPrice = macroII.getMarket(UndifferentiatedGoodType.GENERIC).getData()
                .getLatestObservation(MarketDataType.AVERAGE_CLOSING_PRICE);
        double distanceFromCorrect;
        if (Double.isNaN(closingPrice) || closingPrice < 0) {
            distanceFromCorrect = correctCompetitivePrice;
        } else {
            distanceFromCorrect = Math.pow(correctCompetitivePrice - closingPrice, 2);
        }
        distance.addValue(distanceFromCorrect);
    }

    //run the model
    for (int i = 0; i < 1000; i++) {
        macroII.schedule.step(macroII);
        MarginalMaximizerPIDTuning.printProgressBar(1000, i, 100);
        double closingPrice = macroII.getMarket(UndifferentiatedGoodType.GENERIC).getData()
                .getLatestObservation(MarketDataType.AVERAGE_CLOSING_PRICE);
        finalPrice.addValue(closingPrice);

        double distanceFromCorrect;
        if (Double.isNaN(closingPrice) || closingPrice < 0) {
            closingPrice = 0;
        }

        distanceFromCorrect = Math.pow(correctCompetitivePrice - closingPrice, 2);

        distance.addValue(distanceFromCorrect);
        finalDistance.addValue(distanceFromCorrect);
    }

    if (filename != null)
        macroII.getMarket(UndifferentiatedGoodType.GENERIC).getData()
                .writeToCSVFile(Paths.get("runs", "rawdata", filename).toFile());

    return new double[] { distance.getMean(), finalDistance.getMean(), finalPrice.getVariance() };

}