Рассчитайте, если тенденция вверх, вниз или стабильная -- math поле с участием vbscript поле с участием trend пол Связанный проблема

Calculate if trend is up, down or stable


3
vote

проблема

русский

Я пишу VBScript, который отправляет еженедельное письмо с помощью клиента. Вот некоторые примеры данных:

 <код> a       b       c       d       e      f        g 2,780   2,667   2,785   1,031   646    2,340    2,410   

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

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

Моя цель будет что-то простой, как это:

 <код> a       b       c       d       e      f        g        trend 2,780   2,667   2,785   1,031   646    2,340    2,410    ↘   

Если есть некоторая дельта или процентное или другое измерение, которое я мог бы отображать, это будет полезно. Я бы, вероятно, хотел бы игнорировать выбросы. Например, 646 выше. Некоторые из наших клиентов не открыты на выходных.

Английский оригинал

I'm writing a VBScript that sends out a weekly email with client activity. Here is some sample data:

a       b       c       d       e      f        g 2,780   2,667   2,785   1,031   646    2,340    2,410 

Since this is email, I don't want a chart with a trend line. I just need a simple function that returns "up", "down" or "stable" (though I doubt it will ever be perfectly stable).

I'm terrible with math so I don't even know where to begin. I've looked at a few other questions for Python or Excel but there's just not enough similarity, or I don't have the knowledge, to apply it to VBS.

My goal would be something as simple as this:

a       b       c       d       e      f        g        trend 2,780   2,667   2,785   1,031   646    2,340    2,410    ↘ 

If there is some delta or percentage or other measurement I could display that would be helpful. I would also probably want to ignore outliers. For instance, the 646 above. Some of our clients are not open on the weekend.

</div
        
         
         

Список ответов

10
 
vote
vote
Лучший ответ
 
<Р> Во-первых, ваши данные в списке
 <код> a       b       c       d       e      f        g       2,780   2,667   2,785   1,031   646    2,340    2,410       
<Р> Для того, чтобы получить линию тренда необходимо присвоить числовые значения переменных <код> a, b, c, ...
<Р> Чтобы присвоить числовые значения в этом, вам нужно иметь немного больше информации, как принимаются данные. Предположим, вы взяли данные <код> a на 1 января, вы можете присвоить любое значение, как <код> 0 или <код> 1 . Тогда вы взяли данные <код> b Через десять дней, то вы можете присвоить значение <код> 10 или <код> 11 к нему. Тогда вы взяли данные <код> c тридцать дней, то вы можете присвоить значение <код> 30 или <код> a, b, c, ...0 к нему. Численные значения <код> a, b, c, ...1 должен быть пропорционален временному интервалу данных, принятых, чтобы получить более точное значение линии тренда.
<Р> Если они будут приняты в регулярные промежутки времени (который, скорее всего, ваш случай), позволяет сказать, что каждые 7 дней, то вы можете назначить его в регулярные промежутки времени <код> a, b, c, ...2 Начиная с точки полностью ваш выбор выбрать то, что делает его очень легко. Это не имеет значения, на ваш окончательный расчет. <Р> Затем вам нужно вычислить наклон линейной регрессии, которые вы можете найти на этот URL , из которого необходимо вычислить значение <код> a, b, c, ...3 со следующей таблицей.

    <Литий> <р> На первой колонке из строки 2, чтобы строка 8, у меня значения <код> a, b, c, ...4 , который я поставил <код> a, b, c, ...5
  1. На второй колонке, у меня есть данные.

  2. <Литий> <р> На третьем столбце, я умноженной каждую ячейку в первом столбце в соответствующие ячейки во втором столбце. <Литий> <р> На четвертом столбце, я квадрат значение ячейки первого столбца. <Литий> <р> На строке 10, я добавил до значения выше столбцов. <Литий> <р> Наконец использовать значение строки 10.
     <Код> a, b, c, ...6  
<Р> знак <код> a, b, c, ...7 определяет то, что вы ищете. Если он положительный, то это вверх, если он отрицательный, то это вниз, а если ноль, то стабильный.
 

First of all, your data is listed as

a       b       c       d       e      f        g       2,780   2,667   2,785   1,031   646    2,340    2,410     

To get a trend line you need to assign a numerical values to the variables a, b, c, ...

To assign numerical values to it, you need to have little bit more info how data are taken. Suppose you took data a on 1st January, you can assign it any value like 0 or 1. Then you took data b ten days later, then you can assign value 10 or 11 to it. Then you took data c thirty days later, then you can assign value 30 or 31 to it. The numerical values of a, b, c, ... must be proportional to the time interval of the data taken to get the more accurate value of the trend line.

If they are taken in regular interval (which is most likely your case), lets say every 7 days, then you can assign it in regular intervals a, b, c, ... ~ 1, 2, 3, ... Beginning point is entirely your choice choose something that makes it very easy. It does not matter on your final calculation.

Then you need to calculate the slope of the linear regression which you can find on this url from which you need to calculate the value of b with the following table.

enter image description here

  1. On first column from row 2 to row 8, I have my values of a,b,c,... which I put 1,2,3, ...

  2. On second column, I have my data.

  3. On third column, I multiplied each cell in first column to corresponding cell in second column.

  4. On fourth column, I squared the value of cell of first column.

  5. On row 10, I added up the values of the above columns.

  6. Finally use the values of row 10.

            total_number_of_data*C[10] - A[10]*B[10]   b =  -------------------------------------------         total_number_of_data*D[10]-square_of(A[10]) 

