Средняя вероятность получения категориальной переменной из разных по численности групп населения - PullRequest
0 голосов
/ 06 июля 2019

Это может быть очень простой вопрос.Предположим, у меня есть несколько групп категориальных значений, а также группа целевых категорий.например,

set.seed(500)

pops <- list(
 val1 = c('20','20','10','90','100','30','10','20'),
 val2 = c('20','110','1400','50','40'),
 val3 = c('100','50','30')
)

target <- c('20','100','40')

Какова будет средняя вероятность получения при хотя бы одной целевых категорий из всех групп населения?

Я могу рассчитатьраспределение частот каждого значения и, следовательно, шанс получить конкретный результат.

# Frequency table
p <- table(pops$val1) / length(pops$val1)

# The probability of getting at least of the target values
sum(p[which(names(p) %in% target)])
# 0.5

Проблема заключается в том, что расчет не зависит от размера выборки, поскольку увеличение N, очевидно, увеличивает вероятность того, что присутствует хотя бы одна из категорий.

Любой имеет представление о том, как это сделать.оценить это объективно по размеру выборки?

1 Ответ

0 голосов
/ 06 июля 2019

Мы можем использовать

sapply(pops, function(x) {
       p <- table(x)/length(x)
      sum(p[which(names(p) %in% target)])
 })

Или используя tidyverse

library(tidyverse)
stack(pops) %>%
  group_by(ind) %>% 
  mutate(n1 = n()) %>%
  group_by(values, add = TRUE) %>% 
  summarise(perc = n()/n1[1]) %>% 
  filter(values %in% target) %>% 
  summarise(perc = sum(perc))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...