Я пытаюсь использовать функцию boxcoxnc в пакете AID для вычисления нормализованных данных с использованием статистики Shapiro-Wilcox W для определения лямбда-выражения.
Я хочу, чтобы функция boxcoxnc запускалась для каждого столбца в моем фрейме данных в цикле for.
data<-data.frame(data[,2:27])
for (f in 1:length(data)){
model<-boxcoxnc(as.matrix(as.numeric(unlist(data[f]))),
method="sw",lambda = as.numeric(seq(-20,20,0.01)))
}
Первые три столбца работают нормально, а когда я попадаю в четвертый, я получаю ошибку:
Error in boxcoxnc(as.matrix(as.numeric(unlist(data[f]))), method = "sw", :
Enlarge the range of the lambda
Что я и делаю, увеличиваю диапазон лямбды до (-21, -20, 0,01) и затем получаю следующую ошибку в первом столбце.
Error in shapiro.test(store2[[x]]) : all 'x' values are identical
Однако данные не идентичны. Это только определенные столбцы в моем фрейме данных, которые делают это, и я не знаю почему. Четвертый столбец, который вызывает первую ошибку, таков:
1,539
1,587
1,558
1,625
1,651
1,659
1,654
1,643
1,53
1,552
1,537
1,522
1,559
1,636
1,57
1,631
1,544
1,625
1,552
1,519
1,556
1,528
1,616
1,554
1,571
1,534
1,574
1,578
1,574
1,533
1,54
1,531
1,561
1,576
1,624
1,593
1,557
1,556
1,559
1,59
Первый столбец: 6.301
6,611
6,448
7,049
7,068
7,208
7,215
7,084
6,129
6,471
6,295
5,984
6,34
7,052
6,448
6,885
6,42
6,963
6,169
6,185
6,289
6,05
6,901
6,333
6,458
6,228
6,458
6,477
6,71
6,296
6,147
6,171
6,278
6,667
6,932
6,646
6,369
6,408
6,466
6,688
Любая помощь очень ценится.