Este artículo se basa en las ideas y amplía los métodos descritos en la publicación anterior Análisis de datos estadísticamente robusto: la prueba de Wilcoxon para dos muestras. Este es un modelo simple pero ampliamente utilizado, ya que incluso en situaciones más complejas, los objetivos a menudo se comparan en dos niveles.
El análisis del modelo sobre el cambio de los parámetros de la posición de dos poblaciones generales comienza con una descripción del procedimiento de rango de Mann-Whitney-Wilcoxon (MWW) sin distribución, aquí las estimaciones de puntos e intervalos para la magnitud del cambio son construido. Además, se describe brevemente el método de análisis basado en el uso de funciones de puntuación y, con su ayuda, también se prueba la hipótesis nula sobre la magnitud del parámetro de desplazamiento. En conclusión, el modelo para el parámetro de posición se formula como un problema de regresión, cuya solución también permite construir estimaciones de puntos e intervalos para el parámetro de desplazamiento.
Todos los métodos descritos en el artículo se ilustran con un ejemplo de extremo a extremo implementado en forma de algoritmos en el lenguaje R.
1. Sean y
dos variables aleatorias continuas:
y
denoten la función (cdf) y la densidad (pdf) de la distribución de la variable aleatoria
, y
y
denoten la función (cdf) y la densidad (pdf) de la variable aleatoria, respectivamente
. Decimos eso
y
seguimos el modelo del parámetro de posición (modelo de ubicación), si para algún parámetro
,
tenemos
Un parámetro es un cambio en el parámetro de posición de variables aleatorias
y
, por ejemplo, puede ser la diferencia entre medianas o promedios (si existen promedios). Nótese que el modelo propuesto asume la igualdad de los parámetros de la escala de variables aleatorias
y
.
2. , . –
( cdf pdf
),
–
( cdf pdf
).
–
.
.
( ) , : .
3. , . – . , , .
. .
> z <- c(12, 18, 11, 5, 11, 5, 11, 11)
> rank(z)
[1] 7.0 8.0 4.5 1.5 4.5 1.5 4.5 4.5
,
.
-- (Mann-Whitney-Wilcoxon, MWW).
– ,
,
,
.
, (, ,
). ,
() p-value
( ).
4. -- ,
( - (Hodges-Lehmann))
.
–
,
,
.
.
5. -- t- c
.
> x <- round(rt(11, 5) * 10 + 42, 1)
> y <- round(rt(9, 5) * 10 + 50, 1)
> x
[1] 76.6 41.0 59.3 34.9 29.1 45.0 42.6 31.1 32.4 52.5 47.9
> y
[1] 58.3 47.2 40.1 45.8 62.0 58.7 64.8 48.1 49.5
> wilcox.test(y, x, exact = TRUE, conf.int = TRUE, conf.level = 0.95)
Wilcoxon rank sum exact test
data: y and x
W = 72, p-value = 0.09518
alternative hypothesis: true location shift is not equal to 0
95 percent confidence interval:
-1.0 18.4
sample estimates:
difference in location
10.4
: p-value
,
,
. p-value
«».
exact = FALSE
correct = FALSE
( ) , . p-value .
> wilcox.test(y, x, exact = FALSE, correct = FALSE)
Wilcoxon rank sum test
data: y and x
W = 72, p-value = 0.08738
alternative hypothesis: true location shift is not equal to 0
6. ,
(score )
,,
– , cdf
.
(Normal score function) , , . , normal score rankit, standard score z-score. normal score, score ,
score .
:
– score ,
–
. ,
:
,
, ,
() .
, .
, :
,
,
–
. .
7. R p-value score (
Rfit
).
> x <- c(76.6, 41.0, 59.3, 34.9, 29.1, 45.0, 42.6, 31.1, 32.4, 52.5, 47.9)
> y <- c(58.3, 47.2, 40.1, 45.8, 62.0, 58.7, 64.8, 48.1, 49.5)
> # x y
> z = c(x, y)
> n1 = length(x)
> n2 = length(y)
> n = n1 + n2
> # score
> scores = Rfit::wscores
> # score z
> rs = rank(z)/(n + 1)
> asg = Rfit::getScores(scores, rs)
> # Sphi
> Sphi = sum(asg[(n1 + 1):n])
> # Sphi
> asc = Rfit::getScores(scores, 1:n/(n + 1))
> varphi = ((n1 * n2)/(n * (n - 1))) * sum(asc^2)
> # zphi p-value
> zphi = Sphi/sqrt(varphi)
> alternative = "two.sided"
> pvalue <-
+ switch(
+ alternative,
+ two.sided = 2 * (1 - pnorm(abs(zphi))),
+ less = pnorm(zphi),
+ greater = 1 - pnorm(zphi)
+ )
> #
> res <- list(Sphi = Sphi, statistic = zphi, p.value = pvalue)
> with(res, cat("statistic = ", statistic, ", p-value = ", p.value, "\n"))
statistic = 1.709409 , p-value = 0.08737528
, p-value
p-value
:
.
8. C . ,
–
-
.
– ,
. ,
. -
. , score ,
- – .
R .
> z = c(x, y)
> ci <- c(rep(0, n1), rep(1, n2))
> fit <- Rfit::rfit(z ~ ci, scores = Rfit::wscores)
> coef(summary(fit))
Estimate Std. Error t.value p.value
(Intercept) 41.8 4.400895 9.498068 1.960951e-08
ci 10.4 5.720594 1.817993 8.574801e-02
,
. , , ,
,
t-
:
> conf.level <- 0.95
> estse <- coef(summary(fit))[2, 1:2]
> alpha <- 1 - conf.level
> alternative = "two.sided"
> tcvs <- switch(
+ alternative,
+ two.sided = qt(1 - alpha / 2, n - 2) * c(-1, 1),
+ less = c(-Inf, qt(1 - alpha, n - 2)),
+ greater = c(qt(alpha, n - 2), Inf)
+ )
> conf.int <- estse[1] + tcvs * estse[2]
> cat(100 * conf.level, " percent confidence interval:\n", conf.int)
95 percent confidence interval:
-1.618522 22.41852
, .
( -- score ) . .