Перейти к содержимому
Последнее обновление

REGR_R2

Описание​

Возвращает коэффициент детерминации линейной регрессии, вычисленной по парам (y, x) без значений NULL в группе, где x является независимой переменной, а y является зависимой переменной.

Синтаксис​

REGR_R2(<y>, <x>)

Параметры​

ПараметрОписание
<y>Зависимая переменная. Поддерживаемый тип: Double.
<x>Независимая переменная. Поддерживаемый тип: Double.

Возвращаемое значение​

Возвращает значение типа Double, представляющее коэффициент детерминации (R-squared).

  • Если REGR_COUNT(y, x) < 1, функция возвращает NULL.
  • Если VAR_POP(x) = 0, функция возвращает NULL.
  • Если VAR_POP(y) = 0, функция возвращает 1.
  • В остальных случаях функция возвращает POWER(CORR(y, x), 2).

Пример​

CREATE TABLE test_regr (
`id` int,
`x` double,
`y` double
) DUPLICATE KEY (`id`)
DISTRIBUTED BY HASH(`id`) BUCKETS AUTO
PROPERTIES (
"replication_allocation" = "tag.location.default: 1"
);

INSERT INTO test_regr VALUES
(1, 0, NULL),
(2, 1, 3),
(2, 2, 5),
(2, 3, 7),
(2, 4, 9),
(2, 5, NULL),
(3, 1, 5),
(3, 1, 7),
(4, 1, 5),
(4, 2, 5);
SELECT id, REGR_R2(y, x) FROM test_regr GROUP BY id ORDER BY id;
+------+---------------------+
| id | REGR_R2(y, x) |
+------+---------------------+
| 1 | NULL |
| 2 | 1.0 |
| 3 | NULL |
| 4 | 1.0 |
+------+---------------------+

Группа 3 иллюстрирует случай VAR_POP(x) = 0, поэтому результат равен NULL, а группа 4 иллюстрирует случай VAR_POP(y) = 0, поэтому результат равен 1.0.