Desvio Padrão em C#

Muhammad Maisam Abbas 12 outubro 2023
  1. Desvio padrão com o método autodefinido em C#
  2. Desvio padrão com a função de extensão em C#
Desvio Padrão em C#

Este tutorial irá apresentar os métodos para encontrar o desvio padrão dos elementos de uma lista em C#.

Desvio padrão com o método autodefinido em C#

O desvio padrão é a medida da dispersão da média nas estatísticas. É calculado tirando o quadrado da diferença de cada elemento do valor médio, somando todos os valores quadrados, dividindo a resposta pelo número total de valores e tirando a raiz quadrada do valor resultante.

desvio padrão

Infelizmente, não existe um método integrado para calcular o desvio padrão em C#. Mas, podemos definir alguma lógica para calculá-lo. O exemplo de código a seguir nos mostra como podemos encontrar o desvio padrão dos elementos dentro de uma lista em C#.

using System;
using System.Collections.Generic;
using System.Linq;

namespace sd_list {
  class Program {
    static double standardDeviation(IEnumerable<double> sequence) {
      double result = 0;

      if (sequence.Any()) {
        double average = sequence.Average();
        double sum = sequence.Sum(d => Math.Pow(d - average, 2));
        result = Math.Sqrt((sum) / sequence.Count());
      }
      return result;
    }
    static void Main(string[] args) {
      List<double> intList = new List<double> { 1, 2, 3, 4, 5 };
      double standard_deviation = standardDeviation(intList);
      Console.WriteLine("Standard Deviation = {0}", standard_deviation);
    }
  }
}

Resultado:

Standard Deviation = 1.4142135623731

No código acima, criamos a função standardDeviation() que calcula o desvio padrão dos elementos de uma lista de duplos em C#. Primeiro calculamos a média dos valores com a função sequence.Average(). Em seguida, calculamos a soma do quadrado da diferença dos valores individuais da média e salvamos na variável sum. No final, dividimos a sum pelo número total de valores e calculamos sua raiz quadrada. Salvamos o resultado deste cálculo dentro da variável result e retornamos a variável result.

Desvio padrão com a função de extensão em C#

A lógica discutida no exemplo anterior também pode ser transformada em uma função de extensão para facilitar o uso. O exemplo de código a seguir nos mostra como alterar a lógica do exemplo anterior em um método de extensão em C#.

using System;
using System.Collections.Generic;
using System.Linq;

namespace sd_list {
  public static class ExtensionClass {
    public static double standardDeviation(this IEnumerable<double> sequence) {
      double average = sequence.Average();
      double sum = sequence.Sum(d => Math.Pow(d - average, 2));
      return Math.Sqrt((sum) / sequence.Count());
    }
  }
  class Program {
    static void Main(string[] args) {
      List<double> intList = new List<double> { 1, 2, 3, 4, 5 };
      double standard_deviation = intList.standardDeviation();
      Console.WriteLine("Standard Deviation = {0}", standard_deviation);
    }
  }
}

Resultado:

Standard Deviation = 1.4142135623731

No código acima, transformamos nosso código anterior em um método de extensão em C#.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Artigo relacionado - Csharp Math