Erreur systématique / de mesure sur une régression linéaire


8

Supposons que j'ai un ensemble de données (xi,yi) dans lequel l'incertitude des mesures (Δxi,Δyi)(qui proviennent de la propagation d'erreurs systématiques de l'appareil de mesure) est différent pour chaque point. Si je fais une régression linéaire sur l'ensemble de données, comment puis-je calculer l'incertitude de la pente? Je voudrais une procédure ou une formule explicite.


2
Avez-vous une idée de l'erreur de mesure la plus importante?
Dimitriy V. Masterov

1
Par deltas, voulez-vous dire la différence entre les mesures séquentielles? Vos données sont-elles séquentielles? Vous attendez-vous à ce que l'erreur soit corrélée? Vous attendez-vous à ce que la corrélation se dégrade? Avez-vous des réplications indépendantes? Plus d'informations sont nécessaires pour apporter une réponse concrète.
user3903581

Le terme que vous recherchez est la propagation d'erreur. Vous avez des erreurs côté entrée et calculez (plus précisément: estimez) deux paramètres à partir de celui-ci. Malheureusement, le nom de «régression linéaire» ne décrit qu'un modèle (populaire), mais pas la méthode par laquelle vous estimez les paramètres. Pour les méthodes les plus utilisées, vous pouvez probablement rechercher la solution (par exemple les moindres carrés). Sinon, vous pouvez soit le calculer analytiquement, soit l'approcher par une évaluation numérique.
chérubin

Réponses:


4

Nous pouvons modéliser l'expérience comme

xi=xi+u~i
yi=yi+v~i
u~i=u¯+vi
v~i=v¯+ui
xi,yi dénoter les vraies valeurs, u~i,v~i sont des erreurs de mesure, u¯,v¯ leurs composants "fixes" sont-ils indépendants de l'observation (qui pourraient résulter d'un mauvais étalonnage des capteurs) et u,v varient d'une observation à l'autre et correspondent à de nombreux facteurs possibles que nous considérons comme aléatoires.

Une régression linéaire simple est

yi=α+βxi+ei
et l'estimation OLS de la pente est
β^=Cov(x,y)Var(x)
Ce que nous obtenons est cependant
β~=Cov(x,y)Var(x)=Cov(x+u,y+v)Var(x+u)=Cov(x,y)+Cov(x,v)+Cov(y,u)+Cov(u,v)Var(x)+Var(u)+2Cov(x,u)

Supposons maintenant que v,u ne sont pas corrélés avec x,yet mutuellement (une hypothèse assez forte qui peut être améliorée si nous avons plus d'inférences sur la nature des erreurs). Alors notre estimation est

β~=βσx2σx2+σu2βσ^x2σ^u2σ^x2=βλ^
On peut estimer σ^x2 comme variation d'échantillon de xi. Nous devons également estimerσu2. Si nous avons une expérience quand nous pouvons observerxi plusieurs fois, alors une approche simple consiste à estimer σu2=E[σx2|xi].

Maintenant, nous pouvons utiliser notre σ^β~2 calculé avec, par exemple, la méthode bootstrap, et le corriger pour β^=β~/λ^ pour que

σ^β^2=σ^β~2λ^2
.

3

Je pense que la réponse donnée par @yshilov est vraiment impressionnante en considérant l'erreur de mesure dans le terme d'erreur et de manière significative, déduit le résultat

β~=βσx2σx2+σu2

Pour élaborer, ce bêta a des propriétés spéciales qu'il est un estimateur biaisé, mais biaisé vers 0. Plus précisément, pour la régression linéaire, E(β^1)=β1[σx2+σxδσx2+2σxδ+σδ2]

La preuve est la suivante: en simple régression linéaire, rappel

β^1=i=1n(xix¯)yii=1n(xix¯)2
En cas d'erreur de mesure, nous avons xiO=xiA=δi, yiO=yiA+ϵi, et yiA=β0+β1xiA, donc nous obtenons
yiO=β0+β1(xiOδi)+ϵi=β0+β1xiO+(ϵiβ1δi)
En admettant que E(ϵi)=E(δi)=0, var(ϵi)=σϵ2, var(δi)=σδ2=1ni=1n(δiδ¯)2 et la variance de la valeur réelle du prédicteur σx2=(xiAxA¯)2n et corrélation du vrai prédicteur et de l'erreur σxδ=cov(xA,δ)=1ni=1n(xiAxiA¯)(δiδ¯), puis

cov(xiO,δ)=E(xiOδ)E(xiO)E(δ)=E(xiOδ)=E[(xiA+δ)δ]=E(xiAδ)+E(δ2)
=[E(xiAδ)E(xiA)E(δ)]+[var(δ)+[E(δ)]2]=cov(xiA,δ)+σδ2=σxδ+σδ2
Puis par x¯=E(xi) et la propriété de bilinéarité en covariance, l'attente de β^1 est
E(β^1)=E[i=1n(xiOx¯O)yiOi=1n(xiOx¯O)2]=E(i=1nxiOyiO)E(i=1nx¯OyiO)i=1nE[(xiOE(xiO))2]=E(i=1nxiOyiO)E(xiO)E(i=1nyiO)i=1nvar(xiO)
=i=1ncov(yiO,xiO)i=1nvar(xiO)=i=1ncov(β0+β1xiO+ϵiβ1δi, xiO)i=1nvar(xiO)=β1i=1nvar(xiO)β1i=1ncov(xiO,δi)i=1nvar(xiO)
=β1[1i=1ncov(xiO,δi)/ni=1nvar(xiA+δi)/n]=β1[1σxδ+σδ2σx2+2cov(xiA,δi)+σδ2]=β1[σx2+σxδσx2+2σxδ+σδ2]
, as desired. Hence, the result E(β^1)=β1[σx2+σxδσx2+2σxδ+σδ2] is well-established.

1

I have a similar problem - posted here - and no certain answer still. What I did for the moment is simply gather a set of very similar Xs and check if there's a big variation for Y within those lines. Another kind of approach could be some a simulation: you use a single X from your dataset, but replicate the lines following the predictors systematic error (something like rnorm(...,0,0.3)). The confidence interval for slope may be something similar to the systematic error span.


0

I would recommend a parametric bootstrap on the data. That means generating new datasets that are similar to the real dataset, but are different to the extent implied by your uncertainty in each observation.

Here's some pseudo-code for that. Notice I'm using vector inputs to rnorm, as is normal in the R language. Also I'm assuming that what you are calling Δ are standard errors.

For each b in 1...B:
    x_PB = rnorm(x, x_se)
    y_PB = rnorm(y, y_se)
    r[b] = cor(x_PB, y_PB)

Then look at the distribution of the values in r.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.