/** * @param stream * @throws IOException */ public void EvolutionSeasonalityTest(HtmlStream stream) throws IOException { stream.write(HtmlTag.HEADER1, h1, "Evolutive seasonality test").newLine(); SeasonalityTest stest = m_stests.getEvolutiveSeasonality(); stream.open(new HtmlTable(0, 400)); stream.open(HtmlTag.TABLEROW); stream.write(new HtmlTableCell("", 100)); stream.write(new HtmlTableCell("Sum of squares", 100)); stream.write(new HtmlTableCell("Degrees of freedom", 100)); stream.write(new HtmlTableCell("Mean square", 100)); stream.close(HtmlTag.TABLEROW); stream.open(HtmlTag.TABLEROW); stream.write(new HtmlTableCell("Between years", 100, HtmlStyle.Italic)); stream.write(new HtmlTableCell(Double.toString(stest.getSSM()), 100)); stream.write(new HtmlTableCell(Double.toString(stest.getDFInterPeriod()), 100)); stream.write( new HtmlTableCell(Double.toString(stest.getSSM() / stest.getDFInterPeriod()), 100)); stream.close(HtmlTag.TABLEROW); stream.open(HtmlTag.TABLEROW); stream.write(new HtmlTableCell("Error", 100, HtmlStyle.Italic)); stream.write(new HtmlTableCell(Double.toString(stest.getSSR()), 100)); stream.write(new HtmlTableCell(Double.toString(stest.getDFResidual()), 100)); stream.write(new HtmlTableCell(Double.toString(stest.getSSR() / stest.getDFResidual()), 100)); stream.close(HtmlTag.TABLE).newLines(2); stream.write("Value: " + stest.getValue()).newLine(); stream.write("Distribution: " + stest.getDistribution().getDescription()).newLine(); stream .write("PValue: " + df4.format(stest.getPValue()), RPValue(stest.getPValue(), 0.01, 0.05)) .newLine(); if (stest.getPValue() > 0.2) { stream.write("No evidence of moving seasonality at the 20 per cent level").newLines(2); } else if (stest.getPValue() < 0.05) { stream .write("Moving seasonality present at the 5 per cent level", HtmlStyle.Bold) .newLines(2); } }
/** * @param stream * @throws IOException */ public void StableSeasonalityTest(HtmlStream stream) throws IOException { stream .write(HtmlTag.HEADER1, h1, "Test for the presence of seasonality assuming stability") .newLine(); SeasonalityTest stest = m_stests.getStableSeasonality(); stream.open(new HtmlTable(0, 400)); stream.open(HtmlTag.TABLEROW); stream.write(new HtmlTableCell("", 100)); stream.write(new HtmlTableCell("Sum of squares", 100)); stream.write(new HtmlTableCell("Degrees of freedom", 100)); stream.write(new HtmlTableCell("Mean square", 100)); stream.close(HtmlTag.TABLEROW); stream.open(HtmlTag.TABLEROW); stream.write(new HtmlTableCell("Between months", 100, HtmlStyle.Italic)); stream.write(new HtmlTableCell(Double.toString(stest.getSSM()), 100)); stream.write(new HtmlTableCell(Double.toString(stest.getDFInterPeriod()), 100)); stream.write( new HtmlTableCell(Double.toString(stest.getSSM() / stest.getDFInterPeriod()), 100)); stream.close(HtmlTag.TABLEROW); stream.open(HtmlTag.TABLEROW); stream.write(new HtmlTableCell("Residual", 100, HtmlStyle.Italic)); stream.write(new HtmlTableCell(Double.toString(stest.getSSR()), 100)); stream.write(new HtmlTableCell(Double.toString(stest.getDFResidual()), 100)); stream.write(new HtmlTableCell(Double.toString(stest.getSSR() / stest.getDFResidual()), 100)); stream.close(HtmlTag.TABLEROW); stream.open(HtmlTag.TABLEROW); stream.write(new HtmlTableCell("Total", 100, HtmlStyle.Italic)); stream.write(new HtmlTableCell(Double.toString(stest.getSSQ()), 100)); stream.write(new HtmlTableCell(Double.toString(stest.getDFTot()), 100)); stream.write(new HtmlTableCell(Double.toString(stest.getSSQ() / stest.getDFTot()), 100)); stream.close(HtmlTag.TABLEROW); stream.close(HtmlTag.TABLE).newLine(); stream.write("Value: " + stest.getValue()).newLine(); stream.write("Distribution: " + stest.getDistribution().getDescription()).newLine(); stream.write("PValue: " + df4.format(stest.getPValue()), PValue(stest.getPValue())).newLine(); if (stest.getPValue() < 0.01) { stream.write("Seasonality present at the 1 per cent level").newLines(2); } else if (stest.getPValue() > 0.05) { stream .write("No evidence of seasonality at the 5 per cent level", HtmlStyle.Bold) .newLines(2); } }