Question:
Quels sont les inconvénients de l'utilisation de la moyenne pour les valeurs manquantes?
ali
2020-04-03 01:13:50 UTC
view on stackexchange narkive permalink

J'ai un devoir (cours d'exploration de données) et il y a une partie qui demande: "Quels sont les inconvénients de l'utilisation de la moyenne pour les valeurs manquantes?"dans la section Valeur manquante .

J'ai donc cherché un peu et la réponse la plus courante était: "Parce que cela réduit la variance."

Pourquoi cette réduction de variance est-elle considérée comme une mauvaise chose?Et y a-t-il un autre inconvénient que la réduction de la variance?

Six réponses:
BruceET
2020-04-03 03:19:07 UTC
view on stackexchange narkive permalink

Exemple avec des données normales. Supposons que les données réelles soient un échantillon aléatoire de taille $ n = 200 $ de $ \ mathsf {Norm} (\ mu = 100, \ sigma = 15), $ mais vous ne connaissez pas $ \ mu $ ou $ \ sigma $ et cherchez à les estimer. Dans l'exemple ci-dessous, j'estimerais $ \ mu $ par $ \ bar X = 100,21 $ et $ \ sigma $ par $ S = 14,5, $ Les deux estimations sont plutôt bonnes. (Simulation et calculs dans R.)

  set.seed (402) # pour la reproductibilité
x = rnorm (200, 100, 15)
moyenne (x); sd (x)
# [1] 100.2051 # aprx 100
# [1] 14.5031 # aprx 15
 

