2016-07-29 2 views
0
  • Я пытаюсь определить, где, в наборе данных измерений, данные принимает погружение ...
  • ... так что я могу построить вертикальную линию и
  • ... построить горизонтальную линию на графике.

У меня нет проблем с выполнением 2-го и 3-го пунктов, указанных выше, и это позаботится об этом.Excel, определить, где данные принимает погружение

Проблема, с которой мне нужна помощь, - это первая точка маркировки - определение ГДЕ, когда данные проходят погружение - ГДЕ данные пересекают порог, который в основном говорит: «Независимо от того, что вы измеряете, больше не выполняется, как это ожидается ».

Вот что я делаю:

Я беру измерения с помощью измерительного устройства, и устройство регистрирует измерения во внутренней памяти и позволяет мне скачать, что данные измерений на компьютере в формате CSV когда тестовый сеанс завершен.

Я вытаскиваю этот csv в xls и обрабатываю данные на графике. (Прилагается изображение)

Вот что я хочу сделать:

Если вы смотрите на прилагаемом изображении, я хотел бы найти значение, где данные ОБЯЗАТЕЛЬНО пересекает ниже горизонтальной линии, так что я могу сказать, «Здесь тестируемое устройство« отказалось от призрака »и больше не могло выполнять по своему желанию».

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

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

Набор данных для прикрепленного изображения представляет собой набор данных из 7000 измерений. Я никогда не знаю, где будет горизонтальная линия.

Примеры наборов данных я получил в течение последних нескольких тестов выглядеть следующим образом:

(394 до 0)

(390000 до 0)

(3,88 до 0)

(375000 до 0)

(39,55 до 0)

(От 59200 до 0)

и каждый набор данных будет иметь от 1000 до 7000 измерений каждый.

Вот как я пытался решить эту проблему:

Я использовал SLOPE() и пытаюсь зацепиться, где помои линии приняли погружение/начал работать свой путь к нулевому наклону (это вертикальная линия), поэтому, когда он начинает приближаться к действительно маленькому склону, он ДОЛЖЕН принимать погружение. Это не работает.

Я искал использование STDEV.P() в Excel и подал ему весь набор данных. Затем я смотрел на то, что делал то же самое, но подавал его только первые 10, 30, 60 измерений, но потом я подумал - мы никогда не знаем, сколько будет проведено измерений. Тогда я подумал, что буду использовать первые 10% измерений и передать их STDEV.P().

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

Спасибо.

H

enter image description here Some sample measurement data sets. (These are just snippets of the data sets that I have been receiving. Some are really small which were for testing purposes and others are really large data sets. This is just to give you an idea of the data I'm graphing and trying to deal with as described above.)

Data jumps around so it's hard to measure the slope of the previous few data points with the next or current data point measurements.

Negative, 1 and Positive slope before dive. This throws a monkey wrench in things.

Added image to show that data measurements actually go UP from time to time and that would cause problems with the =SLOPE() solution suggested - Big thanks to Ken for the SLOPE() solution! Haven't got it working yet - ran into this fun issue of data going the wrong way - the measurements...you-would-think should only go down (based on the project i'm working on) but for some odd reason they do go up from time to time.

+0

Если вы наведите указатель мыши на синюю линию вокруг места погружения, вы увидите значения каждой точки графика, и оттуда вы можете определить точку, в которой она сначала идет ниже порога. –

+0

Скотт - спасибо за комментарий! Ваше утверждение верное, и я согласен с этим. Мне нужно, чтобы xls определял, где данные берут погружение. Клиенту необходимо, чтобы это было автоматически сделано для них на основе данных, полученных xls. – user2792497

+0

Если данные являются распадными, вы можете определить падение, сравнив наклон для последних двух точек данных с предыдущими двумя точками данных. = SLOPE (B2: B3, A2: A3)> SLOPE (B3: B4, A3: A4) отмечает «true», когда он падает в некоторых образцах данных, которые у меня были. – Ken

ответ

0

Что-то, как это должно работать, чтобы флаг, когда увеличивается скорость распада.

enter image description here

+0

Привет Кен.Я попробую это и посмотрю, как это работает. Благодарю. H – user2792497

+0

Привет, Кен, я редактирую свое оригинальное сообщение, чтобы добавить дополнительное изображение, которое ссылается на ваше сообщение выше, и показывает, что в этом отношении есть некоторые ошибки, которые они не должны делать, но они делают. – user2792497

0

Чтобы найти то, что «направление» ваши данные идут в вам нужно производную. Excel не имеет производной формулу, но вы можете установить его довольно легко с помощью (изменение у)/(изменение х), как показано здесь: http://faculty.educ.ubc.ca/sanderson/lab/CLFbiom/demo/diff.htm

Я бы тогда проверить формулу, которая подсчитывает, как у вас есть (= COUNTA (A: A) или аналогичный)
Затем использует это, чтобы получить шаг 10% ваших данных.
Затем проверьте значение производной в ячейке против ячейки на 10% ниже. Если это все-таки отрицательный (на счет для небольшого спуска на первый), то вы будете знать,

+0

Спасибо, JJWL за ответ! Я попробую это в дополнение к информации Кена выше. (Я еще не решил свою проблему, поэтому я собираюсь попробовать все предложения. :-)) – user2792497

0

Правильный путь идти об этом заключается в моделировании данных с неизвестным разрывом, что-то вроде «если время < break_time then (некоторый постоянный плюс шум) else (убывающая экспоненциальная) ". Для оценки максимального правдоподобия для этой модели может потребоваться итерация или другие операции, неуклюжие в Excel - возможно, вам стоит рассмотреть VB или Python или какой-либо другой язык программирования. То есть выберите инструмент, чтобы он соответствовал проблеме, а не наоборот.

См. Seber and Wild, «Нелинейная регрессия», для подробного обсуждения моделей с разрывами.

+0

Привет, Роберт. Спасибо за ответ. Вы правы в выборе инструмента для решения проблемы. Сейчас Excel - это все, что мне нужно для решения этой проблемы. :-( – user2792497

0

Если данные в целом можно охарактеризовать как имеющие:

(А) более или менее плоскую область плато, а затем

(В) Нисходящая области

то базовая стратегия может состоять в том, чтобы начать с конца данных и идти к началу по одной точке за раз, проверяя, что значения увеличиваются. Как только они перестанут расти, вы нашли точку останова.

Стратегия предполагает (неразумно?), Что область отклонения вниз является гладкой/бесшумной. Чтобы сделать решение более устойчивым к шуму, вы можете сравнить значения, которые находятся на расстоянии 5 или 10 друг от друга, или какой-либо интервал работает, чтобы отфильтровать шум. Или вы можете использовать скользящую среднюю.

Эта стратегия потенциально может быть более эффективной, начав поиск где-то посередине данных, но все же в нисходящем тренде. Если вы знаете (на основе опыта), что любое значение, которое составляет (скажем) 0,5X, максимум находится в нисходящем тренде, вы можете начать поиск там.

Надеюсь, что это поможет.

0

Кажется, что вы хотите обнаружить, когда наклон изменяется от чего-то близкого к нулю до чего-то отрицательного. Один из способов обнаружить это - вычислить вторую производную от значений (рассчитать наклон склона). Вторая производная должна быть близка к нулю в плоской части данных И в нисходящей части данных. Он должен быть отрицательным в точке останова. Поэтому найти минимальное (самое отрицательное) значение второго должно найти точку останова.

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

=SLOPE(moving window of say 25 raw values) 

Затем вычислить вторую производную (наклон склона):

=SLOPE(moving window of say 25 slope values) 

Тогда искать минимум.

Надеюсь, что это поможет.