PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Korzystanie z funkcji korelacji PostgreSQL

Korzystanie z funkcji korelacji w PostgreSQL

Jedną z funkcji, która może być użyteczna przy określaniu, w jaki sposób dwie liczby odnoszą się do siebie, jest funkcja korelacji.

W tym samouczku wyjaśnimy funkcję corr() PostrgreSQL, a także pokażemy ją w rzeczywistych zastosowaniach.

Współczynnik korelacji to szeroko stosowana metoda określania siły związku między dwiema liczbami lub dwoma zestawami liczb. Współczynnik ten jest obliczany jako liczba od -1 do 1,1 oznacza najsilniejszą możliwą korelację dodatnią, a -1 oznacza najsilniejszą możliwą korelację ujemną.

Dodatnia korelacja oznacza, że ​​wraz ze wzrostem jednej liczby, druga liczba również wzrośnie.

Ujemna korelacja oznacza, że ​​wraz ze wzrostem jednej liczby druga liczba maleje.

To, czy wynik drugiej liczby jest SPOWODOWANY przez pierwszą, nie jest tutaj określane, po prostu wyniki dwóch liczb są ze sobą zgodne.

Jeśli formuła zwraca 0, to nie ma absolutnie ŻADNEJ korelacji między dwoma zestawami liczb.

W przykładzie, w którym współczynnik korelacji wynosi 0,7, z każdym wzrostem o 1 liczby na osi x liczba na osi y wzrasta o 0,7.

Im większa liczba, tym silniejsza korelacja. To, czy jest poprzedzone znakiem „-”, nie ma znaczenia.

Jednym z najpopularniejszych współczynników korelacji jest współczynnik korelacji Pearsona, a więcej informacji można znaleźć w innym samouczku tutaj.

Po przeprowadzeniu kilku testów funkcji korelacji postgresql okazało się, że wszystkie trzy razy wyliczyły współczynnik korelacji Pearsona.

Podczas korzystania z funkcji PostgreSQL należy pamiętać, że jest to funkcja agregująca. Oznacza to, że obliczy korelację całości dwóch serii liczb. Nie wyświetli korelacji dwóch liczb w serii.

Korzystanie z funkcji korelacji już w postgresie jest całkiem proste.

Użyliśmy go jako funkcji zbiorczej dwóch serii liczb w celu określenia współczynnika korelacji w serii czasu aktywności w witrynie i przychodów w źródle demo Chartio, które mamy na naszej stronie.

Wykreślając te dwa pomiary na wykresie punktowym, wyłania się wzór dodatniej korelacji. Użycie współczynnika korelacji funkcji PostgreSQL pokazuje wynik 0,9, co jest prawie bezpośrednią korelacją.

To zapytanie wygląda tak:

    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

W tym konkretnym przypadku będziesz musiał użyć funkcji agregacji metryk zebranych w podzapytaniu. Jest to bardzo proste, wystarczy dodać dwie kolumny, które próbujesz określić korelację między nawiasami oddzielonymi kolumną, a wynikiem będzie współczynnik korelacji obliczony przez funkcję agregacji, która, jak wskazano w poniższym samouczku, jest prawie dokładnie taki sam jak Formuła Pearsona.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wydajność OLTP od PostgreSQL 8.3

  2. Jak włączyć pracę php z postgresql?

  3. Rozpakuj tablicę o jeden poziom

  4. Tworzenie PostgreSQL dla Windows, część 2

  5. ActiveRecord::StatementInvalid:PG InFailedSqlTransaction