- See Also
-
Related Guides
- Descriptive Statistics
- Statistical Data Analysis
- Time Series Processing
- Statistical Moments and Generating Functions
- GPU Computing
- Using the Wolfram Data Drop
- Numbers with Uncertainty
- Date & Time
- Event Series Processing
- Tabular Modeling
- GPU Computing with Apple
- GPU Computing with NVIDIA
- Probability & Statistics with Quantities
- Tabular Transformation
- Symbolic Vectors, Matrices and Arrays
- Tech Notes
-
- See Also
-
Related Guides
- Descriptive Statistics
- Statistical Data Analysis
- Time Series Processing
- Statistical Moments and Generating Functions
- GPU Computing
- Using the Wolfram Data Drop
- Numbers with Uncertainty
- Date & Time
- Event Series Processing
- Tabular Modeling
- GPU Computing with Apple
- GPU Computing with NVIDIA
- Probability & Statistics with Quantities
- Tabular Transformation
- Symbolic Vectors, Matrices and Arrays
- Tech Notes
StandardDeviation[data]
gives the standard deviation estimate of the elements in data.
StandardDeviation[dist]
gives the standard deviation of the distribution dist.
StandardDeviation
StandardDeviation[data]
gives the standard deviation estimate of the elements in data.
StandardDeviation[dist]
gives the standard deviation of the distribution dist.
Details
- StandardDeviation is also known as volatility.
- StandardDeviation measures dispersion from the mean of data or distributions.
- For VectorQ data
with
=Mean[data], the standard deviation estimate
is given by
for reals and
for complexes. - For MatrixQ data, the standard deviation estimate
is computed for each column vector with StandardDeviation[{{x1,y1,…},{x2,y2,…},…}] equivalent to {StandardDeviation[{x1,x2,…}],StandardDeviation[{y1,y2,…}]}. » - For ArrayQ data, standard deviation is equivalent to ArrayReduce[StandardDeviation,data,1]. »
- For a real weighted WeightedData[{x1,x2,…},{w1,w2,…}], the standard deviation is given by
. » - StandardDeviation handles both numerical and symbolic data.
- The data can have the following additional forms and interpretations:
-
Association the values (the keys are ignored) » SparseArray as an array, equivalent to Normal[data] » QuantityArray quantities as an array » WeightedData weighted variance, based on the underlying EmpiricalDistribution » EventData based on the underlying SurvivalDistribution » TimeSeries, TemporalData, … vector or array of values (the time stamps ignored) » Image,Image3D RGB channel's values or grayscale intensity value » Audio amplitude values of all channels » DateObject, TimeObject list of dates or list of times » - For a univariate distribution dist, the standard deviation is given by σ=Expectation[(x-μ)2,xdist]1/2 with μ=Mean[dist]. »
- For multivariate distribution dist, the standard deviation is given by {σx,σy,…}=Expectation[{(x-μx)2,(y-μy)2,…},{x,y,…}dist]1/2. »
- For a random process proc, the standard deviation function
can be computed for slice distribution at time t, SliceDistribution[proc,t], as σ[t]=StandardDeviation[SliceDistribution[proc,t]]. »
Examples
open all close allBasic Examples (4)
Standard deviation of a list of numbers:
StandardDeviation[{1.21, 3.4, 2, 4.66, 1.5, 5.61, 7.22}]Standard deviation of elements in each column:
StandardDeviation[{{5.2, 7}, {5.3, 8}, {5.4, 9}}]Standard deviation of a list of dates:
StandardDeviation[{Yesterday, Today, Tomorrow}]Standard deviation of a parametric distribution:
StandardDeviation[LogNormalDistribution[0, 1]]Scope (24)
Basic Uses (8)
Exact input yields exact output:
StandardDeviation[{1, 2, 3, 4}]StandardDeviation[{π, E, 3}]//TogetherApproximate input yields approximate output:
StandardDeviation[{1., 2., 3., 4.}]StandardDeviation[N[{1, 2, 3, 4}, 30]]Find the standard deviation of WeightedData:
StandardDeviation[WeightedData[{1, 2, 3}, {Subscript[w, 1], Subscript[w, 2], Subscript[w, 3]}]]data = {8, 3, 5, 4, 9, 0, 4, 2, 2, 3};
weights = {0.15, 0.09, 0.12, 0.10, 0.16, 0., 0.11, 0.08, 0.08, 0.09};StandardDeviation[WeightedData[data, weights]]Find the standard deviation of EventData:
e = {1.0, 2.1, 3.2, 4.5, 5.7};
ci = {0, 0, 0, 1, 0};StandardDeviation[EventData[e, ci]]Find the standard deviation of TemporalData:
s1 = {2, 1, 6, 5, 7, 4};
s2 = {4, 7, 5, 6, 1, 2};
t = {1, 2, 5, 10, 12, 15};td = TemporalData[{s1, s2}, {t}];StandardDeviation[td[10]]Find the standard deviation of a TimeSeries:
v = {3, 8, 4, 11, 9, 2};
t = {1, 3, 5, 7, 8, 10};
ts = TimeSeries[v, {t}];StandardDeviation[ts]//NThe standard deviation depends only on the values:
StandardDeviation[ts["Values"]]//NFind a three-element moving standard deviation:
MovingMap[StandardDeviation, {2.5, 1.2, 6.9, 5.8, 7.1, 4.8}, Quantity[3, "Events"]]Find the standard deviation of data involving quantities:
data = Quantity[RandomReal[1, 6], "Meters"]StandardDeviation[data]Array Data (5)
StandardDeviation for a matrix gives columnwise standard deviations:
StandardDeviation[Array[Subscript[a, ##]&, {2, 2}]]StandardDeviation for a tensor gives columnwise standard deviations at the first level:
StandardDeviation[Array[Subscript[a, ##]&, {2, 2, 2}]]StandardDeviation[RandomReal[1, 10 ^ 7]]StandardDeviation[RandomReal[1, {10 ^ 6, 5}]]When the input is an Association, StandardDeviation works on its values:
mat = RandomReal[1, {3, 2}];
assoc = AssociationThread[Range[3], mat]StandardDeviation[assoc]SparseArray data can be used just like dense arrays:
StandardDeviation[SparseArray[{{1} -> 1, {100} -> 1}]]StandardDeviation[SparseArray[{{1, 1} -> 1, {2, 2} -> 2, {3, 3} -> 3, {1, 3} -> 4}]]Find the standard deviation of a QuantityArray:
data = QuantityArray[RandomReal[1, 6], "Pounds"]StandardDeviation[data]Image and Audio Data (2)
Channelwise standard deviation of an RGB image:
StandardDeviation[[image]]Standard deviation of a grayscale image:
StandardDeviation[[image]]On audio objects, StandardDeviation works channelwise:
a = ExampleData[{"Audio", "Bee"}]AudioMeasurements[a, "Channels"]StandardDeviation[a]Date and Time (5)
Compute standard deviation of dates:
dates = WolframLanguageData[All, "DateIntroduced"];DateHistogram[dates]StandardDeviation[dates]Compute the weighted standard deviation of dates:
dates = RandomDate[4]weights = {1, 1, 1, 3};StandardDeviation[WeightedData[dates, weights]]Compute the standard deviation of dates given in different calendars:
dates = {DateObject[{2024, 2, 29}, CalendarType -> "Julian"], DateObject[{1524, 1, 1}, CalendarType -> "Islamic"], DateObject[{6024, 1, 15}, CalendarType -> "Jewish"]}StandardDeviation[dates]UnitConvert[%, "Years"]Compute the standard deviation of times:
times = RandomTime[3]StandardDeviation[times]Compute the standard deviation of times with different time zone specifications:
times = {TimeObject[{12}, TimeZone -> 0], TimeObject[{12}, TimeZone -> 2], TimeObject[{12}, TimeZone -> "Asia/Tokyo"]}StandardDeviation[times]Distributions and Processes (4)
Find the standard deviation for univariate distributions:
StandardDeviation[BinomialDistribution[n, p]]StandardDeviation[NormalDistribution[μ, σ]]StandardDeviation[MultivariateHypergeometricDistribution[n, {Subscript[m, 1], Subscript[m, 2]}]]StandardDeviation[BinormalDistribution[{Subscript[μ, 1], Subscript[μ, 2]}, {Subscript[σ, 1], Subscript[σ, 2]}, ρ]]Standard deviation for derived distributions:
StandardDeviation[TransformedDistribution[x^2, xNormalDistribution[μ, σ]]]StandardDeviation[ProbabilityDistribution[(Sqrt[2] / π)(1 / (1 + (x - 2)^4)), {x, -∞, ∞}]]data = RandomVariate[NormalDistribution[], 10 ^ 3];StandardDeviation[HistogramDistribution[data]]Standard deviation for distributions with quantities:
StandardDeviation[QuantityDistribution[UniformDistribution[{10., 20.}], "Meters"]]StandardDeviation[QuantityDistribution[BinormalDistribution[{190, 72}, {12, 2}, 2 / 3], {"Pounds", "Inches"}]]StandardDeviation[SmoothKernelDistribution[QuantityArray[ExampleData[{"Statistics", "OldFaithful"}], {"Seconds", "Minutes"}]]]Standard deviation function for a random process:
StandardDeviation[BrownianBridgeProcess[a, b][t]]Plot[Evaluate[% /. {a -> 3, b -> 5}], {t, 3, 5}, Filling -> Axis]Applications (7)
StandardDeviation is a measure of dispersion:
𝒟 = NormalDistribution[0, σ];StandardDeviation[𝒟]Table[Plot[PDF[𝒟, x], {x, -4, 4}, PlotRange -> {0, 0.4}, Filling -> Axis, Ticks -> {Automatic, None}, PlotLabel -> Row[{"σ = ", σ}]], {σ, {1, 1.5, 2}}]Transform data to have mean 0 and unit variance:
data = RandomReal[5, 20]standardized = (data - Mean[data]) / StandardDeviation[data]Mean[standardized]//ChopVariance[standardized]Identify periods of high volatility in the S&P 500 using a five-year moving standard deviation:
data = TemporalData[«4»];smooth = MovingMap[StandardDeviation, data, {Quantity[5 * 365, "Day"]}];DateListPlot[smooth]Find the mean and standard deviation for the number of cycles to failure of deep-groove ball-bearings:
data = ExampleData[{"Statistics", "FatigueLifeFailures"}];Length[data]{μ, σ} = {Mean[data], StandardDeviation[data]}m = {{0, μ}, {22, μ}};
s1 = {{0, μ + σ}, {22, μ + σ}};
s2 = {{0, μ - σ}, {22, μ - σ}};ListPlot[{data, m, s1, s2}, Joined -> {False, True, True, True}, PlotStyle -> {Automatic, Automatic, Gray, Gray}, Filling -> {3 -> {4}, 1 -> 0}]Probability that the values lie within two standard deviations of the mean:
NProbability[Abs[x - μ] < 2σ, xdata]Investigate weak stationarity of the process data by analyzing standard deviations of slices:
data = TemporalData[«4»];times = Range[0, 1, .1];sd = Map[{#, StandardDeviation[data[#]]}&, times];ListLinePlot[sd]Use a larger plot range to see how relatively small the variations are:
ListLinePlot[sd, PlotRange -> {0, .7}]Compute standard deviation for slices of a collection of paths of a random process:
data = RandomFunction[WienerProcess[], {0, 1, .01}, 10 ^ 3];times = Range[0, 1, .1];Compute standard deviations and means:
sd = Map[{#, StandardDeviation[data[#]]}&, times];
means = Map[{#, Mean[data[#]]}&, times];Create a standard deviation band around the mean:
upper = TimeSeriesThread[#[[1]] + #[[2]]&, {means, sd}];
lower = TimeSeriesThread[#[[1]] - #[[2]]&, {means, sd}];Plot standard deviations around the mean over these paths:
Show[ListPlot[data], ListLinePlot[{upper, lower}, PlotStyle -> Black]]Find the standard deviation of the heights for the children in a class:
heights = Quantity[{134, 143, 131, 140, 145, 136, 131, 136, 143, 136, 133, 145, 147,
150, 150, 146, 137, 143, 132, 142, 145, 136, 144, 135, 141}, "Centimeters"];ListPlot[heights, Filling -> Axis, AxesLabel -> Automatic]sd = StandardDeviation[heights]//NThe heights within one standard deviation from the mean:
m = Mean[heights];
n = Length[heights];
ListPlot[{heights, {{0, m}, {n, m}}, {{0, m - sd}, {n, m - sd}}, {{0, m + sd}, {n, m + sd}}}, Filling -> {1 -> 0, 3 -> {4}}, Joined -> {False, True, True, True}, PlotStyle -> {Automatic, Automatic, Gray, Gray}, AxesLabel -> Automatic, PlotLegends -> {"heights", "mean", "standard deviation bands"}]Properties & Relations (9)
The square of StandardDeviation is Variance:
Variance[{1, 2, 3, 4}]StandardDeviation[{1, 2, 3, 4}]StandardDeviation is a scaled Norm of deviations from the Mean:
data = RandomReal[10, 20];StandardDeviation[data]Norm[data - Mean[data]] / Sqrt[Length[data] - 1]StandardDeviation is the square root of a scaled CentralMoment:
data = RandomReal[10, 20];StandardDeviation[data]Sqrt[CentralMoment[data, 2] Length[data] / (Length[data] - 1)]StandardDeviation is a scaled RootMeanSquare of the deviations:
data = RandomReal[10, 10];RootMeanSquare[data - Mean[data]]Sqrt[Length[data] / (Length[data] - 1)]StandardDeviation[data]StandardDeviation is the square root of a scaled Mean of squared deviations:
data = RandomReal[5, 20];StandardDeviation[data]Sqrt[Mean[(data - Mean[data]) ^ 2] Length[data] / (Length[data] - 1)]StandardDeviation as a scaled EuclideanDistance from the Mean:
data = RandomReal[10, 20];mean = Mean[data]len = Length[data]EuclideanDistance[data, Table[mean, {len}]] / Sqrt[(len - 1)]StandardDeviation[data]StandardDeviation squared is less than MeanDeviation if all absolute deviations are less than 1:
data = RandomReal[1, 10];MeanDeviation[data]StandardDeviation[data] ^ 2StandardDeviation squared is greater than MeanDeviation if all absolute deviations are greater than 1:
data = Join[RandomReal[{1, 2}, 5], RandomReal[{5, 6}, 5]];MeanDeviation[data]StandardDeviation[data] ^ 2StandardDeviation of a random variable as the square root of Variance:
dist = GammaDistribution[α, β];ev = Sqrt[Variance[dist]]sd = StandardDeviation[dist]Simplify[ev == sd, Assumptions -> α > 0 && β > 0]Possible Issues (1)
StandardDeviation does not handle Missing directly:
data = {1.21, 3.4, 2.15, Missing[], 1.55};
StandardDeviation[data]Convert data to a TabularColumn to use the non-missing values for computation:
StandardDeviation[TabularColumn[data]]Use Query:
Query[StandardDeviation][data]Neat Examples (1)
The distribution of StandardDeviation estimates for 20, 100, and 300 samples:
StandardDeviation[ExponentialDistribution[0.9]]SmoothHistogram[Table[StandardDeviation[RandomVariate[ExponentialDistribution[0.9], {s, 1000}]], {s, {20, 100, 300}}], Filling -> Axis, PlotLegends -> {20, 100, 300}, PlotRange -> {{0, 3}, Automatic}]See Also
Variance Mean MeanDeviation MedianDeviation TrimmedVariance WinsorizedVariance BiweightMidvariance QnDispersion SnDispersion Kurtosis CentralMoment Covariance MeanAround Standardize StandardDeviationFilter Expectation Quantile
Function Repository: PopulationStandardDeviation PooledStandardDeviation PopulationVariance StatisticsSummary StudentTValue
Tech Notes
Related Guides
-
▪
- Descriptive Statistics ▪
- Statistical Data Analysis ▪
- Time Series Processing ▪
- Statistical Moments and Generating Functions ▪
- GPU Computing ▪
- Using the Wolfram Data Drop ▪
- Numbers with Uncertainty ▪
- Date & Time ▪
- Event Series Processing ▪
- Tabular Modeling ▪
- GPU Computing with Apple ▪
- GPU Computing with NVIDIA ▪
- Probability & Statistics with Quantities ▪
- Tabular Transformation ▪
- Symbolic Vectors, Matrices and Arrays
History
Introduced in 2003 (5.0) | Updated in 2007 (6.0) ▪ 2023 (13.3) ▪ 2024 (14.1)
Text
Wolfram Research (2003), StandardDeviation, Wolfram Language function, https://reference.wolfram.com/language/ref/StandardDeviation.html (updated 2024).
CMS
Wolfram Language. 2003. "StandardDeviation." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/StandardDeviation.html.
APA
Wolfram Language. (2003). StandardDeviation. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/StandardDeviation.html
BibTeX
@misc{reference.wolfram_2026_standarddeviation, author="Wolfram Research", title="{StandardDeviation}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/StandardDeviation.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_standarddeviation, organization={Wolfram Research}, title={StandardDeviation}, year={2024}, url={https://reference.wolfram.com/language/ref/StandardDeviation.html}, note=[Accessed: 12-June-2026]}