Lo que se busca es un aprendizaje no supervisado algoritmo: es decir, un algoritmo que determinará por sí mismo los 3 grupos más racionales de su conjunto de datos. Este método le permitirá elegir los límites de los grupos basándose en el conjunto de datos que usted proporcione y no eligiendo unos valores fijos dados.
El algoritmo que te sugiero utilizar es el K-means algoritmo. Usted le proporciona los datos, y el número $k$ de clusters (grupos) que desea tener. El algoritmo dividirá entonces los datos en los $k$ grupos que te gustaría. Tenga en cuenta que este algoritmo puede manejar puntos con varias características, mientras que usted sólo utilizará una (volatilidad).
Aquí tienes una idea de cómo funciona en Matlab:
test=[0 1 2 3 100 105 98 1000 1001 997]';
[idx,C] = kmeans(test,3);
El valor devuelto para idx
es un vector en el que cada punto de test
se le atribuye un número de cluster (que representa su grupo):
idx =
2
2
2
2
3
3
3
1
1
1
A continuación, puede consultar la variable C
que contiene la media de cada conglomerado que podría entenderse como "el punto perfecto para cada conglomerado"
c =
999.3333
1.5000
101.0000
Así que encontró tres grupos en test
uno en torno a 999,33, otro en torno a 1,5 y otro en torno a 101.
Eso debería servir.