[][carthage] [][cocoadocs] [][cocoadocs] [][cocoadocs] [cocoadocs]: http://cocoadocs.org/docsets/SigmaSwiftStatistics [carthage]: https://github.com/Carthage/Carthage
This library is a collection of functions that perform statistical calculations in Swift.
- average
- covariancePopulation
- covarianceSample
- max
- median
- medianLow
- medianHigh
- min
- pearson
- standardDeviationPopulation
- standardDeviationSample
- sum
- variancePopulation
- varianceSample
There are three ways you can add Sigma to your Xcode project.
Add source (iOS 7+)
Simply add Sigma.swift file to your project.
Setup with Carthage (iOS 8+)
Alternatively, add github "evgenyneu/SigmaSwiftStatistics" ~> 1.1
to your Cartfile and run carthage update
.
Setup with CocoaPods (iOS 8+)
If you are using CocoaPods add this text to your Podfile and run pod install
.
use_frameworks!
pod 'SigmaSwiftStatistics', '~> 1.1'
Here is how to use the library in a WatchKit extension with CocoaPods.
use_frameworks!
target 'YourWatchApp Extension Target Name' do
platform :watchos, '2.0'
pod 'SigmaSwiftStatistics', '~> 1.1'
end
Add import SigmaSwiftStatistics
to your source code if you used Carthage or CocoaPods setup methods.
Returns the maximum value in the array.
Note: returns nil for an empty array.
Sigma.max([1, 8, 3])
// Result: 8
Returns the minimum value in the array.
Note: returns nil for an empty array.
Sigma.min([7, 2, 3])
// Result: 2
Computes sum of values from the array.
Sigma.sum([1, 3, 8])
// Result: 12
Computes arithmetic mean of values in the array.
Note:
- Returns nil for an empty array.
- Same as AVERAGE in Microsoft Excel and Google Docs Sheets.
A = Σ(x) / n
Where:
- n is the number of values.
Sigma.average([1, 3, 8])
// Result: 4
Returns the median value from the array.
Note:
- Returns nil when the array is empty.
- Returns the mean of the two middle values if there is an even number of items in the array.
- Same as MEDIAN in Microsoft Excel and Google Docs Sheets.
Sigma.median([1, 12, 19.5, 3, -5])
// Result: 3
Returns the median value from the array.
Note:
- Returns nil when the array is empty.
- Returns the lower of the two middle values if there is an even number of items in the array.
Sigma.median([1, 12, 19.5, 10, 3, -5])
// Result: 3
Returns the median value from the array.
Note:
- Returns nil when the array is empty.
- Returns the higher of the two middle values if there is an even number of items in the array.
Sigma.median([1, 12, 19.5, 10, 3, -5])
// Result: 10
Computes variance based on a sample.
Note:
- Returns nil when the array is empty or contains a single value.
- Same as VAR, VAR.S or VARA in Microsoft Excel and VAR or VARA in Google Docs Sheets.
s^2 = Σ( (x - m)^2 ) / (n - 1)
Where:
- m is the sample mean.
- n is the sample size.
Sigma.varianceSample([1, 12, 19.5, -5, 3, 8])
// Result: 75.24166667
Computes variance of entire population.
Note:
- Returns nil when the array is empty.
- Same as VAR.P or VARPA in Microsoft Excel and VARP or VARPA in Google Docs Sheets.
σ^2 = Σ( (x - m)^2 ) / n
Where:
- m is the population mean.
- n is the population size.
Sigma.variancePopulation([1, 12, 19.5, -5, 3, 8])
// Result: 62.70138889
Computes standard deviation based on a sample.
Note:
- Returns nil when the array is empty or contains a single value.
- Same as STDEV and STDEV.S in Microsoft Excel and STDEV in Google Docs Sheets.
s = sqrt( Σ( (x - m)^2 ) / (n - 1) )
Where:
- m is the sample mean.
- n is the sample size.
Sigma.standardDeviationSample([1, 12, 19.5, -5, 3, 8])
// Result: 8.674195447801869
Computes standard deviation of entire population.
Note:
- Returns nil for an empty array.
- Same as STDEVP and STDEV.P in Microsoft Excel and STDEVP in Google Docs Sheets.
σ = sqrt( Σ( (x - m)^2 ) / n )
Where:
- m is the population mean.
- n is the population size.
Sigma.standardDeviationPopulation([1, 12, 19.5, -5, 3, 8])
// Result: 7.918420858282849
Computes sample covariance between two variables: x and y.
Note:
- Returns nil if arrays x and y have different number of values.
- Returns nil for empty arrays or arrays containing a single element.
- Same as COVARIANCE.S function in Microsoft Excel.
cov(x,y) = Σ(x - mx)(y - my) / (n - 1)
Where:
- mx is the sample mean of the first variable.
- my is the sample mean of the second variable.
- n is the total number of values.
let x = [1, 2, 3.5, 3.7, 8, 12]
let y = [0.5, 1, 2.1, 3.4, 3.4, 4]
Sigma.covarianceSample(x: x, y: y)
// Result: 5.03
Computes covariance of the entire population between two variables: x and y.
Note:
- Returns nil if arrays x and y have different number of values.
- Returns nil for empty arrays.
- Same as COVAR and COVARIANCE.P functions in Microsoft Excel and COVAR in Google Docs Sheets.
cov(x,y) = Σ(x - mx)(y - my) / n
Where:
- mx is the population mean of the first variable.
- my is the population mean of the second variable.
- n is the total number of values.
let x = [1, 2, 3.5, 3.7, 8, 12]
let y = [0.5, 1, 2.1, 3.4, 3.4, 4]
Sigma.covariancePopulation(x: x, y: y)
// Result: 4.19166666666667
Calculates the Pearson product-moment correlation coefficient between two variables: x and y.
Note:
- Returns nil if arrays x and y have different number of values.
- Returns nil for empty arrays.
- Same as CORREL and PERSON functions in Microsoft Excel and Google Docs Sheets.
p(x,y) = cov(x,y) / (σx * σy)
Where:
- cov is the population covariance.
- σ is the population standard deviation.
let x = [1, 2, 3.5, 3.7, 8, 12]
let y = [0.5, 1, 2.1, 3.4, 3.4, 4]
Sigma.pearson(x: x, y: y)
// Result: 0.843760859352745
You can type a sigma letter σ
instead of Sigma
. For example:
σ.average([1, 2])
σ.standardDeviationSample([1, 12, 19.5, -5, 3, 8])
If you need help or want to extend the library feel free to create an issue or submit a pull request.
Sigma is released under the MIT License.