---
title: "Ajustement de métrique (equating)"
author: Pierre Valois, Belkacem Abdous, Stéphane Germain
date: 26 septembre 2018
lang: fr
---

# Une seule population

## Lien entre deux outils d'évaluation

- Une seule population P
- Deux outils d'évaluation X et Y
- Exemple de scores observés :
```{r, fig.cap="A scatterplot.", echo=FALSE}
set.seed(7)
n <- 50
a <- 1.5
b <- -2
X <- pmax(0, pmin(20, rnorm(n, 12, 4)))
Y <- pmax(0, pmin(30, a*X+b+rnorm(n, 0, 3)))
plot(X, Y)
```

## La fonction de lien

- Exemple : fonction linéaire $$ y = a x + b $$
```{r, fig.cap="A scatterplot.", echo=FALSE}
plot(X, Y)
abline(a=b, b=a, col=2, lwd=2)
```

## Modèle Moyen

- Droite par la moyenne avec pente définit par les étendues :  $$ b = \bar{Y} - a \bar{X} $$ $$ a = (\max(Y)-\min(Y)) / (\max(X)-\min(X)) $$
```{r, fig.cap="A scatterplot.", echo=FALSE}
a <- (max(Y)-min(Y)) / (max(X)-min(X))
b <- mean(Y) - a*mean(X)
plot(X, Y)
abline(a=b, b=a, col=2, lwd=2)
points(mean(X), mean(Y), pch=19, col=4)
```

## Modèle Linéaire

-  Droite par la moyenne avec pente définit par les écart-types :  $$ b = \bar{Y} - a \bar{X} $$ $$ a = \sigma_Y / \sigma_X $$
```{r, fig.cap="A scatterplot.", echo=FALSE}
a <- sd(Y) / sd(X)
b <- mean(Y) - a*mean(X)
plot(X, Y)
abline(a=b, b=a, col=2, lwd=2)
points(mean(X), mean(Y), pch=19, col=4)
```

## Modèle Equipercentile

- En marche d'escalier en appliquant la réciproque de la distribution empirique de $Y$ sur celle de $X$ : $$ y = G_n^{-1}(F_n(x)) $$
```{r, fig.cap="A scatterplot.", echo=FALSE}
F <- ecdf(X)
G.inv <- stepfun((1:n)/n, c(-Inf, sort(Y)))
plot(X, Y)
x <- sort(X)
lines(x, G.inv(F(x)), col=2, lwd=2, type="s")
```

## Modèle en arc de cercle

- Arc de cercle passant par trois points, par exemple les extrémités et la moyenne : $(\min(X), \min(Y))$, $(\max(X), \max(Y))$ et $(\bar{X}, \bar{Y})$
```{r, fig.cap="A scatterplot.", echo=FALSE}
x1 <- min(X)
x2 <- max(X)
y1 <- min(Y)
y2 <- max(Y)
xm <- mean(X)
ym <- mean(Y)
A <- matrix(c( 2*(x1-x2), 2*(xm-x2), 2*(y1-y2), 2*(ym-y2) ), ncol=2)
B <- c( x1^2-x2^2+y1^2-y2^2, xm^2-x2^2+ym^2-y2^2 )
C <- solve(A, B)
r <- sqrt( sum( (C - c(x1,y1))^2 ) )
x <- seq(x1, x2, len=1000)
y <- C[2]+sign(C[1])*sqrt(r^2-(x-C[1])^2)
plot(X, Y)
lines(x, y, col=2, lwd=2)
```

# Deux populations

## Lien entre deux populations

- Deux population P et Q de niveau moyen différent
- Deux outils d'évaluation X pour P et Y pour Q
- Items communs V inclus dans X et Y
```{r, fig.cap="A scatterplot.", echo=FALSE}
set.seed(7)
n <- 50
P <- rnorm(n, -1)
Q <- rnorm(n, 1)
VP <- pmax(0, pmin(20, 12+4*P))
VQ <- pmax(0, pmin(20, 12+4*Q))
X <- VP + pmax(0, pmin(40, 12+4*rnorm(n, P)))
Y <- VQ + pmax(0, pmin(40, 12+4*rnorm(n, Q)))
vlim <- range(c(VP, VQ))
xlim <- range(X)
ylim <- range(Y)
par(mfrow=c(1,2))
plot(X, VP, ylim=vlim, ylab="V")
plot(Y, VQ, ylim=vlim, ylab="V")
```

## Méthode chaînée

- Estimer séparément l'ajustement $f$ de X à V sur P, puis l'ajustement $g$ de V à Y sur Q, et les composer : $$y=g(f(x))$$
```{r, fig.cap="A scatterplot.", echo=FALSE}
par(mfrow=c(1,2))
plot(X, VP, ylim=vlim, ylab="V")
a <- sd(VP) / sd(X)
b <- mean(VP) - a*mean(X)
abline(a=b, b=a, col=2, lwd=2)
x <- 20
v <- a*x+b
lines(c(x, x, xlim[1]), c(vlim[1], v, v), col=3, lty=2, lwd=2)
plot(Y, VQ, ylim=vlim, ylab="V")
a <- sd(Y) / sd(VQ)
b <- mean(Y) - a*mean(VQ)
abline(a=-b/a, b=1/a, col=2, lwd=2)
y <- a*v+b
lines(c(ylim[1], y, y), c(v, v, vlim[1]), col=3, lty=2, lwd=2)
```

## Population synthétique

- Population T résultant d'un mélange des population P et Q avec les proportions $w_P$ et $w_Q$
- Puisque X et Y ne sont pas échantillonés sur T au complet, leur paramètres (moyennes, écart-types, ...) ne peuvent pas être obtenus directement
- Exemple : la contribution de Q à la moyenne de X doit être estimé en passant par V $$ \bar{X} = \bar{X}_P - w_Q\gamma_P (\bar{V}_P-\bar{V}_Q)$$
où $\gamma_P$ et $\gamma_Q$ repreśentent la relation entre X et Y respectivement et V

## Méthode de Tucker

- Estimer $\gamma_P$ et $\gamma_Q$ par les pentes de régression de V vers X et Y respectivement : $$ \gamma_P = \frac{\sigma_{X_P,V_P}}{\sigma^2_{V_P}} $$
- Suppose que les relations (X~V et Y~V) sont les mêmes sur les deux populations

## Méthode des poids nominaux

- Version simplifié de Tucker
- Suppose que les relations (X~V et Y~V) sont parfaites
$$ \gamma_P = \frac{K_X}{K_V} $$
où $K_X$ et $K_V$ sont les nombres d'items de X et V respectivement

## Méthode de Levine

- Version simplifié de Tucker
- Suppose que les corrélations (X~V et Y~V) sont 1
$$ \gamma_P = \frac{\sigma^2_{X_P}}{\sigma_{X_P,V_P}} $$

## Méthode par fréquence

- Les distributions (X et Y) de la population synthétique peut être obtenu via les distributions conditionelles empiriques sur V
- Exemple : $$ {\rm Pr}(x)=w_P{\rm Pr}_P(x)+w_Q\sum{\rm Pr}_P(x|v){\rm Pr}_Q(v) $$
- Utilisée directement pour le modèle équipercentile

## Méthode de Braun

- Utilisé les distributions de la population synthétique pour obtenir les paramètres (moyennes, écart-types, ...) des autres modèles

