Braki danych — przegląd
W fazie przygotowywania danych do eksploracji często chcemy wyeliminować braki, zastępując je jakimiś wartościami. Braki danych to wartości w zbiorze danych, które są nieznane, nie zostały zebrane lub zostały nieprawidłowo wprowadzone. Zwykle braki danych nie są poprawnymi wartościami zmiennych, w których występują. Na przykład zmienna Płeć powinna zawierać wartości M albo K. Napotykając w niej wartości T lub Z, możemy bezpiecznie przyjąć, że są to wartości niepoprawne, które powinny być traktowane jako brak danych. Podobnie, ujemna wartość zmiennej Wiek jest nieprawidłowa i powinna być interpretowana jako brak danych. Często takie oczywiście błędne wartości wprowadza się celowo (lub pozostawia się zmienne bez wartości) podczas ankiety, aby zasygnalizować w ten sposób brak odpowiedzi. Niekiedy chcemy dokładniej przeanalizować braki danych, aby ustalić, czy brak odpowiedzi (np. odmowa podania wieku przez respondenta) ma wpływ na predykcję określonego wyniku.
Niektóre techniki modelowania lepiej niż inne radzą sobie z brakami danych. Na przykład techniki C5.0 i Apriori działają dobrze w obecności wartości jawnie zadeklarowanych jako braki w węźle Typy. Inne techniki modelowania mają trudności z obsługą braków danych; w ich przypadku braki wydłużają czas szkolenia i prowadzą do generowania mniej dokładnych modeli.
Istnieje kilka typów braków danych rozpoznawanych przez program IBM® SPSS Modeler:
- Null lub systemowe braki danych. Są to wartości niełańcuchowe pozostawione jako puste w bazie danych lub w pliku źródłowym i niezdefiniowane jako „brakujące” w węźle źródłowym ani w węźle wprowadzania danych. Systemowe braki danych są wyświetlane jako wartości $null$. Należy zwrócić uwagę, że puste łańcuchy tekstowe nie są traktowane jako wartości null w programie IBM SPSS Modeler, mimo że mogą być one traktowane jako wartości null przez niektóre bazy danych.
- Puste łańcuchy i białe znaki. Puste łańcuchy tekstowe i białe znaki (łańcuchy bez widocznych znaków) są traktowane odmiennie niż wartości null. Puste łańcuchy są w większości przypadków traktowane jako równoważne białym znakom. Na przykład po wybraniu opcji traktowania białych znaków jako pustych w węźle źródłowym albo w węźle Typ to ustawienie ma zastosowanie także do pustych łańcuchów.
- Puste lub zdefiniowane przez użytkownika braki danych. Są to wartości takie jak
nieznane,99czy–1, zdefiniowane jawnie w węźle źródłowym lub w węźle Typ jako braki danych. Opcjonalnie można także wybrać traktowanie wartości null i białych znaków jako wartości pustej, co pozwala oznaczyć je z myślą o specjalnym ich traktowaniu i wykluczeniu ich z większości obliczeń. Można na przykład użyć funkcji@BLANKdo traktowania tych wartości, wraz z brakami danych innego typu, jako wartości pustej.
Wczytywanie danych mieszanych. Należy zwrócić uwagę, że podczas wczytywania zmiennych z liczbowym typem składowania (liczby całkowite, rzeczywiste, czas, znacznik czasu lub data) wszelkie wartości nieliczbowe są zamieniane na null lub braki systemowe. Wynika to z faktu, że w odróżnieniu od niektórych aplikacji produkt nie zezwala na przechowywanie w zmiennej danych różnego typu. Aby uniknąć takiej automatycznej zamiany, wszelkie zmienne z danymi mieszanymi należy wczytywać jako łańcuchy, w razie potrzeby zmieniając typ składowania w węźle źródłowym lub aplikacji zewnętrznej.
Odczytywanie pustych łańcuchów Oracle. W przypadku odczytu z lub zapisu do bazy danych Oracle należy pamiętać, że inaczej niż w przypadku IBM SPSS Modeler i inaczej niż w przypadku większości innych baz danych, Oracle traktuje i przechowuje puste wartości strumienia jako równoważne wartościom null. Oznacza to, że te same dane wyodrębnione z bazy danych Oracle mogą zachowywać się w odmienny sposób w przypadku wyodrębnienia z pliku lub innej bazy danych, zaś dane mogą zwracać odmienne wyniki.