Saltar al contenido

Cómo calcular una desviación estándar [array]

Solución:

Usando LINQ:

double average = someDoubles.Average();
double sumOfSquaresOfDifferences = someDoubles.Select(val => (val - average) * (val - average)).Sum();
double sd = Math.Sqrt(sumOfSquaresOfDifferences / someDoubles.Length); 

los sd La variable tendrá la desviación estándar.

Si tienes un List<double>, luego usa someDoubles.Count en la última línea para el código en lugar de someDoubles.Length.

Para calcular la desviación estándar, puede utilizar este código. Tomado directamente de Calcular desviación estándar de variables dobles en C # por Victor Chen.

private double getStandardDeviation(List<double> doubleList)  
{  
   double average = doubleList.Average();  
   double sumOfDerivation = 0;  
   foreach (double value in doubleList)  
   {  
      sumOfDerivation += (value) * (value);  
   }  
   double sumOfDerivationAverage = sumOfDerivation / (doubleList.Count - 1);  
   return Math.Sqrt(sumOfDerivationAverage - (average*average));  
}  

Este enlace al sitio de Victor ya no funciona, pero aún se incluye para ayudar a mantener la atribución.

Dados los valores atípicos, es posible que el rango intercuartílico sea más útil que la desviación estándar. Esto es fácil de calcular: simplemente ordene los números y encuentre la diferencia de los valores en el percentil 75 y el percentil 25.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *