Logo

RSQ_q

Updated 2023-11-02 12:47:57.697000

Syntax

SELECT [westclintech].[wct].[RSQ_q] (
   <@Known_y_Known_x_RangeQuery, nvarchar(4000),>)

Description

Use the scalar function RSQ_q to return the Pearson product moment correlation coefficient through data points in known-y's and known-x's. The r-squared value can be interpreted as the proportion of the variance in y attributable to the variance in x. The equation for the Pearson product moment correlation coefficient is:

r_{xy}=\frac{\sum(x-\bar{x})(y-\bar{y})}{\sqrt{\sum(x-\bar{x})^2\sum(y-\bar{y})^2}}

RSQ returns r2 which is the square of this correlation coefficient

Arguments

@Known_y_Known_x_RangeQuery

the select statement, as text, used to determine the known x- and y-values to be used in the RSQ_q calculation.

Return Type

float

Remarks

If the known-y dataset is empty or the known-x dataset is empty, then RSQ_q returns an error.

If the known-y dataset contains a different number of data points than the known-x dataset, then RSQ_q returns an error.

If the variance of dataset 1 or the variance of dataset 2 is zero, RSQ_q will return a divide by zero error.

Examples

Calculate the RSQ value on a normalized table:

CREATE TABLE #s1

(

    [Student] [nvarchar](50) NOT NULL,

    [subject] [nvarchar](50) NOT NULL,

    [grade] [float] NULL

);

INSERT INTO #S1

VALUES

('Student 01', 'Math', 97.19);

INSERT INTO #S1

VALUES

('Student 02', 'Math', 94.07);

INSERT INTO #S1

VALUES

('Student 03', 'Math', 92.78);

INSERT INTO #S1

VALUES

('Student 04', 'Math', 91.86);

INSERT INTO #S1

VALUES

('Student 05', 'Math', 91.12);

INSERT INTO #S1

VALUES

('Student 06', 'Math', 90.48);

INSERT INTO #S1

VALUES

('Student 07', 'Math', 89.9);

INSERT INTO #S1

VALUES

('Student 08', 'Math', 89.36);

INSERT INTO #S1

VALUES

('Student 09', 'Math', 88.86);

INSERT INTO #S1

VALUES

('Student 10', 'Math', 88.37);

INSERT INTO #S1

VALUES

('Student 11', 'Math', 87.89);

INSERT INTO #S1

VALUES

('Student 12', 'Math', 87.42);

INSERT INTO #S1

VALUES

('Student 13', 'Math', 86.95);

INSERT INTO #S1

VALUES

('Student 14', 'Math', 86.47);

INSERT INTO #S1

VALUES

('Student 15', 'Math', 85.98);

INSERT INTO #S1

VALUES

('Student 16', 'Math', 85.46);

INSERT INTO #S1

VALUES

('Student 17', 'Math', 84.92);

INSERT INTO #S1

VALUES

('Student 18', 'Math', 84.32);

INSERT INTO #S1

VALUES

('Student 19', 'Math', 83.65);

INSERT INTO #S1

VALUES

('Student 20', 'Math', 82.86);

INSERT INTO #S1

VALUES

('Student 21', 'Math', 81.85);

INSERT INTO #S1

VALUES

('Student 22', 'Math', 80.32);

INSERT INTO #S1

VALUES

('Student 01', 'Science', 97.64);

INSERT INTO #S1

VALUES

('Student 02', 'Science', 95.02);

INSERT INTO #S1

VALUES

('Student 03', 'Science', 93.94);

INSERT INTO #S1

VALUES

('Student 04', 'Science', 93.17);

INSERT INTO #S1

VALUES

('Student 05', 'Science', 92.54);

INSERT INTO #S1

VALUES

('Student 06', 'Science', 92);

INSERT INTO #S1

VALUES

('Student 07', 'Science', 91.51);

INSERT INTO #S1

VALUES

('Student 08', 'Science', 91.06);

INSERT INTO #S1

VALUES

('Student 09', 'Science', 90.64);

INSERT INTO #S1

VALUES

('Student 10', 'Science', 90.23);

INSERT INTO #S1

VALUES

('Student 11', 'Science', 89.83);

INSERT INTO #S1

VALUES

('Student 12', 'Science', 89.43);

INSERT INTO #S1

VALUES

('Student 13', 'Science', 89.04);

INSERT INTO #S1

VALUES

('Student 14', 'Science', 88.64);

INSERT INTO #S1

VALUES

('Student 15', 'Science', 88.22);

INSERT INTO #S1

VALUES

('Student 16', 'Science', 87.79);

INSERT INTO #S1

VALUES

('Student 17', 'Science', 87.33);

INSERT INTO #S1

VALUES

('Student 18', 'Science', 86.83);

INSERT INTO #S1

VALUES

('Student 19', 'Science', 86.26);

INSERT INTO #S1

VALUES

('Student 20', 'Science', 85.6);

INSERT INTO #S1

VALUES

('Student 21', 'Science', 84.75);

INSERT INTO #S1

VALUES

('Student 22', 'Science', 83.47);

INSERT INTO #S1

VALUES

('Student 01', 'Foreign Language', 96.52);

INSERT INTO #S1

VALUES

('Student 02', 'Foreign Language', 92.64);

INSERT INTO #S1

VALUES

('Student 03', 'Foreign Language', 91.05);

INSERT INTO #S1

VALUES

('Student 04', 'Foreign Language', 89.91);

INSERT INTO #S1

VALUES

('Student 05', 'Foreign Language', 88.99);

INSERT INTO #S1

VALUES

('Student 06', 'Foreign Language', 88.19);