the sign of b determines what you are looking for. If it's positive, then it's up, if it's negative, then it's down, and if it's zero then stable.

</div
 
 
       
       

Связанный проблема

255  Самый эффективный способ реализации целочисленной функции питания POW (INT, INT)  ( The most efficient way to implement an integer based power function powint int ) 
Что является наиболее эффективным способом поднять целое число к силе другое целое число в C? <код> // 2^3 pow(2,3) == 8 // 5^5 pow(5,5) == 3125 ...

0  Математика возмутание повернутых координат  ( Math reverting rotated coordinates ) 
Ситуация: Холст содержит изображение, которое можно повернуть, масштабировать и переведено (перемещено). Изображение представляет собой SVG со многими путям...

-2  сопоставление прямо в небольшом изображении на увеличение изображения (чтобы сделать операцию COPYPIXELS)  ( Mapping rect in small image to larger image in order to do a copypixels operati ) 
Это (я думаю) относительно простой математический вопрос, но я потратил на день, ударив голову против него и иметь только вмятины и нет решения ... Я кодиру...

1  Вероятность N-битных целых чисел [дубликат]  ( Probability of n bit integers ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> Этот вопрос уже есть ответы здесь : ...

0  Преобразовать экспоненциальный формат в числовой формат в XSLT  ( Convert exponential format into numeric format in xslt ) 
Я должен преобразовать в моем номере XSLT в экспоненциальном формате (I.E: 1,2345E7) в числовые (I.E: 12340000). Что бы функцию XSLT для достижения этого. ...

1  Rails: неопределенный метод `* 'для nil: nilclass  ( Rails undefined method for nilnilclass ) 
Я Ньюби к Rails и хочу сделать базовую математику в модели, чтобы получить цену продажи по математике. Я пишу простое уравнение в модели продукта. Вот это: ...

7  Цель C: Как работает 7 - 1 = 3?  ( Objective c how does 7 1 3 ) 
<код> NSLog(@"Before: %d",currentArticle); currentArticle--; NSLog(@"SUBTRACT %d",currentArticle); "CurrentAryicle" - это целое число. Это только один раз...

3  Расчет матрицы преобразования перспективы  ( Calculation of a perspective transformation matrix ) 
Учитывая точку в трехмерном пространстве, как я могу рассчитать матрицу в однородных координатах, которые будут проецировать точку в плоскости <код> public cl...

1  У вас есть лучшая идея имитировать монету Flip?  ( Do you have a better idea to simulate coin flip ) 
прямо сейчас у меня есть <код> return 'Heads' if Math.random() < 0.5 Есть ли лучший способ сделать это? Спасибо Редактировать: Пожалуйста, игнориру...

0  Как бы один рассчитывал процентную ошибку между двумя соотношениями  ( How would one calculate percent error between two ratios ) 
Скажем, у меня есть отношение 1: 1 и соотношение 5: 1, которое также может быть интерпретировано как соотношение 1: 5. Тот факт, что оба этих соотношения дейс...

18  Латекс эквивалент для API Google Chart  ( Latex equivalent to google chart api ) 
В настоящее время я смотрю на разные решения, получая 2 мерных математических формул в веб-страницы. Я думаю, что решение Wikipedia (генерация изображений PNG...

1  OpenGL Raycasting с любым объектом  ( Opengl raycasting with any object ) 
Мне просто интересно, есть ли какие-либо способ, которым можно выполнять обнаружение выбора мыши на любой объект. Будет ли это сгенерировано объектом или импо...

11  Основная арифметика в GWT CSSResource  ( Basic arithmetic in gwt cssresource ) 
Я ищу способ сделать что-то вроде этого: <код> // style.css @def borderSize '2px'; .style { width: borderSize + 2; height: borderSize + 2; } Где ат...

1  JavaScript анимированный счетчик не достаточно конкретный  ( Javascript animated counter isnt specific enough ) 
Так что я делаю счетчик, который работает очень хорошо, это просто не достаточно конкретно: <код> <div class="sosm youtube"> <h3 class="names">Y...

11  Как случайным образом, но равномерно распределите узлы на самолете  ( How to randomly but evenly distribute nodes on a plane ) 
Мне нужно разместить от 1 до 100 узлов (на самом деле 25px точек) на HTML5 Canvas. Мне нужно заставить их выглядеть случайным образом распределенным, поэтому ...

Связанный проблема

255  Самый эффективный способ реализации целочисленной функции питания POW (INT, INT) 
0  Математика возмутание повернутых координат 
-2  сопоставление прямо в небольшом изображении на увеличение изображения (чтобы сделать операцию COPYPIXELS) 
1  Вероятность N-битных целых чисел [дубликат] 
0  Преобразовать экспоненциальный формат в числовой формат в XSLT 
1  Rails: неопределенный метод `* 'для nil: nilclass 
7  Цель C: Как работает 7 - 1 = 3? 
3  Расчет матрицы преобразования перспективы 
1  У вас есть лучшая идея имитировать монету Flip? 
0  Как бы один рассчитывал процентную ошибку между двумя соотношениями 
18  Латекс эквивалент для API Google Chart 
1  OpenGL Raycasting с любым объектом 
11  Основная арифметика в GWT CSSResource 
1  JavaScript анимированный счетчик не достаточно конкретный 
11  Как случайным образом, но равномерно распределите узлы на самолете