kstats-correlation
Correlation coefficients, covariance/correlation matrices, and simple linear regression.
Pearson, Spearman, Kendall (O(n log n)), point-biserial, and partial correlation — each returns a
CorrelationResultwith coefficient, p-value, and sample size.covarianceMatrix()andcorrelationMatrix()for multivariate analysis.simpleLinearRegression()fits y = intercept + slope * x and returns R², standard errors, residuals, and apredict()function.
Getting started
val x = doubleArrayOf(1.0, 2.0, 3.0, 4.0, 5.0)
val y = doubleArrayOf(2.1, 3.9, 6.2, 7.8, 10.1)
val r = pearsonCorrelation(x, y)
r.coefficient // 0.999...
r.pValue // < 0.001
val reg = simpleLinearRegression(x, y)
reg.slope // ~2.0
reg.intercept // ~0.04
reg.rSquared // 0.999...
reg.predict(6.0) // predicted y for x = 6Correlation functions
pearsonCorrelation(x, y)— Pearson product-moment correlationspearmanCorrelation(x, y)— Spearman rank correlationkendallTau(x, y)— Kendall rank correlation (O(n log n) merge-sort algorithm)pointBiserialCorrelation(x, y)— point-biserial correlation (overloads forDoubleArray,BooleanArray,IntArray)partialCorrelation(target, control)— partial correlation controlling for a third variable
Matrices
correlationMatrix(vararg variables)— Pearson correlation matrixcovarianceMatrix(vararg variables, kind)— covariance matrix (sample or population)covariance(x, y, kind)— pairwise covariance
Regression
simpleLinearRegression(x, y)— returnsSimpleLinearRegressionResultwithintercept,slope,rSquared,residuals,standardErrors,residualStandardError, andpredict(x).