def get_report_stat(self, doc: Printer):
     doc.add_heading(
         "Эталон {}. Фактор {}".format(self.std.name, self.factor_name), 0)
     doc.add_heading(
         "Результат статистического анализа распределения расстояний фактор-образцов",
         1)
     report_stats(self.stat, doc)
 def get_report_ntest(self, doc: Printer):
     doc.add_heading(
         "Эталон {}. Фактор {}".format(self.std.name, self.factor_name), 0)
     doc.add_heading(
         "Результаты тестирования нормальности распределения расстояний фактор-образцов",
         1)
     report_ntest(self.ntest, doc)
예제 #3
0
 def dialog_sample_std(self, factor):
     fname = dialog_save_report("{} {}".format(
         self.sample.display_file(factor), self.std.display_file()))
     if not fname:
         return
     if factor == FACTORS_ALL:
         Printer("doc", self.report.get_report).print(fname)
     else:
         Printer("doc", self.reports[factor].get_report).print(fname)
 def dialog_std_sample(self, factor):
     fname = dialog_save_report("Эталон {} {}".format(
         self.std.name, self.sample.display_file(factor)))
     if not fname:
         return
     if factor == FACTORS_ALL:
         Printer('doc', self.report.get_report).print(fname)
     else:
         Printer('doc', self.reports[factor].get_report).print(fname)
예제 #5
0
 def save_report(self):
     factor = QDialogStds.settings(self, get_stds=False)
     if factor is None:
         return
     fname = dialog_save_report("{} {}".format(
         Sample.display_file_group(factor), self.std.display_file()))
     if not fname:
         return
     if factor == FACTORS_ALL:
         Printer("doc", self.report.get_report).print(fname)
     else:
         Printer("doc", self.reports[factor].get_report).print(fname)
예제 #6
0
def report_ntest(report, doc: Printer):
    res_ok = "пройден"
    res_nok = "не пройден"

    shapiro = report["shapiro"]
    doc.add_paragraph("Тест нормальности Шапиро-Вилка: {}".format(res_ok if shapiro["res"] else res_nok))

    agostino = report["agostino"]
    doc.add_paragraph("Тест нормальности Д'Агостино и Пирсона: из {0} прогонов доля {1}/{0} = {2:.2f} отклоняет "
                      "гипотезу о нормальности на уровне отклонения {3}"
                      .format(agostino["num_tests"], agostino["num_rejects"], agostino["ratio"], agostino["alpha"]))

    ks = report["ks"]
    doc.add_paragraph("Тест нормальности Колмогорова-Смирнова: из {0} прогонов доля {1}/{0} = {2:.2f} отклоняет "
                      "гипотезу о нормальности на уровне отклонения {3}"
                      .format(ks["num_tests"], ks["num_rejects"], ks["ratio"], ks["alpha"]))

    if report['qq'] and doc.destination == "doc":
        img = plot_image(test_normal_plot, report)
        doc.add_paragraph("QQ-тест:")
        doc.add_picture(img, width=Cm(12.5))
예제 #7
0
 def save_report_group(self):
     factor, stds = QDialogStds.settings(self,
                                         get_stds=True,
                                         std_main=self.std.name)
     if factor is None:
         return
     fname = dialog_save_report("{} Группа эталонов".format(
         Sample.display_file_group(factor)))
     if not fname:
         return
     stds = [Standard.standards[std] for std in stds]
     if factor == FACTORS_ALL:
         report = MulSamplesMulStandards(self.samples, stds)
     else:
         report = MulFactorSamplesMulStandards(self.samples, factor, stds)
     Printer("doc", report.get_report).print(fname)
 def save_report_group(self):
     factor, stds = QDialogStds.settings(self,
                                         get_stds=True,
                                         std_main=self.std.name)
     if factor is None:
         return
     if not len(stds):
         return
     if len(stds) == 1:
         self.dialog_std_sample(factor)
     else:
         fname = dialog_save_report("Группа эталонов {}".format(
             self.sample.display_file(factor)))
         stds = [Standard.standards[std] for std in stds]
         if not fname:
             return
         if factor == FACTORS_ALL:
             report = MulStandardsSample(stds, self.sample)
         else:
             report = MulStandardsFactorSample(stds, self.sample, factor)
         Printer('doc', report.get_report).print(fname)
 def get_report_stat_apl(self, doc: Printer):
     doc.add_heading("Фактор {}. Эталон {}".format(self.factor_name, self.std.name), 0)
     doc.add_heading(
         "Результат статистического анализа распределения расстояний от максимумов амплитуд значений эталона", 1)
     report_stats(self.stat_apl, doc)
    def get_report(self, doc: Printer):
        doc.add_heading(
            "Группа эталонов. {}".format(Sample.display_file_group(
                self.factor)), 0)

        doc.add_heading(
            "Распределение средних значений фактор-образцов {}".format(
                self.factor_name), 1)
        for std, ml in zip(self.stds, self.max_list):
            doc.add_heading("Для эталона {}".format(std.name), 2)
            doc.add_paragraph(str_arr(ml))

        doc.add_heading(
            "Результаты визуального анализа распределений средних значений фактор-образцов {}"
            .format(self.factor_name), 1)
        for std, va in zip(self.stds, self.va):
            doc.add_heading("Для эталона {}".format(std.name), 2)
            doc.add_picture(va)

        doc.add_heading(
            "Результаты статистического анализа распределений средних значений фактор-образцов {}"
            .format(self.factor_name), 1)
        for std, stat in zip(self.stds, self.stat):
            doc.add_heading("Для эталона {}".format(std.name), 2)
            report_stats(stat, doc)

        doc.add_heading(
            "Результаты тестирования нормальности распределений средних значений фактор-образцов {}"
            .format(self.factor_name), 1)
        for std, ntest in zip(self.stds, self.ntest):
            doc.add_heading("Для эталона {}".format(std.name), 2)
            report_ntest(ntest, doc)
예제 #11
0
def report_std(std: Standard, doc: Printer):
    doc.add_heading("Эталон {}".format(std.name), 1)
    doc.add_paragraph("Количество значений равно = {}".format(len(std.data)))
    doc.add_paragraph(str_arr(std.data))
    doc.add_paragraph("Количество максимумов равно = {}".format(len(std.seq_max)))
    doc.add_paragraph(str_arr(std.seq_max))
예제 #12
0
def report_sample(sample: Sample, doc: Printer):
    doc.add_heading("Образец {}".format(sample.name), 1)
    for factor in range(4):
        report_sample_factor(sample, factor, doc)
예제 #13
0
def report_sample_factor(sample: Sample, factor: int, doc: Printer):
    doc.add_heading("Фактор-образец {}".format(FACTORS[factor].lower()), 2)
    doc.add_paragraph("Количество значений равно = {}".format(len(sample.data[factor])))
    doc.add_paragraph(str_arr(sample.data[factor]))
    doc.add_paragraph("Количество максимумов равно = {}".format(len(sample.seq_max[factor])))
    doc.add_paragraph(str_arr(sample.seq_max[factor]))
예제 #14
0
def report_stats(stats, doc: Printer):
    doc.add_paragraph("\tВыборочное среднее = {:.2f}".format(stats[0]))
    doc.add_paragraph("\tСтандартное отклонение = {:.2f}".format(stats[1]))
    doc.add_paragraph("\tДоверительный интервал = ({:.2f}, {:.2f})\n".format(*stats[2]))
    def get_report(self, doc: Printer):
        doc.add_heading("Эталон {}. Группа образцов".format(self.std.name), 0)

        doc.add_heading(
            "Распределение средних значений фактор-образцов {}".format(
                self.factor_name), 2)
        doc.add_paragraph(str_arr(self.max_list))

        doc.add_heading(
            "Результаты визуального анализа распределений средних значений фактор-образцов {}"
            .format(self.factor_name), 2)
        doc.add_picture(self.va)

        doc.add_heading(
            "Результаты статистического анализа распределений средних значений фактор-образцов {}"
            .format(self.factor_name), 2)
        report_stats(self.stat, doc)

        doc.add_heading(
            "Результаты тестирования нормальности распределений средних значений фактор-образцов {}"
            .format(self.factor_name), 2)
        report_ntest(self.ntest, doc)
    def get_report(self, doc: Printer):
        doc.add_heading("Группа эталонов. {}".format(self.sample_name), 0)

        for factor, factor_name in enumerate(FACTORS_L):
            doc.add_heading("Для фактора {}".format(factor_name), 1)

            doc.add_heading(
                "Последовательности расстояний от фактор-образца {}".format(
                    factor_name), 1)
            for idx, std in enumerate(self.stds):
                doc.add_heading(
                    "Последовательность расстояний от максимумов фактор-образца {} до ближайшего максимума эталона {}"
                    .format(factor_name, std.name), 2)
                # doc.add_paragraph("Количество значений равно = {}".format(len(self.distance[idx][factor])))
                doc.add_paragraph(str_arr(self.distance[idx][factor]))

            doc.add_heading(
                "Результаты визуального анализа распределения расстояний от фактор-образца {}"
                .format(factor_name), 1)
            for idx, std in enumerate(self.stds):
                doc.add_heading(
                    "Результаты визуального анализа распределения расстояний до эталона {}"
                    .format(std.name), 2)
                doc.add_picture(self.va[idx][factor])

            doc.add_heading(
                "Результаты статистического анализа распределения расстояний от фактор-образца {}"
                .format(factor_name), 1)
            for idx, std in enumerate(self.stds):
                doc.add_heading(
                    "Результаты статистического анализа распределения расстояний до эталона {}"
                    .format(std.name), 2)
                report_stats(self.stat[idx][factor], doc)

            doc.add_heading(
                "Результаты тестирования нормальности распределения расстояний от фактор-образца {}"
                .format(factor_name), 1)
            for idx, std in enumerate(self.stds):
                doc.add_heading(
                    "Результаты тестирования нормальности распределения расстояний до эталона {}"
                    .format(std.name), 2)
                report_ntest(self.ntest[idx][factor], doc)
    def get_report(self, doc: Printer):
        doc.add_heading("Группа эталонов. Группа образцов", 0)

        for factor, factor_name in enumerate(FACTORS_L):
            doc.add_heading("Для фактора {}".format(factor_name), 1)

            doc.add_heading(
                "Распределения средних значений фактор-образцов {}".format(
                    factor_name), 1)
            for idx, std in enumerate(self.stds):
                doc.add_heading("Для эталона {}".format(std.name), 2)
                doc.add_paragraph("Количество значений равно = {}".format(
                    len(self.max_list[idx][factor])))
                doc.add_paragraph(str_arr(self.max_list[idx][factor]))

            doc.add_heading(
                "Результаты визуального анализа распределений средних значений фактор-образцов {}"
                .format(factor_name), 1)
            for idx, std in enumerate(self.stds):
                doc.add_heading("Для эталона {}".format(std.name), 2)
                doc.add_picture(self.va[idx][factor])

            doc.add_heading(
                "Результаты статистического анализа распределений средних значений фактор-образцов {}"
                .format(factor_name), 1)
            for idx, std in enumerate(self.stds):
                doc.add_heading("Для эталона {}".format(std.name), 2)
                report_stats(self.stat[idx][factor], doc)

            doc.add_heading(
                "Результаты тестирования нормальности распределений средних значений фактор-образцов {}"
                .format(factor_name), 1)
            for idx, std in enumerate(self.stds):
                doc.add_heading("Для эталона {}".format(std.name), 2)
                report_ntest(self.ntest[idx][factor], doc)
    def get_report(self, doc: Printer):
        doc.add_heading("{} {}. Эталон {}".format(self.sample_name, self.factor_name, self.std.name), 0)

        # Значения
        doc.add_heading("Последовательность расстояний от максимумов значений эталона до максимумов фактор-образца", 1)
        doc.add_paragraph(str_arr(self.distance))

        doc.add_heading("Результат визуального анализа распределения расстояний от максимумов значений эталона", 1)
        doc.add_picture(self.va)

        doc.add_heading("Результат статистического анализа распределения расстояний от максимумов значений эталона", 1)
        report_stats(self.stat, doc)

        doc.add_heading("Результаты тестирования нормальности распределения расстояний от максимумов значений эталона",
                        1)
        report_ntest(self.ntest, doc)

        # Амплитуды
        doc.add_heading(
            "Последовательность расстояний от максимумов амплитуд значений эталона до максимумов фактор-образца", 1)
        doc.add_paragraph(str_arr(self.distance_apl))

        doc.add_heading(
            "Результат визуального анализа распределения расстояний от максимумов амплитуд значений эталона", 1)
        doc.add_picture(self.va_apl)

        doc.add_heading(
            "Результат статистического анализа распределения расстояний от максимумов амплитуд значений эталона", 1)
        report_stats(self.stat_apl, doc)

        doc.add_heading(
            "Результаты тестирования нормальности распределения расстояний от максимумов амплитуд значений эталона", 1)
        report_ntest(self.ntest_apl, doc)
    def get_report(self, doc: Printer):
        doc.add_heading("{}. Эталон {}".format(self.sample_name, self.std.name), 0)

        # Значения
        doc.add_heading("Ряды расстояний и распределения расстояний от максимумов значений эталона до ближайшего "
                        "максимума образца", 1)
        for factor, xr in zip(FACTORS_L, self.distance):
            doc.add_paragraph(
                "Ряд расстояний от максимумов значений эталона до ближайшего максимума фактор-образца {}:".format(factor))
            doc.add_paragraph(str_arr(xr))

        doc.add_heading("Результат визуального анализа распределения расстояний от максимумов значений эталона", 1)
        for factor, va in zip(FACTORS_L, self.va):
            doc.add_heading("Результаты визуального анализа до ближайшего максимума фактор-образца {}".format(factor), 2)
            doc.add_picture(va)

        doc.add_heading("Результаты статистического анализа распределения расстояний от максимумов значений эталона", 1)
        for factor, stat in zip(FACTORS_L, self.stat):
            doc.add_heading(
                "Результаты статистического анализа до ближайшего максимума фактор-образца {}".format(factor), 2)
            report_stats(stat, doc)

        doc.add_heading("Результаты тестирования нормальности распределения расстояний от максимумов значений эталона", 1)
        for factor, ntest in zip(FACTORS_L, self.ntest):
            doc.add_heading("Результаты тестирования нормальности до ближайшего максимума фактор-образца {}".format(factor), 2)
            report_ntest(ntest, doc)

        # Амплитуды
        doc.add_heading("Ряды расстояний и распределения расстояний от максимумов амплитуд значений эталона до "
            "ближайшего максимума образца", 1)
        for factor, xr in zip(FACTORS_L, self.distance_apl):
            doc.add_paragraph(
                "Ряд расстояний от максимумов амплитуд значений эталона до ближайшего максимума фактор-образца {}:".format(factor))
            doc.add_paragraph(str_arr(xr))

        doc.add_heading("Результат визуального анализа распределения расстояний от максимумов амплитуд значений эталона", 1)
        for factor, va_apl in zip(FACTORS_L, self.va_apl):
            doc.add_heading("Результаты визуального анализа до ближайшего максимума фактор-образца {}".format(factor),
                            2)
            doc.add_picture(va_apl)

        doc.add_heading("Результаты статистического анализа распределения расстояний от максимумов амплитуд значений эталона", 1)
        for factor, stat_apl in zip(FACTORS_L, self.stat_apl):
            doc.add_heading("Результаты статистического анализа до ближайшего максимума фактор-образца {}".format(factor), 2)
            report_stats(stat_apl, doc)

            doc.add_heading(
                "Результаты тестирования нормальности распределения расстояний от максимумов амплитуд значений эталона", 1)
        for factor, ntest_apl in zip(FACTORS_L, self.ntest_apl):
            doc.add_heading("Результаты тестирования нормальности до ближайшего максимума фактор-образца {}".format(factor), 2)
            report_ntest(ntest_apl, doc)
 def get_report_ntest_apl(self, doc: Printer):
     doc.add_heading("Фактор {}. Эталон {}".format(self.factor_name, self.std.name), 0)
     doc.add_heading(
         "Результаты тестирования нормальности распределения расстояний от максимумов амплитуд значений эталона", 1)
     report_ntest(self.ntest_apl, doc)
    def get_report(self, doc: Printer):
        doc.add_heading(
            "Группа эталонов. {} {}".format(self.sample_name,
                                            self.factor_name), 0)

        doc.add_heading(
            "Последовательности расстояний от фактор-образца {}".format(
                self.factor_name), 1)
        for std, xr in zip(self.stds, self.distance):
            doc.add_heading(
                "Последовательность расстояний до эталона {}".format(std.name),
                2)
            doc.add_paragraph("Количество значений равно = {}".format(len(xr)))
            doc.add_paragraph(str_arr(xr))

        doc.add_heading(
            "Результаты визуального анализа распределения расстояний от фактор-образца {}"
            .format(self.factor_name), 1)
        for std, va in zip(self.stds, self.va):
            doc.add_heading(
                "Результаты визуального анализа распределения расстояний до эталона {}"
                .format(std.name), 2)
            doc.add_picture(va)

        doc.add_heading(
            "Результаты статистического анализа распределения расстояний от фактор-образца {}"
            .format(self.factor_name), 1)
        for std, stat in zip(self.stds, self.stat):
            doc.add_heading(
                "Результаты статистического анализа распределения расстояний до эталона {}"
                .format(std.name), 2)
            report_stats(stat, doc)

        doc.add_heading(
            "Результаты тестирования нормальности распределения расстояний от фактор-образца {}"
            .format(self.factor_name), 1)
        for std, ntest in zip(self.stds, self.ntest):
            doc.add_heading(
                "Результаты тестирования нормальности распределения расстояний до эталона {}"
                .format(std.name), 2)
            report_ntest(ntest, doc)