PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Използване на корелационната функция на PostgreSQL

Използване на корелационна функция в PostgreSQL

Една функция, която може да бъде полезна при определянето на връзката между две числа, е корелационната функция.

В този урок ще обясним функцията corr() PostrgreSQL, както и ще я покажем в реалния свят.

Коефициентът на корелация е широко използван метод за определяне на силата на връзката между две числа или два набора от числа. Този коефициент се изчислява като число между -1 и 1. 1 е възможно най-силната положителна корелация, а -1 е възможно най-силната отрицателна корелация.

Положителната корелация означава, че с увеличаване на едно число, второто число също ще се увеличава.

Отрицателна корелация означава, че с увеличаване на едно число, второто число намалява.

Тук не се определя дали резултатът от второто число е ПРИЧИНЕН или не от първото, просто резултатите от двете числа се случват съвместно един с друг.

Ако формулата върне 0, тогава няма абсолютно НИКАКВА корелация между двата набора от числа.

В пример, при който коефициентът на корелация е .7, за всяко увеличение с 1 на числото по оста x числото по оста y се увеличава с .7.

Колкото по-голямо е числото, толкова по-силна е корелацията. Дали е предшестван от знака „-“ или не, няма значение.

Един от най-популярните коефициенти на корелация е коефициентът на корелация на Пиърсън и повече информация можете да намерите в друг урок тук.

След като проведохме няколко теста на корелационната функция postgresql, тя се оказа равна на изчислението на коефициента на корелация на Пиърсън и трите пъти.

Докато използвате функцията PostgreSQL, важната забележка е, че тя е функция за агрегиране. Това означава, че ще изчисли корелацията на съвкупностите на две серии от числа. Няма да показва корелацията на две числа в поредицата.

Използването на корелационната функция вече в postgres е доста лесно.

Използвахме го като обобщена функция от две серии от числа, за да определим коефициента на корелация за поредица от времеви дейности на уебсайта и приходи в демо източник на Chartio, който имаме на нашия сайт.

Начертавайки тези две измервания върху диаграма на разсейване, се появява модел на положителна корелация. Използването на коефициента на корелация функцията PostgreSQL показва резултат от 0,9, което е почти пряка корелация.

Тази заявка изглежда така:

    SELECT
        corr("Amount", "Activities") as "Corr Coef Using PGSQL Func"

    FROM(
    SELECT
        DATE_TRUNC('day', p.payment_date)::DATE AS "Day",
        SUM(p.amount) AS "Amount",
        COUNT(DISTINCT a.activity_id) AS "Activities"
    FROM
        public.payments p
        INNER JOIN public.subscriptions s ON p.subscription_id = s.subscription_id
        INNER JOIN public.users u ON s.user_id = u.user_id
        INNER JOIN public.activity a ON a.user_id = u.user_id

    GROUP BY 1) as a

В този конкретен случай ще трябва да използвате функцията за агрегиране на показателите, събрани в подзаявка. Това е много лесно, просто добавете двете колони, на които се опитвате да определите корелацията между скоби, разделени от колона, и вашият изход ще бъде коефициентът на корелация, изчислен от функцията за агрегиране, която, както посочихме в следващия урок, е почти точно същото като формулата на Пиърсън.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL масив от елементи, всеки от които е външен ключ

  2. Показване на избраните резултати вертикално в psql, както се прави от \G на MySQL

  3. Таблица извадка и други методи за получаване на произволни кортежи

  4. Postgres връзката е затворена грешка в Spring Boot

  5. Свържете се с база данни PostgreSQL в Docker контейнер