Оценка способности процесса в R

Способность – это дословный перевод английского термина “Capability”, довольно точно отражающий его значение. Однако, читателю, не знакомому с основами шести сигм, термин может показаться весьма непонятным ввиду особенностей построения речи в русском языке. Сразу может возникнуть вопрос: чья это такая способность и к чему? Capability – это способность процесса удовлетворять определенным рамкам, например, спецификации, пределам допуска. Способность является базовой оценкой, своего рода критерием валидации производственных процессов и широко применяется практиками шести сигм для описания состояния того или иного процесса.

Для числовой оценки способности процесса чаще всего используют показатели Cp и Cpk – индекс краткосрочной способности процесса и скорректированный индекс краткосрочной способности процесса. В настоящей статье представлены способы расчета индексов способности, а также интерпретации полученных результатов.

Предположим, необходимо рассчитать способность электрической отвертки закручивать шурупы в диапазоне крутящих моментов 90 – 110 Н/м. Для этого проведем 30 измерений крутящего момента отвертки подряд – смоделируем результаты наблюдений, подчиняющихся нормальному закону распределения, с помощью команды rnorm(), в аргументе которой укажем: необходимое количество наблюдений (30), среднее арифметическое значение (100) и среднеквадратическое отклонение (3).

> rnorm(30, 100, 3)

Присвоим этот набор значений переменной x:

> x <- rnorm(30, 100, 3)

и сохраним в файле формата *.csv:

> write.csv(x, file="capability.csv")

Таким образом, мы сгенерировали набор из 30 значений, подчиняющихся нормальному закону распределения, и сохранили в файл capability.csv. Созданный файл содержит два столбца: порядковый номер наблюдения и значение, соответственно.

Просмотреть результаты можно введя команду:

> read.csv(file="capability.csv", header=TRUE, sep=",", dec=".")

а присвоить значения какой-либо переменной, с помощью команды:

> x<-read.csv(file="capability.csv", header=TRUE, sep=",", dec=".")

Расчет индексов способности по формулам

Индекс краткосрочной способности процесса Cp рассчитывают по следующей формуле:

Исходя из формулы, для расчета Cp нам достаточно знать пределы допуска (USL, LSL) и стандартное отклонение. При этом, диапазон допуска, чаще всего задаваемый заказчиком, нам наперед известен, а рассчитать стандартное отклонение можно, используя функцию sd(). Примем диапазон допуска 90 – 110 и рассчитаем величину индекса Cp:

> #Cp
> (110-90)/(6*sd(x[,2]))

Если Вы используете прикрепленный к статье файл "capability.csv", то полученный результат будет равен 1.05816.

Для расчета скорректированного индекса краткосрочной способности процесса Cpk, кроме диапазона допуска и стандартного отклонения необходимо также рассчитать среднее арифметическое значение наблюдений. Для этого воспользуемся функцией mean() и введем команду:

> #Cpk
> min((110-mean(x[,2]))/(3*sd(x[,2])), (mean(x[,2])-90)/(3*sd(x[,2])))

Заданная команда отвечает формуле расчета показателя Cpk:

Так как переменной x присвоен не набор данных, а таблица, состоящая из двух столбцов, то в аргументах команд mean() и sd() потребовалось указать не только переменную x, но и столбец данных – [,2]. Кроме того, обращаться к столбцам таблицы можно и с помощью названий колонок. Например, вместо x[,2] необходимый столбец можно указать с помощью функции x$заглавие. В рассмотренном примере команда будет выглядеть как x$x.

При анализе файла "capability.csv", полученный результат будет равен 1.014667.

Расчет индексов способности в пакете SixSigma

Чтобы установить пакет запустите R и введите в командной строке “install.packages("SixSigma")”. В открывшемся окне выберите источник (сервер, с которого будет происходить установка) и следуйте командам установщика. После завершения установки и перед каждым использованием вызовите пакет командой “library("SixSigma")”. Ознакомиться с содержанием пакета можно, введя команду “example("SixSigma")”.

Пакет SixSigma позволяет рассчитать индексы способности Cp и Cpk с помощью соответствующих команд: ss.ca.cp() и ss.ca.cpk(). В аргументе функций следует указать:

  • переменную
  • нижний предел спецификации – LSL
  • верхний предел спецификации – USL
  • атрибут для доверительного интервала – ci
  • значение α-уровня – alpha

Последовательность вычислений:

    x<-read.csv(file="capability.csv", header=TRUE, sep=",", dec=".")
    #Cp
    ss.ca.cp(x[,2], LSL=90, USL=110, ci = FALSE, alpha=0.05)
    #Cpk
    ss.ca.cpk(x[,2], LSL=90, USL=110, ci = FALSE, alpha=0.05)

Результаты вычислений, при использовании файла “capability.csv” совпадают с указанными выше.

Расчет в пакете qcc

Установка и вызов пакета осуществляются аналогично пакету SixSigma. Чтобы ознакомиться с содержанием и функциональностью пакета qcc, используйте команду example("qcc").

Последовательность вычислений:

    library("qcc")
    x<-read.csv(file="capability.csv", header=TRUE, sep=",", dec=".")
    q<-qcc.groups(x[,2], x[,1])
    data<-qcc(q, type="xbar", nsigmas=3, plot=FALSE)
    process.capability(data, spec.limits=c(90,110), target=100)

Функции пакета QCC умеют производить вычисления с объектами, имеющими особую структуру, так называемыми qcc-объеками. Чтобы создать объект данного типа из файла “capability.csv” необходимо предварительно сгруппировать все данные в матрицу. Для этого используется команда qcc.groups(data, sample), в аргументе которой указывают два вектора: диапазон исследуемых значений, а также номер образца. В рассмотренном примере команда выглядит следующим образом:

> qcc.groups(x[,2], x[,1])

После формирования матрицы данных мы переходим к формированию объекта типа qcc. Для этого используем функцию qcc(). Первым аргументом зададим исходные данные, сформированные на предыдущем шаге. Второй аргумент содержит информацию о том, какие статистики мы хотим вычислить, используя создаваемый объект. Для оценки способности потребуется qcc-объект типа «xbar». Потом указываем количество стандартных отклонений. А параметру plot зададим значение FALSE, если написать TRUE, то при запуске функции получим еще и график суммарных статистик для наших данных.

В рассмотренном примере эта команда выглядит следующим образом:

> qcc(q, type="xbar", nsigmas=3, plot=FALSE)

Последний шаг – анализ способности, осуществляется с помощью команды process.capability(). В аргументе функции указываем:

  • qcc-объект
  • вектор с пределами допуска (USL, LSL)
  • целевое значение (по умолчанию, середина поля допуска)

Результаты:

    Process Capability Analysis

    Call:
    process.capability(object = data, spec.limits = c(90, 110), target = 100)

    Number of obs = 30           Target = 100
           Center = 100.411         LSL = 90
           StdDev = 3.177389        USL = 110

    Capability indices:

          Value    2.5%  97.5%
    Cp    1.049  0.7804  1.317
    Cp_l  1.092  0.8359  1.348
    Cp_u  1.006  0.7667  1.245
    Cp_k  1.006  0.7209  1.291
    Cpm   1.040  0.7762  1.304

    Exp< LSL 0.053%   Obs< LSL 0%
    Exp> USL 0.13%   Obs> USL 0%

Первая таблица содержит информацию об исходных данных: количестве наблюдений, среднем арифметическом и стандартном отклонении, целевом значении и лимитах. Вторая – значения индексов способности и доверительные интервалы.

Результаты в окне диаграмм:

В рассмотренном примере индекс краткосрочной способности процесса Cp равен 1.05, что свидетельствует о максимальной способности электроинструмента находиться в пределах поля допуска в 95% случаев. Скорректированный индекс краткосрочной способности процесса равен 1.01, что соответствует немногим больше 60 000ppm.

Можно ли считать этот показатель удовлетворительным?

Ответить на этот вопрос, довольно сложно, не учитывая последствий выхода рассмотренного параметра за рамки диапазона допуска. К примеру, если шуруп вкручивать в “мягкий” материал, то потенциально в 30 000 случаях из 1 000 000, шуруп может прокучиваться, что приведет к повреждению детали или к тому, что деталь невозможно будет зафиксировать.

15.08.2011 / 6559 / Загрузок: 55 / Voliadis /
Всего комментариев: 0
avatar
SixSigmaOnline.ru © 2009-2018            Хостинг от uWeb