转载

[iOS] SigmaSwiftStatistics:针对统计计算公式的函数库

σ (sigma) - statistics library written in Swift

This library is a collection of functions that perform statistical calculations in Swift.

  • average
  • covariancePopulation
  • covarianceSample
  • max
  • median
  • medianHigh
  • medianLow
  • min
  • pearson
  • percentile1
  • standardDeviationPopulation
  • standardDeviationSample
  • sum
  • variancePopulation
  • varianceSample

[iOS] SigmaSwiftStatistics:针对统计计算公式的函数库

Setup (Swift 3.0)

There are four ways you can add Sigma to your project.

Add source (iOS 7+)

Simply addSigma.swift file to your project.

Setup with Carthage (iOS 8+)

Alternatively, add github "evgenyneu/SigmaSwiftStatistics" ~> 2.0 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! target 'Your target name' pod 'SigmaSwiftStatistics', '~> 2.0' 

Here is how to use the library in a WatchKit extension with CocoaPods.

use_frameworks!  target 'YourWatchApp Extension Target Name' do   platform :watchos, '3.0'   pod 'SigmaSwiftStatistics', '~> 2.0' end 

Setup with Swift Package Manager

Add the following text to your Package.swift file and run swift build .

import PackageDescription  let package = Package(     name: "YourPackageName",     targets: [],     dependencies: [         .Package(url: "https://github.com/evgenyneu/SigmaSwiftStatistics.git",                  versions: Version(2,0,0)..<Version(3,0,0))     ] )

Legacy Swift versions

Setup aprevious version of the library if you use an older version of Swift.

Usage

Add import SigmaSwiftStatistics to your source code if you used Carthage or CocoaPods setup methods.

Max

Returns the maximum value in the array.

Note: returns nil for an empty array.

Sigma.max([1, 8, 3]) // Result: 8

Min

Returns the minimum value in the array.

Note: returns nil for an empty array.

Sigma.min([7, 2, 3]) // Result: 2

Sum

Computes sum of values from the array.

Sigma.sum([1, 3, 8]) // Result: 12

Average / mean

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.

Formula

A = Σ(x) / n

Where:

  • n is the number of values.
Sigma.average([1, 3, 8]) // Result: 4

Median

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

Median low

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.medianLow([1, 12, 19.5, 10, 3, -5]) // Result: 3

Median high

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.medianHigh([1, 12, 19.5, 10, 3, -5]) // Result: 10

Sample variance

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.

Formula

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

Population variance

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.

Formula

σ^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

Sample standard deviation

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.

Formula

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

Population standard deviation

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.

Formula

σ = 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

Sample covariance

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.

Formula

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

Population covariance

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.

Formula

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

Pearson correlation coefficient

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.

Formula

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

Percentile 1

Calculates the Percentile value for the given dataset.

Note:

  • Returns nil when the values array is empty.
  • Returns nil when supplied percentile parameter is negative or greater than 1.
  • Same as PERCENTILE or PERCENTILE.INC in Microsoft Excel and PERCENTILE in Google Docs Sheets.

See thePercentile 1 method documentation for more information.

// Calculate 40th percentile Sigma.percentile1(values: [35, 20, 50, 40, 15], percentile: 0.4) // Result: 29

Shorter syntax

You can type a sigma letter σ instead of Sigma . For example:

σ.average([1, 2]) σ.standardDeviationSample([1, 12, 19.5, -5, 3, 8]) 

Feedback is welcome

If you need help or want to extend the library feel free to create an issue or submit a pull request.

Contributors

  • Thomas Fankhauser
  • John Clema

License

Sigma is released under theMIT License.

原文  https://github.com/gabrielPeart/SigmaSwiftStatistics
正文到此结束
Loading...