как использовать ановаскиры для исключения столбцов / предикторов с значениями больше 0,01 - PullRequest
3 голосов
/ 22 сентября 2019

У меня был набор данных с 36400 столбцами / признаками / предикторами (типами белков) и 500 наблюдениями, а последний столбец - это столбец ответа "класс", который указывает на 2 типа ячеек - A и B. Мы должны выполнить функциювыбор, чтобы уменьшить количество предикторов, которые помогают дифференцировать 2 типа клеток.Первым шагом для этого было удалить все столбцы, максимальное значение которых было меньше 2. Я сделал следующее, чтобы добиться этого, и уменьшил число предикторов до 26000: newdf<- protein2 %>% #Select column whose max value is greater than equal to 2 select_if(~max(., na.rm = TRUE) >= 2) ncol(newdf)

Для дальнейшего сокращения мыОжидается, что удалят предикторы с низкой дисперсией, выполняя тест anova для каждого предиктора и удаляя предикторы с p-значением> = 0,01.Я думаю, что я сделал это правильно, используя следующий код:

scores <- as.data.frame(apply(newdf[,-ncol(newdf)],2, anovaScores, newdf$class))
scores
new_scores <- scores[scores<0.01]

Я не уверен, почему, но я не могу подтвердить свои результаты, используя ncols или colnames или что-то.использование length (new_scores) дает 2084, что находится в диапазоне сокращенных предикторов, которых ожидает профессор.Но мне нужен кто-то, чтобы подтвердить, что это был правильный путь.И если да, то почему я не могу разделить свои данные на наборы данных для обучения и тестирования?при попытке этого я получаю ошибку Ошибка в new_scores $ class: $ оператор недопустим для атомарных векторов.Вот как я делю набор данных обучения и тестирования:

intrain <- createDataPartition(y = new_scores$class  ,p = 0.8,list = FALSE) #split data
assign("training", new_scores[intrain,] )
assign("testing",  new_scores[-intrain,] )

Проблема в строке createatapartition, но я не уверен, что что-то, что было сделано в предыдущих шагах, неверно или я что-то упустил

Не уверен, как предоставить воспроизводимые данные, но ниже приведен фрагмент данных, в котором столбец lass является классом переменной ответа, а остальные - все предикторы:

     X  Y    Z     A  B  C     class
     3  4.5  3     4  8  10.1  A
     9  6    2.5   6  4  4     B
     4  3.8  4     9  6  8.2   B
     6  7.1  6     7  4  8     A
     4  5.6  9     5  3  7.5   A
...