Cet article s'appuie sur les idées et étend les méthodes décrites dans la publication précédente Analyse des données statistiquement robustes: le test de Wilcoxon pour deux échantillons. Il s'agit d'un modèle simple mais largement utilisé, car même dans des situations plus complexes, les objectifs sont souvent comparés à deux niveaux.
L'analyse du modèle sur le décalage des paramètres de la position de deux populations générales commence par une description de la procédure de classement de Mann-Whitney-Wilcoxon (MWW) sans distribution, ici les estimations ponctuelles et d'intervalle pour l'ampleur du décalage sont construit. En outre, la méthode d'analyse basée sur l'utilisation de fonctions de score est brièvement décrite et, avec son aide, l'hypothèse nulle sur l'ampleur du paramètre de décalage est également testée. En conclusion, le modèle du paramètre de position est formulé comme un problème de régression, dont la solution permet également de construire des estimations ponctuelles et d'intervalle pour le paramètre de décalage.
Toutes les méthodes décrites dans l'article sont illustrées par un exemple de bout en bout implémenté sous forme d'algorithmes en langage R.
1. Soit et
soit deux variables aléatoires continues:
et
désignons la fonction (cdf) et la densité (pdf) de la distribution de la variable aléatoire
, et
et
désignons la fonction (cdf) et la densité (pdf) de la variable aléatoire, respectivement
. Nous disons cela
et
suivons le modèle du paramètre de position (modèle de localisation), si pour un paramètre
, nous
avons
Un paramètre est un décalage du paramètre de position de variables aléatoires
et
, par exemple, il peut s'agir de la différence entre des médianes ou des moyennes (si des moyennes existent). Notez que le modèle proposé suppose l'égalité des paramètres de l'échelle des variables aléatoires
et
.
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 ) . .