Skip to content

Instantly share code, notes, and snippets.

@airicbear
Created March 28, 2022 22:07
Show Gist options
  • Save airicbear/370f106d8327fd647c81a61937d8b019 to your computer and use it in GitHub Desktop.
Save airicbear/370f106d8327fd647c81a61937d8b019 to your computer and use it in GitHub Desktop.
Linear fit on x and y, in y = mx + b form
function fit(x,y)
= mean(x)
= mean(y)
# Calculation of fit parameters
m = sum([(xi - x̄) * yi for (xi, yi) zip(x, y)]) / sum([(xi - x̄)^2 for xi x])
b =- m*
# Calculation of standard error
D = sum([(xi - x̄)^2 for xi x])
F = sum([(yi - ȳ)^2 for yi y])
E = sum([(xi - x̄) * yi for (xi, yi) zip(x, y)])
n = length(x)
Δm² = (1 / (n - 2)) * ((F*D - E^2) / D^2)
Δb² = (1 / (n - 2)) * (D / n +^2) * ((F*D - E^2) / D^2)
Δm = sqrt(Δm²)
Δb = sqrt(Δb²)
Dict([:m => m, :Δm => Δm, :b => b, :Δb => b])
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment