¿Cómo se algoritmiza la detección de los grupos de alimentación MA? - página 6

 

Calcularel preciomedio en un intervalo dado con un número determinado de aproximaciones.

Hola Hay una matriz de valores.

La tarea consiste en escribir una función.

Parámetros de entrada:

- la matriz contiene los números de elementos necesarios para calcular la mediana - bufInBar[]

- tamaño del array -bufInBar[]- count

- número de aproximaciones a la mediana - fokus

void medianaL0(const int &bufInBar[], int count, int fokus)

Es decir, hay una clase

bufInBar[i] - используется для загрузки нужного элемента при расчете медианы 

BP[bufInBar[i]].CenaPerioda; - по этому значению рассчитывается медиана
BP[bufInBar[i]].Period; 

En la salida :

BP[bufInBar[i]].Mediana; 

Rellenado en orden ascendente, por ejemplo, de 0 a 10.

Es decir, sifokus=10 en la condición, entonces en el intervalo i<cuenta los diez valores

BP[bufInBar[i]].Mediana;

será de 1 a 10.

Por ejemplo

BP[3256].Mediana=0;
BP[6256].Mediana=1;
BP[9256].Mediana=2;
...
 
No está claro cuál es el fokus
 
En teoría, la mediana es el valor del elemento que se encuentra en el centro de una matriz ordenada. ¿Qué es en su caso?
 
Dmitry Fedoseev:
No está claro qué es fokus
Aleksei Stepanenko:
En teoría, la mediana es el valor del elemento que se encuentra en el centro de un conjunto ordenado. ¿Qué es en su caso?

Ejemplo:

Matriz de 30 valores de precios MA, busca el centro de la matriz ordenada.

Obtenemos el valor 15(L0) en el centro de la matriz, luego obtenemos dos matrices de L0 hacia abajo y L0 hacia arriba y encontramos el centro de estas matrices y así sucesivamente hasta obtener el númerofokus (siete valores por ejemplo)

                        --------------|--------------
                        -------|--------------|------
                        ---|-------|------|-------|--
fokus=7
| - значение цены
        

 
Mikhail Toptunov:

Ejemplo:

Matriz de 30 valores de precios MA, busca el centro de la matriz ordenada.

Obtenemos 15(L0) como valor en el medio de la matriz, luego obtenemos dos matrices de L0 hacia abajo y L0 hacia arriba y encontramos el medio de estas matrices y así sucesivamente hasta obtener el númerofokus (siete valores por ejemplo)

Y si hay un número par de elementos de la matriz, ¿qué elemento será la mediana, o debe calcularse como la media de dos o algo más?

 
Mikhail Toptunov:

Ejemplo:

¿Estoy en lo cierto al suponer que tenemos que encontrar siete percentiles: 12,5, 25, 37,5, 50, 62,5, 75, 87,5?

Si es así, divide el número de elementos de la matriz ordenada por 8 (7+1), y multiplícalo por el número de percentiles que quieras. Obtenemos los siguientes índices de elementos: 3, 7, 11, 15, 18, 22, 26.

int index=ArraySize(bufInBar)*percentile/(fokus+1);

//где percentile - номер нужного перцентиля от 1 до fokus 

double value=bufInBar[index];

¿Verdad, o voy por el camino equivocado? Si es así, lo más importante es crear un mecanismo parsimonioso para mantener una matriz ordenada.

 
¿Por qué no se puede utilizarMathQuantile()?
 
Dmitry Fedoseev:

Y si la matriz tiene un número par de elementos, ¿qué elemento es la mediana, o debe calcularse como la media de dos o algo así?

Creo que es más fácil tomar un valor entero par.

Si hay 15 elementos, la mediana es 8.

 
Aleksei Stepanenko:

¿He entendido bien que hay que encontrar siete percentiles: 12,5, 25, 37,5, 50, 62,5, 75, 87,5?

Si es así, divide el número de elementos de la matriz ordenada por 8 (7+1), y multiplícalo por el número del percentil requerido. Obtenemos los siguientes índices de elementos: 3, 7, 11, 15, 18, 22, 26.

¿Verdad, o voy por el camino equivocado? Si es así, lo más importante es crear un mecanismo parsimonioso para mantener una matriz ordenada.

A partir de la matriz de valores MA hay que encontrar la mediana de toda la matriz, luego las medianas de las matrices obtenidas por encima/por debajo de la primera mediana, etc.

 

Parece correcto entonces, la mediana de la primera parte de la matriz es un cuarto de la matriz total, y es el percentil 25. Y la mediana de la segunda parte es el percentil 75.

Esto:

                        --------------|---------------
                        -------|--------------|-------
                        ---|-------|------|-------|---

es igual a esto:

                        ---|---|---|---|---|---|---|---
Razón de la queja: