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)