KONTROLA JAKOŚCI DANYCH
Zanim przystąpi się do analizy statystycznej, warto sprawdzić, czy wczytane dane nie zawierają błędów, które mogłyby wypaczyć wyniki – np. kolumny liczbowej, która w rzeczywistości jest zakodowaną kategorią, wartości wyraźnie odstających od reszty, niestandardowych kodów braków danych (np. -99) wymieszanych z prawdziwymi wartościami, czy pojedynczych wpisów niepasujących do reszty kolumny (np. wartość ujemna w kolumnie wiek).
Kontrola jakości danych skanuje wszystkie kolumny aktywnego arkusza, oblicza dla każdej z nich zwięzłe podsumowanie statystyczne, a następnie oddaje to podsumowanie modelowi językowemu (AI), który wskazuje, co w danych wygląda podejrzanie i dlaczego. Funkcja nie modyfikuje danych – jedynie zwraca opisową listę spostrzeżeń do przejrzenia przez użytkownika.
Co jest sprawdzane
- Kolumny liczbowe wyglądające na zakodowaną kategorię – gdy kolumna zawiera wyłącznie liczby całkowite, a liczba różnych wartości jest niewielka względem liczby obserwacji.
- Wartości odstające – wykrywane metodą rozstępu międzykwartylowego (IQR): za odstającą uznawana jest wartość leżąca poniżej \(Q_1-1{,}5\cdot IQR\) lub powyżej \(Q_3+1{,}5\cdot IQR\).
- Podejrzane, powtarzające się wartości skrajne – wartość leżąca daleko poza resztą rozkładu, która pojawia się w kolumnie więcej niż raz, co odróżnia ją od pojedynczego, przypadkowego odstępstwa i sugeruje niestandardowy kod braku danych (np. -99, 999).
- Sensowność wartości względem nazwy kolumny – np. czy kolumna wiek nie zawiera wartości ujemnych, czy kolumna wyglądająca na pytanie tak/nie nie zawiera innych wartości. Tego rodzaju ocena wymaga zrozumienia znaczenia nazwy kolumny, dlatego wykonuje ją wyłącznie model AI na podstawie przekazanego podsumowania – nie jest to reguła sprawdzana bezpośrednio przez program.
Jak uruchomić kontrolę
Okno kontroli jakości danych wywołujemy poprzez menu Dane\(\to\)Kontrola jakości danych...

Wykonanie i interpretacja
Przykład 1. (plik Data_Quality_Check.csv)
Plik zawiera 1000 wierszy (osób badanych) i 10 kolumn opisujących typowe dane medyczne: wiek, płeć, wzrost, wagę, ciśnienie skurczowe, grupę krwi, obecność choroby przewlekłej, liczbę wizyt, wynik testu psychometrycznego oraz tętno spoczynkowe. W każdej kolumnie celowo umieszczono po kilka nietypowych wartości – tabela poniżej pokazuje, jakiego rodzaju problem reprezentuje każda z nich. Po wczytaniu pliku wybieramy Dane\(\to\)Kontrola jakości danych... i uruchamiamy analizę z modelem domyślnym.
| Kolumna | Rodzaj problemu | Przykładowe wartości |
| wiek | wartości odstające / niemożliwe | \(-2\), \(0\), \(150\), \(199\) |
| plec | wartość spoza zbioru kategorii (K/M) | "3", "nieznana" |
| wzrost_cm | wartości odstające (błąd zapisu) | \(17{,}0\) (zam. \(170\)), \(1210{,}0\) |
| waga_kg | powtarzający się podejrzany kod | \(-99\) (5\(\times\) w różnych wierszach) |
| cisnienie_skurczowe | wartości odstające | \(255\), \(38\) |
| grupa_krwi | wartość spoza zbioru kategorii (0/A/B/AB) | "5", "Rh+" |
| choroba_przewlekla | wartość spoza zbioru kategorii (tak/nie) | "kobieta", "2" |
| liczba_wizyt | wartość niemożliwa dla licznika | \(-2\), \(-1\) |
| wynik_testu_psychometrycznego | powtarzający się podejrzany kod | \(999\) (4\(\times\) w różnych wierszach) |
| tetno_spoczynkowe | wartości odstające | \(2\), \(410\) |
Wynik zostaje zapisany w Notatce arkusza danych (widocznej w drzewie projektu), gdzie można go dowolnie edytować lub uzupełnić własnymi uwagami przed zapisaniem.
Procedura: dla każdej kolumny program oblicza niezależnie: liczbę obserwacji, liczbę braków danych, liczbę unikalnych wartości, a następnie – w zależności od charakteru kolumny – albo statystyki liczbowe (minimum, kwartyle, maksimum, wartości odstające wg reguły IQR), albo listę kategorii wraz z ich licznością. To zwięzłe podsumowanie (a nie surowe dane) trafia do modelu AI wraz z instrukcją, by wskazał wyłącznie te kolumny, w których faktycznie coś budzi wątpliwości, i nie zgadywał niczego poza tym, co wynika z podanego podsumowania.
Uwaga o wydajności: ponieważ analizowane jest samo podsumowanie, a nie pełna zawartość arkusza, rozmiar zapytania do modelu pozostaje niewielki nawet dla arkuszy z dużą liczbą wierszy – rośnie on wraz z liczbą kolumn, a nie liczbą obserwacji.
PQStat