Это связано с количеством случаев переменной ответа (final_ts$SAR
в вашем случае).
Например:
y <- rep(c(0,1), 10)
table(y)
y
0 1
10 10
# even number of cases
Теперь мы разделим:
train <- y[caret::createDataPartition(y, p=0.5,list=F)]
table(train) # we have 10 obs
train
0 1
5 5
test <- y[-caret::createDataPartition(y, p=0.5,list=F)]
table(test) # we have 10 obs.
test
0 1
5 5
Если мы строим и пример вместо этого с нечетным числом случаев:
y <- rep(c(0,1), 11)
table(y)
y
0 1
11 11
У нас есть:
train <- y[caret::createDataPartition(y, p=0.5,list=F)]
table(train) # we have 12 obs.
train
0 1
6 6
test <- y[-caret::createDataPartition(y, p=0.5,list=F)]
table(test) # we have 10 obs.
test
0 1
5 5
Дополнительная информация здесь .