INSERT INTO #S1

VALUES

('Student 07', 'Foreign Language', 87.47);

INSERT INTO #S1

VALUES

('Student 08', 'Foreign Language', 86.81);

INSERT INTO #S1

VALUES

('Student 09', 'Foreign Language', 86.18);

INSERT INTO #S1

VALUES

('Student 10', 'Foreign Language', 85.58);

INSERT INTO #S1

VALUES

('Student 11', 'Foreign Language', 84.99);

INSERT INTO #S1

VALUES

('Student 12', 'Foreign Language', 84.4);

INSERT INTO #S1

VALUES

('Student 13', 'Foreign Language', 83.82);

INSERT INTO #S1

VALUES

('Student 14', 'Foreign Language', 83.22);

INSERT INTO #S1

VALUES

('Student 15', 'Foreign Language', 82.61);

INSERT INTO #S1

VALUES

('Student 16', 'Foreign Language', 81.97);

INSERT INTO #S1

VALUES

('Student 17', 'Foreign Language', 81.29);

INSERT INTO #S1

VALUES

('Student 18', 'Foreign Language', 80.55);

INSERT INTO #S1

VALUES

('Student 19', 'Foreign Language', 79.72);

INSERT INTO #S1

VALUES

('Student 20', 'Foreign Language', 78.74);

INSERT INTO #S1

VALUES

('Student 21', 'Foreign Language', 77.49);

INSERT INTO #S1

VALUES

('Student 22', 'Foreign Language', 75.6);

INSERT INTO #S1

VALUES

('Student 01', 'History', 98.09);

INSERT INTO #S1

VALUES

('Student 02', 'History', 95.97);

INSERT INTO #S1

VALUES

('Student 03', 'History', 95.09);

INSERT INTO #S1

VALUES

('Student 04', 'History', 94.47);

INSERT INTO #S1

VALUES

('Student 05', 'History', 93.96);

INSERT INTO #S1

VALUES

('Student 06', 'History', 93.52);

INSERT INTO #S1

VALUES

('Student 07', 'History', 93.13);

INSERT INTO #S1

VALUES

('Student 08', 'History', 92.77);

INSERT INTO #S1

VALUES

('Student 09', 'History', 92.42);

INSERT INTO #S1

VALUES

('Student 10', 'History', 92.09);

INSERT INTO #S1

VALUES

('Student 11', 'History', 91.77);

INSERT INTO #S1

VALUES

('Student 12', 'History', 91.45);

INSERT INTO #S1

VALUES

('Student 13', 'History', 91.13);

INSERT INTO #S1

VALUES

('Student 14', 'History', 90.8);

INSERT INTO #S1

VALUES

('Student 15', 'History', 90.47);

INSERT INTO #S1

VALUES

('Student 16', 'History', 90.12);

INSERT INTO #S1

VALUES

('Student 17', 'History', 89.74);

INSERT INTO #S1

VALUES

('Student 18', 'History', 89.34);

INSERT INTO #S1

VALUES

('Student 19', 'History', 88.88);

INSERT INTO #S1

VALUES

('Student 20', 'History', 88.34);

INSERT INTO #S1

VALUES

('Student 21', 'History', 87.66);

INSERT INTO #S1

VALUES

('Student 22', 'History', 86.62);

INSERT INTO #S1

VALUES

('Student 01', 'Literature', 98.09);

INSERT INTO #S1

VALUES

('Student 02', 'Literature', 95.97);

INSERT INTO #S1

VALUES

('Student 03', 'Literature', 95.09);

INSERT INTO #S1

VALUES

('Student 04', 'Literature', 94.47);

INSERT INTO #S1

VALUES

('Student 05', 'Literature', 93.96);

INSERT INTO #S1

VALUES

('Student 06', 'Literature', 93.52);

INSERT INTO #S1

VALUES

('Student 07', 'Literature', 93.13);

INSERT INTO #S1

VALUES

('Student 08', 'Literature', 92.77);

INSERT INTO #S1

VALUES

('Student 09', 'Literature', 92.42);

INSERT INTO #S1

VALUES

('Student 10', 'Literature', 92.09);

INSERT INTO #S1

VALUES

('Student 11', 'Literature', 91.77);

INSERT INTO #S1

VALUES

('Student 12', 'Literature', 91.45);

INSERT INTO #S1

VALUES

('Student 13', 'Literature', 91.13);

INSERT INTO #S1

VALUES

('Student 14', 'Literature', 90.8);

INSERT INTO #S1

VALUES

('Student 15', 'Literature', 90.47);

INSERT INTO #S1

VALUES

('Student 16', 'Literature', 90.12);

INSERT INTO #S1

VALUES

('Student 17', 'Literature', 89.74);

INSERT INTO #S1

VALUES

('Student 18', 'Literature', 89.34);

INSERT INTO #S1

VALUES

('Student 19', 'Literature', 88.88);

INSERT INTO #S1

VALUES

('Student 20', 'Literature', 88.34);

INSERT INTO #S1

VALUES

('Student 21', 'Literature', 87.66);

INSERT INTO #S1

VALUES

('Student 22', 'Literature', 86.62);

select wct.RSQ_q('Select a.grade, b.grade

      from #s1 a, #s1 b

      where a.subject = ' + Char(39) + 'Math' + Char(39) + ' and

      b.subject = ' + Char(39) + 'Science' + Char(39) + 'and

      a.student = b.student');

This produces the following result.

{"columns":[{"field":"column 1","headerClass":"ag-right-aligned-header","cellClass":"ag-right-aligned-cell"}],"rows":[{"column 1":"0.999998988550504"}]}