Exemple #1
0
        public double CorrelacaoSperman()
        {
            // Ordenando dados
            Pontos.Sort(delegate(PontoCartesiano obj1, PontoCartesiano obj2)
            {
                if (obj1.x == obj2.x)
                {
                    return(0);
                }
                if (obj1.x > obj2.x)
                {
                    return(1);
                }
                return(-1);
            });
            for (var i = 0; i < Pontos.Count; i++)
            {
                Pontos[i].postoX = i + 1;
            }

            Pontos.Sort(delegate(PontoCartesiano obj1, PontoCartesiano obj2)
            {
                if (obj1.y == obj2.y)
                {
                    return(0);
                }
                if (obj1.y > obj2.y)
                {
                    return(1);
                }
                return(-1);
            });
            for (var i = 0; i < Pontos.Count; i++)
            {
                Pontos[i].postoY = i + 1;
            }

            return(1 - 6 * Pontos.Sum(e => Math.Pow(e.postoX - e.postoY, 2)) / (Pontos.Count * (Math.Pow(Pontos.Count, 2) - 1)));
        }