GitHub - GendByteMaster/Digitscape

Digitscape Analyzer

Digitscape Analyzer - это инструмент для анализа числовых данных из Excel-файлов, специализирующийся на поиске отклонений от математической модели и анализе равномерности распределения.

Возможности

  • Загрузка данных из Excel-файлов (.xlsx, .xls)
  • Анализ распределения данных на нормальность и равномерность
  • Проверка случайности последовательности чисел
  • Визуализация распределения данных
  • Генерация выводов о потенциальных аномалиях в данных

Ключевые функции анализа

  1. Проверка на нормальность распределения: Использует тест D'Agostino-Pearson для определения, соответствует ли распределение данных нормальному закону.

  2. Анализ равномерности распределения: Применяет тест Колмогорова-Смирнова для проверки гипотезы о равномерном распределении данных.

  3. Тест на случайность последовательности: Использует Run test для определения, является ли последовательность чисел случайной.

  4. Визуализация распределения: Создает гистограммы с наложенной кривой плотности вероятности для наглядного представления распределения данных.

Числа и закономерности в DigitscapeAnalyzer

  1. Статистические пороги:

    • p_value < 0.05: Используется для определения статистической значимости в нескольких тестах
      if p_value_normal < 0.05:
          conclusions.append("  Распределение значимо отличается от нормального (p < 0.05)")
      else:
          conclusions.append("  Распределение не отличается значимо от нормального (p >= 0.05)")
  2. Анализ выбросов:

    • Используется метод межквартильного размаха (IQR)
    • Нижняя граница: Q1 - 1.5 * IQR
    • Верхняя граница: Q3 + 1.5 * IQR
      Q1 = np.percentile(data, 25)
      Q3 = np.percentile(data, 75)
      IQR = Q3 - Q1
      lower_bound = Q1 - 1.5 * IQR
      upper_bound = Q3 + 1.5 * IQR
  3. Анализ периодичности:

    • Используется автокорреляция с лагом до 50 или половины длины данных
      autocorr = [pd.Series(data).autocorr(lag=i) for i in range(1, min(len(data) // 2, 50))]
  4. Визуализация:

    • Используется 20 бинов для гистограммы
      sns.histplot(self.analyzer.data[column_name], bins=20, kde=True, ax=ax)
  5. Многопоточность:

    • Используется ThreadPoolExecutor для асинхронных операций
      self.executor = ThreadPoolExecutor()
  6. Обработка данных:

    • Используется pandas для чтения Excel-файлов
    • numpy для статистических вычислений
    • scipy для статистических тестов (normaltest, kstest, mannwhitneyu)
    • seaborn для визуализации

Закономерности:

  1. Использование асинхронного программирования (asyncio) для улучшения производительности при работе с файлами и анализе данных.
  2. Применение статистических тестов для анализа распределения, трендов и периодичности.
  3. Комбинирование различных библиотек (pandas, numpy, scipy, matplotlib) для комплексного анализа данных.
  4. Использование объектно-ориентированного подхода для структурирования кода (классы DigitscapeAnalyzer и DigitscapeGUI).
  5. Применение обработки исключений для повышения устойчивости программы к ошибкам.

Требования

  • Python 3.7+
  • pandas
  • numpy
  • matplotlib
  • seaborn
  • scipy
  • customtkinter

Установка

  1. Клонируйте репозиторий:

    git clone https://github.com/GendByteMaster/digitscape.git
    
  2. Перейдите в директорию проекта:

  3. Установите необходимые зависимости:

    pip install -r requirements.txt
    

Использование

Запустите программу, выполнив следующую команду в терминале:

  1. Выберите Excel-файл с данными для анализа.
  2. Укажите столбцы, которые необходимо проанализировать.
  3. Нажмите кнопку "Анализировать".
  4. Просмотрите результаты анализа и сгенерированные графики.

Интерпретация результатов

  • Программа выдает p-значения для каждого проведенного теста. P-значение менее 0.05 указывает на статистически значимое отклонение от ожидаемой модели.
  • Визуальные графики помогают интуитивно оценить распределение данных.
  • Выводы программы указывают на потенциальные аномалии или интересные паттерны в данных, которые могут требовать дальнейшего исследования.

Вклад в проект

Мы приветствуем вклад в развитие проекта! Если у вас есть идеи по улучшению Digitscape Analyzer, пожалуйста, создайте issue или отправьте pull request.

Лицензия

Этот проект распространяется под лицензией MIT. Подробности смотрите в файле LICENSE.