Как проверить, если два значения подъема значительно отличаются друг от друга?
Рассмотрим этот код:
# Load libraries
library(RCurl)
library(TraMineR)
library(PST)
# Get data
x <- getURL("https://gist.githubusercontent.com/aronlindberg/08228977353bf6dc2edb3ec121f54a29/raw/c2539d06771317c5f4c8d3a2052a73fc485a09c6/challenge_level.csv")
data <- read.csv(text = x)
# Load and transform data
data <- read.table("thread_level.csv", sep = ",", header = F, stringsAsFactors = F)
# Create sequence object
data.seq <- seqdef(data[2:nrow(data),2:ncol(data)], missing = NA, right= NA, nr = "*")
# Make a tree
S1 <- pstree(data.seq, ymin = 0.05, L = 6, lik = FALSE, with.missing = TRUE)
# Look at contexts
cmine(S1, pmin = 0, state = "N3", l = 3)
Затем я могу рассчитать пороговые значения значимости для значений подъема для двух конкретных "правил ассоциации" следующим образом:
# Calculate lift threshold for N2-QU->N3
ngood_idea <- sum(data.seq == "N3")
nn <- nrow(data.seq)*ncol(data.seq)
p_good_idea <- ngood_idea/nn
x <- seqdef("N2-QU")
p_context <- predict(S1, x, decomp = F, output = "prob")
p_not_context_good_idea <- (1-p_context)*(1-(p_good_idea))
p_context_good_idea <- p_context*p_good_idea
N2_QU_N3_threshold <- 1+1.645*sqrt(((1/nn)*(p_not_context_good_idea/p_context_good_idea)))
# Calculate lift threshold for N2-QU->N1
nbad_idea <- sum(data.seq == "N1")
nn <- nrow(data.seq)*ncol(data.seq)
p_bad_idea <- nbad_idea/nn
p_not_context_bad_idea <- (1-p_context)*(1-(p_bad_idea))
p_context_bad_idea <- p_context*p_bad_idea
N2_QU_N1_threshold <- 1+1.645*sqrt(((1/nn)*(p_not_context_bad_idea/p_context_bad_idea)))
# Print lift thresholds
N2_QU_N3_threshold
N2_QU_N1_threshold
Однако, что если я хочу сравнить два значения подъема друг с другом, чтобы увидеть, значительно ли они отличаются друг от друга (аналогично тому, как я могу сравнить два коэффициента регрессии друг с другом, чтобы увидеть, значительно ли они отличаются друг от друга) Другой)? Как я могу сделать это?
1 ответ
Используя это уравнение:
$Z = \frac{\beta_1-\beta_2}{\sqrt{(SE\beta_1)^2+(SE\beta_2)^2}}$
куда $SE\beta$
стандартная ошибка $\beta$
,
Это уравнение предоставлено Clogg et al (1995)
Мы можем провести аналогию, используя лифты в качестве коэффициентов, и вычисляя дисперсию каждого лифта на основе данных Ленка и др. (2008, стр. 619).
# Calculate conditional probability for I3
cp_good <- query(S1, context = "N2-QU", output= "prob")@.Data[attr(query(S1, context = "N2-QU", output= "prob")@.Data, "dimnames")[[2]]=="I3"]
cp_good <- unlist(cp_good)
# Calculate conditional probability for I1
cp_bad <- query(S1, context = "N2-QU", output= "prob")@.Data[attr(query(S1, context = "N2-QU", output= "prob")@.Data, "dimnames")[[2]]=="I1"]
cp_bad <- unlist(cp_bad)
# Calculate lift for I3
ngood_idea <- sum(data.seq == "I3")
nn <- nrow(data.seq)*ncol(data.seq)
p_good_idea <- ngood_idea/nn
good_lift <- cp_good/p_good_idea
# Calculate lift for I1
nbad_idea <- sum(data.seq == "I1")
nn <- nrow(data.seq)*ncol(data.seq)
p_bad_idea <- nbad_idea/nn
bad_lift <- cp_bad/p_bad_idea
# Calculate z_diff
p_context <- predict(S1, x, decomp = F, output = "prob")
p_not_context_good_idea <- (1-p_context)*(1-(p_good_idea))
p_context_good_idea <- p_context*p_good_idea
p_not_context_bad_idea <- (1-p_context)*(1-(p_bad_idea))
p_context_bad_idea <- p_context*p_bad_idea
var_good_idea <- ((1/nn)*(p_not_context_good_idea/p_context_good_idea))
var_bad_idea <- ((1/nn)*(p_not_context_bad_idea/p_context_bad_idea))
z_diff <- (good_lift-bad_lift)/sqrt(var_good_idea+var_bad_idea)
z_diff
Z-значение разницы 0.2556881
,
Рекомендации
Clogg, CC, Petkova E., & Haritou, A. (1995). Статистические методы сравнения коэффициентов регрессии между моделями. Американский журнал социологии, 100(5), 1261-1293.]
Ленка, П., Мейер, П., Вайлант, Б. и Лаллич, С. 2008. "О выборе мер по интересности для правил ассоциации: ориентированное на пользователя описание и помощь при принятии нескольких критериев", Европейский журнал исследования операций (184:2), стр. 610–626 (doi: 10.1016/j.ejor.2006.10.059).