Mam bardzo duży zestaw danych i brakuje około 5% wartości losowych. Te zmienne są ze sobą skorelowane. Poniższy przykładowy zestaw danych R jest tylko zabawkowym przykładem z fałszywymi skorelowanymi danymi.
set.seed(123)
# matrix of X variable
xmat <- matrix(sample(-1:1, 2000000, replace = TRUE), ncol = 10000)
colnames(xmat) <- paste ("M", 1:10000, sep ="")
rownames(xmat) <- paste("sample", 1:200, sep = "")
#M variables are correlated
N <- 2000000*0.05 # 5% random missing values
inds <- round ( runif(N, 1, length(xmat)) )
xmat[inds] <- NA
> xmat[1:10,1:10]
M1 M2 M3 M4 M5 M6 M7 M8 M9 M10
sample1 -1 -1 1 NA 0 -1 1 -1 0 -1
sample2 1 1 -1 1 0 0 1 -1 -1 1
sample3 0 0 1 -1 -1 -1 0 -1 -1 -1
sample4 1 0 0 -1 -1 1 1 0 1 1
sample5 NA 0 0 -1 -1 1 0 NA 1 NA
sample6 -1 1 0 1 1 0 1 1 -1 -1
sample7 NA 0 1 -1 0 1 -1 0 1 NA
sample8 1 -1 -1 1 0 -1 -1 1 -1 0
sample9 0 -1 0 -1 1 -1 1 NA 0 1
sample10 0 -1 1 0 1 0 0 1 NA 0
Czy istnieje (najlepszy) sposób na przypisanie brakujących wartości w tej sytuacji? Czy algorytm Losowego Lasu jest pomocny? Wszelkie działające rozwiązania w R byłyby bardzo mile widziane.
Edycje:
(1) Brakujące wartości są losowo rozdzielane między zmienne i próbki. Ponieważ liczba zmiennych jest bardzo duża (tutaj w tym przykładzie - 10000), podczas gdy liczba próbek jest tutaj mała w powyższym fikcyjnym przykładzie wynosi około 200. Więc kiedy patrzymy na każdą próbkę ze wszystkich zmiennych (10000), istnieje duże prawdopodobieństwo, że przy niektórych zmiennych będzie brakować wartości - z powodu dużej liczby zmiennych. Więc samo usunięcie próbki nie jest opcją.
(2) Zmienna może być traktowana zarówno jako ilościowa, jak i jakościowa (binarna) w procesie przypisywania. Jedynym osądem jest to, jak dobrze możemy to przewidzieć (dokładność). Więc prognozy takie jak 0,98 zamiast 1 mogą być do przyjęcia raczej 0 vs 1 lub -1 vs 1. Mogę potrzebować kompromisu między czasem obliczeniowym a dokładnością.
(3) Zastanawiam się, jak nadmierne dopasowanie może wpływać na wyniki, ponieważ liczba zmiennych jest duża w porównaniu z liczbą próbek.
(4) Ponieważ całkowita ilość brakujących wartości wynosi około 5% i jest losowa (nie jest skoncentrowana w żadnych zmiennych lub próbkach, ponieważ podjęto środki ostrożności w celu usunięcia zmiennych lub próbek, które mają bardzo wysokie brakujące wartości)
(5) Uzupełnienie danych do analizy jest pierwszym celem, a dokładność drugim. Więc nie jest zbyt wrażliwy na dokładność.