Этот код R выдает предупреждение
# Fit regression model to each cluster
y <- list()
length(y) <- k
vars <- list()
length(vars) <- k
f <- list()
length(f) <- k
for (i in 1:k) {
vars[[i]] <- names(corc[[i]][corc[[i]]!= "1"])
f[[i]] <- as.formula(paste("Death ~", paste(vars[[i]], collapse= "+")))
y[[i]] <- lm(f[[i]], data=C1[[i]]) #training set
C1[[i]] <- cbind(C1[[i]], fitted(y[[i]]))
C2[[i]] <- cbind(C2[[i]], predict(y[[i]], C2[[i]])) #test set
}
У меня есть набор обучающих данных (C1) и набор тестовых данных (C2). У каждого есть 129 переменных. Я сделал k означает кластерный анализ на C1, а затем разделил свой набор данных на основе принадлежности к кластеру и создал список различных кластеров (C1 [[1]], C1 [[2]],..., C1 [[k] ]). Я также назначил членство в кластере для каждого случая в C2 и создал C2 [[1]],..., C2 [[k]]. Затем я подгоняю линейную регрессию к каждому кластеру в C1. Моя зависимая переменная - "Смерть". Мои предикторы различны в каждом кластере, и vars [[i]] (i = 1,..., k) показывает список имен предикторов. Я хочу предсказать смерть для каждого случая в наборе тестовых данных (C2 [[1]],..., C2 [[k]). Когда я запускаю следующий код, для некоторых кластеров.
Я получил это предупреждение:
In predict.lm(y[[i]], C2[[i]]) :
prediction from a rank-deficient fit may be misleading
Я много читал об этом предупреждении, но не мог понять, в чем проблема.