Использование cut как часть функции в R для вычисления квинтилей - PullRequest
0 голосов
/ 23 января 2020

Меня попросили использовать "cut" в R для создания квартилей для моей переменной wt71 в базе данных nhefs. Вот мой код:

 apply_quintiles <-function(x) {
cut(x, breaks =c(quantile(nhefs$wt71,probs=seq(0,1, by=0.25))), labels=c(25, 50, 75, 100),include.lowest=TRUE)
}
nhefs$quintiles<-sapply(nhefs$wt71,apply_quintiles)
head(mean_weights)
table(nhefs$quintiles)

Вот мой вывод:
enter image description here

Это очень далеко от того, что я ожидал:

enter image description here
Кто-нибудь знает, что здесь происходит?

1 Ответ

0 голосов
/ 23 января 2020

Созданное table показывает количество (N) рядов, которые попадают в этот квартиль. Это отличается от значений wt71, вычисленных как summary, указывающих порог для 1-го или 3-го квартиля или медианы. (Примечание: как указал @Gregor, это квартили, а не квинтили.)

Чтобы проиллюстрировать это, я изменил метки, чтобы уточнить полученные квартили:

set.seed(1)

nhefs <- data.frame(
  wt71 =  round(runif(100, min=1, max=100), 0)
)

apply_quintiles <-function(x) {
  cut(x, breaks =c(quantile(nhefs$wt71,probs=seq(0,1, by=0.25))), labels=c("0-25", "25-50", "50-75", "75-100"),include.lowest=TRUE)
}

nhefs$quintiles<-sapply(nhefs$wt71,apply_quintiles)

table(nhefs$quintiles)

  0-25  25-50  50-75 75-100 
    25     25     26     24 

Это демонстрирует равное распределение 100 случайных чисел в 4 квартилях. Имеется N = 25 между 0-25% Ile и N = 26 при 50-75% Ile, et c. Эти числа не являются значениями wt71, а вместо числа элементов данных или строк, попадающих в этот диапазон процентилей.

Вот summary из wt71:

Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
2.00   32.75   49.50   52.24   77.00   99.00 

Эти значения соответствуют пороговым значениям для 1-го квартиля, медианы и 3-го квартиля. Эти пороговые значения относятся к значению wt71. Например, значение wt71, равное 30, будет меньше уровня 1-го квартиля.

Взгляните на nhefs сейчас:

head(nhefs)

  wt71 quintiles
1   27      0-25
2   38     25-50
3   58     50-75
4   91    75-100
5   21      0-25
6   90    75-100

Обратите внимание, что для вашего другого wt71 значения, они присваиваются различным квартилям. wt71 из 27 находится в самом нижнем квартиле (0-25), так как это значение меньше порога для 1-го квартиля 32,75.

Надеюсь, это поможет!

...