Supposons maintenant que 25% de ces données manquent. (C'est une grande proportion, mais je suis essayant de faire valoir un point.) Si je remplace les observations manquantes par la moyenne des 150 observations non manquantes, voyons ce que mes estimations de $ \ mu $ et $ \ sigma $ serait.

  x.nonmis = x [51: 200] # pour simplifier, supposons qu'il manque les 50 premiers
x.imputd = c (rep (moyenne (x.nonmis), 50), x.nonmis)
longueur (x.imputd); moyenne (x.imputd); sd (x.imputd)
# [1] 200 # 'x.imputd' a une longueur appropriée de 200
# [1] 100.3445 # aprx 100
# [1] 12.58591 # beaucoup plus petit que 15
 

Nous estimons maintenant $ \ mu $ comme $ \ bar X_ {imp} = 100,3, $ ce qui n'est pas une mauvaise estimation, mais potentiellement (comme ici) pire que la moyenne des données réelles. Cependant, nous estimons maintenant $ \ sigma $ comme $ S_ {imp} = 12.6, $ , ce qui est assez un peu en dessous du vrai $ \ sigma $ et de sa meilleure estimation 14,5 à partir des données réelles.


Example avec des données exponentielles. Si les données sont fortement biaisées à droite (comme pour les données d'une population exponentielle), le remplacement des données manquantes par la moyenne des données non manquantes pourrait masquer l'asymétrie de sorte que nous pouvons être surpris que les données ne reflètent pas le poids réel de la queue droite de la population.

  set.seed (2020) # pour la reproductibilité
x = rexp (200, .01)
moyenne (x); sd (x)
# [1] 108.0259 # aprx 100
# [1] 110.1757 # aprx 100
x.nonmis = x [51: 200] # pour simplifier, supposons qu'il manque les 50 premiers
x.imputd = c (rep (moyenne (x.nonmis), 50), x.nonmis)
longueur (x.imputd); moyenne (x.imputd); sd (x.imputd)
# [1] 200
# [1] 106.7967 # aprx 100
# [1] 89.21266 # inférieur à 100
boxplot (x, x.imputd, col = "skyblue2", main = "Données: réelles (à gauche) et imputées")
 

La boîte à moustaches montre plus d'asymétrie dans les données réelles (beaucoup d'observations en queue haute) que dans les données "imputées".

enter image description here


Example avec des données bimodales. Encore ici, quand nous remplaçons les valeurs manquantes par la moyenne des observations non manquantes, l'écart type de la population est sous-estimé. Peut-être plus sérieusement, le grand nombre de valeurs imputées au centre de l'échantillon «imputé» masque la nature bimodale des données.

  set.seed (1234) # pour la reproductibilité
x1 = rnorm (100, 85, 10); x2 = rnorm (100, 115, 10)
x = sample (c (x1, x2)) # ordre de brouillage aléatoire
moyenne (x); sd (x)
# [1] 99.42241
# [1] 18.97779
x.nonmis = x [51: 200] # pour simplifier, supposons qu'il manque les 50 premiers
x.imputd = c (rep (moyenne (x.nonmis), 50), x.nonmis)
longueur (x.imputd); moyenne (x.imputd); sd (x.imputd)
# [1] 200
# [1] 99.16315
# [1] 16.41451
par (mfrow = c (1,2))
 hist (x, prob = T, col = "skyblue2", main = "Actual")
 hist (x.imputd, prob = T, col = "skyblue2", main = "Imputed")
par (mfrow = c (1,1))
 

enter image description here

En général: Le remplacement des données manquantes par des données non manquantes entraîne une sous-estimation du SD de la population, mais peut également masquer des éléments importants caractéristiques de la population à partir de laquelle les données ont été échantillonnées.


Remarque: Comme @ benso8 l'observe, utiliser la moyenne des données non manquantes pour remplacer les observations manquantes n'est pas toujours une mauvaise idée. Comme mentionné dans la question, cette méthode réduit la variabilité. Il y aura forcément des inconvénients à tout schéma pour traiter les données manquantes. La Question demandait des spéculations sur les inconvénients possibles autres que la réduction de la variance pour cette méthode. J'ai essayé d'illustrer quelques possibilités dans mes deux derniers exemples.

Méthode alternative provisoire: Je ne suis pas un expert en data mining. Je propose donc très provisoirement une méthode alternative. Je ne prétends pas que ce soit une nouvelle idée.

Au lieu de remplacer tous les éléments manquants $ m $ par la moyenne de l'échantillon des éléments non manquants, on peut prendre un échantillon aléatoire de taille $ m $ parmi les observations non manquantes, et mettez-le à l'échelle de sorte que les éléments $ m $ aient la même moyenne et écart-type que les données non manquantes . Combinez ensuite les éléments $ m $ redimensionnés avec les éléments non manquants pour obtenir un échantillon 'imputé' avec à peu près la même moyenne et écart-type que la partie non manquante de l'échantillon.

Le résultat ne doit pas systématiquement sous-estimer l'écart-type de la population et peut mieux préserver les caractéristiques de la population telles que l'asymétrie et la bimodalité. (Commentaires bienvenus.)

Cette idée est explorée pour les données bimodales ci-dessous:

  set.seed (4321) # pour la reproductibilité
x1 = rnorm (100, 85, 10); x2 = rnorm (100, 115, 10)
x = échantillon (c (x1, x2)) # scrmble
moyenne (x); sd (x)
# [1] 100,5299
# [1] 17.03368
x.nonmis = x [51: 200] # pour simplifier, supposons qu'il manque les 50 premiers
an = moyenne (x.nonmis); sn = sd (x.nonmis)
x.subt = sample (x.nonmis, 50) # substituts temporaires non mis à l'échelle
comme = moyenne (x.subt); ss = sd (x.subt)
x.sub = ((x.subt - as) / ss) * sn + an # substituts mis à l'échelle

x.imputd = c (x.sub, x.nonmis)
moyenne (x.imputd); sd (x.imputd)
# [1] 100,0694 # aprx identique à la moyenne des non manquants
# [1] 16.83213 # aprx même SD OS de non manquant

par (mfrow = c (1,2))
 hist (x, prob = T, col = "skyblue2", main = "Actual")
 hist (x.imputd, prob = T, col = "skyblue2", main = "Imputed")
par (mfrow = c (1,1))
 

enter image description here

J'aime beaucoup votre idée de remplacer les valeurs manquantes par un échantillon aléatoire par la moyenne et la variance qui correspondent aux données réelles.Comme vous le faites remarquer, à condition que l'échantillon soit suffisamment grand, cela ne devrait pas systématiquement fausser un modèle ou des inférences dérivées des données.Le seul cas auquel je peux penser où l'utilisation de données simulées pour des valeurs manquantes avec une moyenne et une variance similaires pourrait être une mauvaise idée est si, pour une raison quelconque, les valeurs manquantes étaient corrélées d'une manière ou d'une autre et étaient toutes des valeurs aberrantes.Cas juste et de bord cependant vraiment.
Oui, l'horreur cachée des données manquantes est la crainte que la même chose qui provoque des blancs ne perturbe l'état normal du processus.Ne voyez pas de moyen de vous prémunir contre cela.
Je crois que votre méthode suggérée est une version de * imputation hot deck * (cf, ici: [Hot deck imputation, '' elle préserve la distribution des valeurs des items '', comment cela peut-il être?] (Https: // stats.stackexchange.com/q/307339/)).
benso8
2020-04-03 02:47:51 UTC
view on stackexchange narkive permalink

Utiliser la moyenne des valeurs manquantes n'est pas TOUJOURS une mauvaise chose. En économétrie, c'est un plan d'action recommandé dans certains cas à condition de comprendre quelles peuvent être les conséquences et dans quels cas cela est utile. Comme vous l'avez lu, le remplacement des valeurs manquantes par la moyenne peut réduire la variance. Voici ce que cela peut causer.

Notez que pour les modèles de régression, le coefficient de détermination $$ R ^ 2 = \ frac {SSR} {SSTO} = \ frac {\ sum (\ hat {y_i} - \ bar {y}) ^ 2} {\ sum (y_i - \ bar {y}) ^ 2}. $$ En supposant qu'il vous manque $ y $ span > et vous les remplacez par la moyenne de l'échantillon, vous pouvez alors avoir une valeur $ R ^ 2 $ qui n'est pas aussi précise que celle des données réelles. Une plus grande variance des données signifie qu'il y a plus de données qui sont probablement plus éloignées de la droite de régression. Étant donné que la valeur de $ R ^ 2 $ dépend des valeurs individuelles observées de $ y $ (voir $ y_i $ dans $ SSTO $ ), votre $ R ^ 2 $ pourrait être gonflé car $ SSTO $ sera plus petit.

Prenons un exemple.

Supposons que vous ayez une valeur $ x_3 $ et que l'observation correspondante pour cette valeur de $ x $ était $ y_3 $ . Nous faisons le calcul pour ce résultat pour SSTO et nous avons

$$ (y_3 - \ bar {y}) ^ 2 $$

et ce résultat est ajouté à la somme pour $ SSTO $ . Maintenant, disons plutôt que la valeur $ y_3 $ est manquante. Nous laissons ensuite le $ y_3 = \ bar {y} $ manquant. Nous avons alors

$$ (\ bar {y} - \ bar {y}) ^ 2 = 0. $$ .

Comme vous pouvez le voir, lorsque nous ajoutons ceci aux autres résultats pour le dénominateur, la somme de $ SSTO $ sera plus petite.

Je ne comprends pas comment votre exemple appuie l'affirmation selon laquelle ce n'est pas toujours mauvais.Votre exemple est que le $ R ^ 2 $ résultant est biaisé pour être trop élevé.Pourquoi cela serait-il avantageux?Est-ce que j'ai râté quelque chose?
@gung-ReinstateMonica Je fournissais des informations supplémentaires à la question initiale.La question initiale était «Pourquoi cette réduction de variance est-elle considérée comme une mauvaise chose?» Je voulais préciser que ce n'est pas toujours une mauvaise chose.J'ai ensuite confirmé que cela pouvait toutefois réduire la variance et j'ai donné un exemple de ce qui peut poser problème.
llottmanhill
2020-04-03 23:03:56 UTC
view on stackexchange narkive permalink

Un autre inconvénient possible de l'utilisation de la moyenne des valeurs manquantes est que la raison pour laquelle les valeurs sont manquantes en premier lieu peut dépendre des valeurs manquantes elles-mêmes.(Ceci est appelé manquant pas au hasard.)

Par exemple, sur un questionnaire de santé, les répondants plus lourds peuvent être moins disposés à divulguer leur poids.La moyenne des valeurs observées serait inférieure à la vraie moyenne pour tous les répondants, et vous utiliseriez cette valeur à la place de valeurs qui devraient en fait être considérablement plus élevées.

L'utilisation de la moyenne est moins problématique si la raison pour laquelle les valeurs sont manquantes est indépendante des valeurs manquantes elles-mêmes.

Je ne vois pas pourquoi l'imputation des moyennes est moins problématique si les données sont NMAR.Il semble que ce serait encore pire dans ce cas que dans le cas du MCAR.
@gung-ReinstateMonica Je dirais que la réponse est d'accord avec votre commentaire, bien que les doubles négations rendent les deux un peu contrariés.
PLL
2020-04-05 15:32:25 UTC
view on stackexchange narkive permalink

Le problème n'est pas spécifiquement qu'il réduit la variance, mais qu'il change la variance de l'ensemble de données, ce qui en fait une estimation moins précise pour la variance de la population réelle. Plus généralement, cela rendra l'ensemble de données un reflet moins précis de la population, à bien des égards.

Il est utile d’envisager des alternatives. Pourquoi utiliser 0 (ou toute autre valeur aléatoire) pour les points manquants serait-il une mauvaise idée? Parce que cela modifierait l'ensemble de données de manière artificielle, le rendrait moins représentatif de la population idéale et rendrait les conclusions que vous tirez de l'ensemble de données moins précises. Pourquoi utiliser la moyenne des points manquants moins que d’autres valeurs? Parce que cela ne change pas la moyenne de l'ensemble de données - et que la moyenne est généralement la statistique la plus importante. Mais ce n’est qu’une seule statistique! L'intérêt de l'exploration de données est que l'ensemble de données a contient beaucoup plus d'informations en plus de la moyenne. Remplir les points manquants avec la moyenne peut affecter tout le reste de ces informations. Ainsi, l'ensemble de données rempli sera moins précis pour tirer des conclusions sur la population réelle. La variance n'est qu'un élément particulier de cette information supplémentaire, qui illustre clairement les changements.

Chronocidal
2020-04-03 15:50:38 UTC
view on stackexchange narkive permalink

"Pourquoi cette réduction de variance est-elle considérée comme une mauvaise chose?"

À titre d'exemple simplifié à l'extrême: imaginez, un instant, que vous ayez une économie extrêmement petite sur une île quelque part, avec seulement 5 personnes.Leurs revenus annuels sont les suivants:

  • Personne 1: ♦ 10 000
  • Personne 2: ♦ 10 000
  • Personne 3: ♦ 12 000
  • Personne 4: ♦ 13 000
  • Personne 5: ♦ 25 000

Un constructeur automobile cherchant à «pénétrer le marché» décide de fixer le prix de ses véhicules en fonction des revenus annuels moyens.

Moyenne: ♦ 14 000
Médiane: ♦ 12 000
Mode: ♦ 10 000

Comme vous pouvez le voir, l'utilisation du mode pourrait exclure 80% de la population d'acheter son produit, ce qui en fait un très mauvais choix pour construire une analyse de rentabilisation!

Pensez-y - appliquez ceci aux États-Unis: le revenu moyen pour 2018 était de \ 50,4 k $, la médiane était de 33,7 k $.Les primes d'assurance maladie s'élevaient à environ 20,5 k $ ...
L'imputation de la médiane ou du mode ne résout pas le problème de la réduction de la variance.
AJKOER
2020-04-05 00:46:04 UTC
view on stackexchange narkive permalink

Oui, j'aime l'idée d'échantillonner à partir d'une distribution, quand on a beaucoup de valeurs manquantes, pour obtenir une valeur de remplacement pour la valeur manquante k.

Mon choix, cependant, est une distribution centrée sur la médiane de l'échantillon (pas la moyenne) et avec la variance donnée ici https://www.jstor.org/stable/30037287?seq=1.

Peut-être un échantillon d'une normale tronquée basée sur les paramètres ci-dessus.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 4.0 sous laquelle il est distribué.
Loading...