Last Updated on

Although there is the
Statistics.std function, this post shows how to find the **Standard Deviation** in Julia using custom codes.

## What is Standard Deviation?

The Standard Deviation is a value that shows how much the values deviate from their mean. A low value means less amount of variation or dispersion of sample values, while a high value means the values are spread out over a wider range.

## Julia Codes Standard Deviation

We are going to use the Statistics Package for the mean function. Let us begin with a sample of integers. For proceeding, please ensure we have Julia installed in our system.

1 2 3 4 |
using Statistics # Values don't need to sorted samples = [11, 11, 14, 17, 25, 28, 43, 43] |

Then, we find the mean using the Statistics.mean function.

1 |
samples_mean = mean(samples) |

Next, find the number of values in the sample.

1 |
samples_size = length(samples) |

For each value, we subtract it with the samples_mean and square the difference. The Standard Deviation is relative to the mean of the sample values. Then, we sum up these results.

1 2 |
samples = map(x -> (x - samples_mean)^2, samples) samples_sum = sum(samples) |

Lastly, we find the square root of the sum over samples_size - 1 to find the Standard Deviation in Julia.

1 2 3 |
samples_std = sqrt(samples_sum / (samples_size - 1)) println(samples_std) |

## Create a Standard Deviation Function

To reuse the codes anywhere, we can put them in a function for finding the Standard Deviation of sample values. We name the function my_std. Its definition is as follows. We still need the Statistics Package for the mean function.

1 2 3 4 5 6 7 8 |
function my_std(samples) samples_mean = mean(samples) samples_size = length(samples) samples = map(x -> (x - samples_mean)^2, samples) samples_sum = sum(samples) samples_std = sqrt(samples_sum / (samples_size - 1)) return samples_std end |

The complete Julia codes for finding the Standard Deviation, including the function’s usage, are as follows. Notice the function comes before its usage.

1 2 3 4 5 6 7 8 9 10 11 12 13 |
using Statistics function my_std(samples) samples_mean = mean(samples) samples_size = length(samples) samples = map(x -> (x - samples_mean)^2, samples) samples_sum = sum(samples) samples_std = sqrt(samples_sum / (samples_size - 1)) return samples_std end samples = [11, 11, 14, 17, 25, 28, 43, 43] println(my_std(samples)) |

The codes produce the following output.

1 |
13.234154946306814 |

If we know how to complete the Standard Deviation, creating codes in Julia to find the Standard Deviation comes naturally.