Skip to content

Instantly share code, notes, and snippets.

@benjaminhallock
Last active January 30, 2016 07:19
Show Gist options
  • Save benjaminhallock/3a69012d5dec960f2e85 to your computer and use it in GitHub Desktop.
Save benjaminhallock/3a69012d5dec960f2e85 to your computer and use it in GitHub Desktop.
Swift Stats Conversion Playground
//: Playground - noun: a place where people can play
import UIKit
let a : Double = 1.0 / 81.0
var b : Double = 0.0
for var i = 0; i < 729; i++
{
b = a + b
}
print(b)
let c : Float = 1.0 / 81.0
var d : Float = 0.0
for var i = 0; i < 729; i++
{
d = c + d
}
print(d)
//START
var xArray = [7,5,8,3,6,10,12,4,9,16,18];
var yArray = [21,15,24,9,18,30,36,12,27,45,54];
//xArray = [1,1,3,4,7,7,9,12]
//yArray = xArray
let xArraySorted = xArray.sort()
let yArraySorted = yArray.sort()
var Q1: Float
var Q2: Float
var Q3: Float
var x1 = 1.0 * (Float(xArray.count) + 1.0) / 4.0
var x2 = 2.0 * (Float(xArray.count) + 1.0) / 4.0
var x3 = 3.0 * (Float(xArray.count) + 1.0) / 4.0
//Weird rule if it is .5, you have to average the two numbers in that index. Otherwise round.
if (x1 % 0.5 == 0 && x1 % 1 != 0)
{
let x11 : Int = Int(x1)
let x22 : Int = Int(round(x1))
Q1 = Float(xArraySorted[x11-1] + xArraySorted[x22-1])/2.0
}
else
{
let x11 : Int = Int(round(x1))
Q1 = Float(xArraySorted[x11-1])
}
if (x2 % 0.5 == 0 && x2 % 1 != 0)
{
let x11 :Int = Int(x2)
let x22 :Int = Int(round(x2))
Q2 = Float(xArraySorted[x11-1] + xArraySorted[x22-1])/2.0
}
else
{
let x11 : Int = Int(round(x2))
Q2 = Float(xArraySorted[x11-1])
}
if (x3 % 0.5 == 0 && x3 % 1 != 0)
{
let x11 :Int = Int(x3)
let x22 :Int = Int(round(x3))
Q3 = Float(xArraySorted[x11-1] + xArraySorted[x22-1])/2.0
}
else
{
let x11 : Int = Int(round(x3))
Q3 = Float(xArraySorted[x11-1])
}
let fiveNumberSumary = [xArray.first!, Q1, Q2, Q3, xArray.last!]
if (xArray.count != yArray.count)
{
print("NOT EQUAL AMOUNT OF NUMBERS")
exit(0)
}
var xAverage : Float = 0;
var yAverage : Float = 0;
for x in xArray { xAverage = Float(x) + xAverage }
for y in yArray { yAverage = Float(y) + yAverage }
print("AVERAGES_________________________")
xAverage/Float(xArray.count)
xAverage = xAverage/Float(xArray.count)
yAverage = yAverage/Float(yArray.count)
var XMinusAvg = [Float]()
var YMinusAvg = [Float]()
for x in xArray { XMinusAvg.append(Float(x) - xAverage) }
for y in yArray { YMinusAvg.append(Float(y) - yAverage) }
XMinusAvg
YMinusAvg
var xTimesY = [Float]()
for x in XMinusAvg
{
let y = YMinusAvg[XMinusAvg.indexOf(x)!]
xTimesY.append(x*y)
}
xTimesY
var sum : Float = 0.0
for product in xTimesY { sum = product + sum }
//Coveriance
print("COVERIANCE____________________")
let cov = sum/Float(xArray.count - 1)
var sumOfSquareX : Float = 0.0
var sumOfSquareY : Float = 0.0
for x in XMinusAvg { sumOfSquareX = x * x + sumOfSquareX }
for y in YMinusAvg { sumOfSquareY = y * y + sumOfSquareY }
sumOfSquareX
sumOfSquareY
print("SAMPLE VARIANCE_______________")
let SV = Float(sumOfSquareX)/Float(xArray.count - 1)
print("STANDARD DEVIATION_______________")
let SD = sqrt(SV)
let Sx = sumOfSquareX/Float(XMinusAvg.count - 1)
let Sy = sumOfSquareY/Float(YMinusAvg.count - 1)
print("Sample Coefficient Correlation___________")
let CoCo = cov/(Sx * Sy)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment