Desviación estándar en C#

Muhammad Maisam Abbas 12 octubre 2023
  1. Desviación estándar con el método autodefinido en C#
  2. Desviación estándar con la función de extensión en C#
Desviación estándar en C#

Este tutorial presentará los métodos para encontrar la desviación estándar de elementos de una lista en C#.

Desviación estándar con el método autodefinido en C#

La desviación estándar es la medida de la dispersión de la media en las estadísticas. Se calcula tomando el cuadrado de la diferencia de cada elemento del valor medio, sumando todos los valores al cuadrado, dividiendo la respuesta con el número total de valores y tomando una raíz cuadrada del valor resultante.

Desviación Estándar

Desafortunadamente, no existe un método integrado para calcular la desviación estándar en C#. Pero podemos definir alguna lógica para calcularlo. El siguiente ejemplo de código nos muestra cómo podemos encontrar la desviación estándar de los elementos dentro de una lista en 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);
    }
  }
}

Producción :

Standard Deviation = 1.4142135623731

En el código anterior, creamos la función standardDeviation() que calcula la desviación estándar de los elementos de una lista de dobles en C#. Primero calculamos la media de los valores con la función sequence.Average(). Luego calculamos la suma del cuadrado de la diferencia de los valores individuales de la media y la guardamos en la variable sum. Al final, dividimos la sum por el número total de valores y calculamos su raíz cuadrada. Guardamos el resultado de este cálculo dentro de la variable result y devolvimos la variable result.

Desviación estándar con la función de extensión en C#

La lógica discutida en el ejemplo anterior también se puede transformar en una función de extensión para facilitar su uso. El siguiente ejemplo de código nos muestra cómo cambiar la lógica del ejemplo anterior en un método de extensión en 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);
    }
  }
}

Producción :

Standard Deviation = 1.4142135623731

En el código anterior, transformamos nuestro código anterior en un método de extensión en 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

Artículo relacionado - Csharp Math