데이터 세트가 매우 커서 약 5 %의 임의 값이 없습니다. 이 변수들은 서로 상관되어 있습니다. 다음 예제 R 데이터 세트는 더미 상관 데이터가있는 장난감 예제 일뿐입니다.
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
이 상황에서 결 측값을 대치하는 가장 좋은 방법이 있습니까? 랜덤 포레스트 알고리즘이 도움이 되나요? R의 모든 작업 솔루션은 대단히 감사하겠습니다.
편집 :
(1) 측값 무작위 변수 samples.As에 분산되는 변수의 개수 인 매우 큰 그동안, - (10,000 예에서 여기) 샘플들의 개수 는 200 그래서 때 관한 상기 더미 예 여기 작은 모든 변수 (10000)에 대한 모든 샘플을 살펴보면 많은 수의 변수로 인해 일부 변수에서 누락 된 값이있을 가능성이 높습니다. 따라서 샘플을 삭제하는 것은 옵션이 아닙니다.
(2) 변수는 대치 과정에서 정량적 또는 정 성적 (이진)으로 처리 될 수 있습니다. 유일한 판단은 우리가 그것을 얼마나 잘 예측할 수 있는지 (정확성)입니다. 따라서 1 대신 0.98과 같은 예측은 0 대 1 또는 -1 대 1보다 수용 가능할 수 있습니다. 컴퓨팅 시간과 정확성간에 균형을 맞춰야 할 수도 있습니다.
(3) 문제는 샘플 수에 비해 변수 수가 많기 때문에 과적 합이 결과에 어떤 영향을 미칠 수 있는지 생각했습니다.
(4) 결 측값의 총량이 약 5 %이고 임의이기 때문에 (결 측값이 매우 높은 변수 또는 표본을 제거하기 위해 예방 조치를 취함에 따라 변수 또는 표본에 집중되지 않음)
(5) 분석을 위해 데이터를 완성시키는 것은 첫 번째 목표이며 정확성은 부차적입니다. 정확도에 너무 민감하지 않습니다.