Можно ли рассчитать уровень достоверности или значение p? - PullRequest
0 голосов
/ 26 марта 2020

У меня очень простой c вопрос о p-значении и уровне достоверности. Предположим, что компания провела опрос по 3 своим продуктам о том, нравятся ли эти продукты их клиентам.

  • Продукт A (в опросе участвовало 1000 клиентов), 80% - как
    20% - не нравится
  • Продукт B (200 клиентов приняли участие в опросе) 90% нравится
    10% не нравится
  • Продукт C (3000 клиентов приняли участие в опросе) 70% нравится
    30% не нравится

Можно ли сказать, что продукт B лучше других, даже если в нем участвовало меньше клиентов? Если да, можем ли мы рассчитать значение p и уровень достоверности для такого требования? И как? Спасибо.

Ответы [ 2 ]

1 голос
/ 26 марта 2020

Очень быстрый примерный способ - объединить не продукты A и выполнить тест Фишера, я делаю тест в R:

M = matrix(c(800,200,180,20,2100,900),ncol=3)
colnames(M) = LETTERS[1:3]
rownames(M) = c("Like","Dislike")
          A   B    C
Like    800 180 2100
Dislike 200  20  900

Затем вы перегруппируете их:

newM = cbind(M[,2],rowSums(M[,-2]))
colnames(newM) = c("B","notB")

          B notB
Like    180 2900
Dislike  20 1100
    Fisher's Exact Test for Count Data

data:  newM
p-value = 3.498e-09
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
 2.131986 5.751961
sample estimates:
odds ratio 
  3.412732 

Затем вы получите обратно соотношение шансов и c .i. Соотношение шансов рассчитывается как p (как продукт / неприязнь | B) / p (как продукт / неприязнь | не B). Вы можете приблизительно оценить это как:

(180/20)/(2900/1100) = 3.413793

Вы можете сделать выше в python, чтобы получить доверительный интервал, вы можете использовать что-то вроде регрессии logisti c, и мы проверяем, отличается ли B из остального:

import pandas as pd
import statsmodels.api as sm

df = pd.DataFrame({"Product":["A","A","B","B","C","C"],
                   "Response":["Like","Dislike","Like","Dislike","Like","Dislike"],
                  'Counts':[800,200,180,20,2100,900]})

Нам нужно сложить его, чтобы получить двумерный массив:

data.endog = np.array(df['Counts']).reshape(3,2)

array([[ 800,  200],
       [ 180,   20],
       [2100,  900]])

data.exog = sm.add_constant(np.array([0,1,0]))

array([[1., 0.],
       [1., 1.],
       [1., 0.]])

В последней части мы устанавливаем коэффициент B равным 1, и другие равны 0, поэтому мы моделируем, насколько B отличается от других. Теперь подгоняем модель:

mdl = sm.GLM(data.endog, data.exog,family=sm.families.Binomial()).fit()
mdl.summary()

        coef    std err z       P>|z|   [0.025  0.975]
const   0.9694  0.035   27.376  0.000   0.900   1.039
x1      1.2278  0.238   5.151   0.000   0.761   1.695

Она дает вам аналогичную оценку, коэффициент равен 1,2278, и для ее преобразования в отношение шансов вы делаете np.exp(1.2278) = 3.41371110. И у вас также есть р-значения и доверительный интервал.

1 голос
/ 26 марта 2020

Насколько я понимаю, р-тест (или проверка гипотезы NULL) относится только к одиночному рандомизированному эксперименту. Тем не менее, ваш вопрос предполагает отсутствие связи между всеми тремя гипотезами. Это просто не один совместный эксперимент, а три отдельных, поэтому вы не сможете проверить значимость этих опросов. Вы можете прочитать здесь .

Однако вы можете проверить, является ли результат одного из опросов значительным. Например, гипотеза: людям нравится продукт B.

значение хи-квадрат: x ^ 2 = Σ ((oe) ^ 2 / e), o: наблюдаемое значение, e: ожидаемое значение

человек можно выбрать только нравится (1) или не нравится (0), поэтому ожидаемое значение равно 0,5.

x ^ 2 (например) = 0,8 * 200 ((1-0,5) ^ 2 / 0,5) = 80

Теперь вам нужно определить порог значимости. Обычно 0,05 берется. И чтобы получить ваше p-значение, нам нужно взглянуть на умные книги с таблицами, в которых сообщается, какому значению p принадлежит хи-квадрат (с числом степеней свободы, в нашем случае 1).

chi-square distribution table

Таким образом, наша гипотеза о том, что людям нравится продукт, оказывается 80> 3,84, что подтверждает гипотезу. В любом случае, в вашем случае расчет довольно тривиален, но, надеюсь, вы поняли идею. Вы также можете посмотреть здесь для лучшего объяснения, чем я могу дать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...