Wartości odstające

Wartości odstające (czyli outliery) to wartości, które znacząco różnią się od reszty danych. Wartości odstające mogą być szkodliwe dla niektórych analiz statystycznych, ponieważ mogą zniekształcić wyniki. Dlatego ważne jest, aby je wykryć i ewentualnie usunąć lub przeprowadzić dodatkowe analizy, żeby zrozumieć ich przyczyny.

Oto kilka sposobów wykrywania wartości odstających za pomocą biblioteki Pandas:

  • Aby wykryć wartości odstające za pomocą kwartyli, można użyć wbudowanej funkcji DataFrame.describe(), która oblicza różne statystyki opisowe dla danych. Wartości odstające są często definiowane jako te, które są większe niż kwartyl Q3 lub mniejsze niż kwartyl Q1, a więc odchylają się o więcej niż 1,5 razy odległość interkwartylowa (IQR).
import pandas as pd

# Tworzymy przykładowy DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4, 1000], 'B': [4, 5, 6, 7, 8]})

# Obliczamy kwartyle
quartiles = df.describe()['A']['25%'], df.describe()['A']['75%']
iqr = quartiles[1] - quartiles[0]

# Określamy granice, poza którymi znajdują się wartości odstające
lower_bound = quartiles[0] - 1.5 * iqr
upper_bound = quartiles[1] + 1.5 * iqr

# Wyświetlamy wartości odstające
outliers = df[(df['A'] < lower_bound) | (df['A'] > upper_bound)]
print(outliers)
       A  B
4  1000  8

Aby wykryć wartości odstające za pomocą różnicy od średniej, można użyć metody DataFrame.mean() do obliczenia średniej dla kolumny danych, a następnie porównać każdy element z średnią i zakwalifikować go jako wartość odstającą, jeśli różnica jest większa niż określone wcześniej treshold.

import pandas as pd

# Tworzymy przykładowy DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4, 1000], 'B': [4, 5, 6, 7, 8]})

# Obliczamy średnią i odchylenie standardowe
mean = df['A'].mean()
std = df['A'].std()

# Ustalamy treshold jako 3 odchylenia standardowe
treshold = 3 * std

# Wyświetlamy wartości odstające
outliers = df[(df['A'] - mean).abs() > treshold]
print(outliers)
       A  B
4  1000  8