Контрольные диаграммы в Python

В настоящее время я регулярно использую R для управления статистическими процессами. С этим я могу создать контрольные диаграммы, такие как EWMA, Shewhart, CUSUM и GAM/Loess сглаживание.

Кто-нибудь знает, как лучше использовать эти типы диаграмм с помощью Python? Сначала я посмотрел на scikits.timeseries, но он был консервирован, чтобы внести вклад в pandas.

Я посмотрел на pandas, и хотя у него действительно есть функциональность EWMA, мне нужно немного больше.

Ответ 1

Просто нашел этот пакет, который не обновлялся в то время, но работает до сих пор в Python 2.7.3 (в 64-битной Windows 7, используя довольно современные пакеты поддержки):

In [1]: import spc
In [2]: import matplotlib.pyplot as plt
In [3]: x = [25,19,14,17,25,39,49,6,11,19,13,26,24,32,14,19]
In [4]: cc = spc.Spc(x, spc.CHART_X_MR_X)
In [5]: cc.get_chart()
In [6]: plt.show()

enter image description here

Похоже, что 6-я точка находится за пределами верхнего предела управления...

In [7]: cc.get_violating_points()
Out[7]: {'1 beyond 3*sigma': [6]}

Пакет в основном представляет собой единственный файл init.py, который содержит всего несколько сотен исходных строк, и пытается реализовать более десятка диаграмм, включая CUSUM.

Наконец, есть проект github, заслуживающий внимания: https://github.com/bwghughes/controlchart

Ответ 2

Просто наткнулся на это и провел быстрое повторное исследование в 2019 году, многие обращения к Google, среди которых я нахожу следующие - по крайней мере, на первый взгляд - привлекательными:

С уважением

Ответ 3

Поскольку этот вопрос старый, я думаю, что обновленный ответ здесь действителен - scipy предлагает функциональность cusum, найденную здесь, и Pandas, найденную здесь. Вот быстрый скрипт для построения кумулятивной суммы с использованием панд:

import pandas as pd
some_dataframe[some_column].cumsum().plot()