Comment puis-je effectuer une régression sur des données non normales qui restent non normales une fois transformées?

15

J'ai quelques données (158 cas) qui ont été dérivées d'une réponse d'échelle de Likert à 21 éléments de questionnaire. Je veux / dois vraiment effectuer une analyse de régression pour voir quels éléments du questionnaire prédisent la réponse à un élément global (satisfaction). Les réponses ne sont pas normalement distribuées (selon les tests KS) et je les ai transformées de toutes les manières possibles (inverse, log, log10, sqrt, carré) et elle refuse obstinément d'être distribuée normalement. Le tracé résiduel semble partout, donc je pense qu'il n'est vraiment pas légitime de faire une régression linéaire et de prétendre qu'il se comporte normalement (ce n'est pas non plus une distribution de Poisson). Je pense que c'est parce que les réponses sont très proches (la moyenne est de 3,91, IC à 95% de 3,88 à 3,95).

Donc, je pense que j'ai besoin d'une nouvelle façon de transformer mes données ou que j'ai besoin d'une sorte de régression non paramétrique, mais je ne connais pas ce que je peux faire dans SPSS.

rachel S
la source
1
Considérons une transformation Box-Cox ( en.wikipedia.org/wiki/… ). L'ajout du tracé résiduel à votre question peut être utile.
M. Berk
3
Oui, veuillez nous montrer votre tracé de résidus. peut-être aussi une intrigue qq.
David Marx
5
Si vos valeurs sont discrètes, surtout si elles sont écrasées à une extrémité, il se peut qu'aucune transformation ne rende le résultat encore plus normal. Mais les tests formels d'hypothèses de normalité ne répondent pas à la bonne question et font en sorte que vos autres procédures entreprises à condition que vous rejetiez la normalité n'aient plus leurs propriétés nominales.
Glen_b -Reinstate Monica
1
une régression logistique à cotes proportionnelles serait probablement une approche judicieuse de cette question, mais je ne sais pas si elle est disponible dans SPSS.
Ben Bolker
3
Je ne suis pas convaincu que la régression soit la bonne approche, et non à cause des préoccupations de normalité. Vos réponses au questionnaire peuvent même ne pas être cardinales. Par exemple, si vous demandez à un gars "Êtes-vous heureux?" Et obtenez la réponse 3, alors que le mois dernier c'était 4, cela signifie-t-il qu'il est 25% moins heureux? Très probablement pas. Donc, avant même de commencer à penser à la normalité, vous devez déterminer si vous avez même affaire à des nombres cardinaux et pas seulement à des nombres ordinaux. Il existe des façons spéciales de gérer des idées comme les enquêtes, et la régression n'est pas le choix par défaut. Vous devez d'abord montrer que c'est approprié.
Aksakal

Réponses:

32

Vous n'avez pas besoin de supposer des distributions normales pour effectuer une régression. La régression des moindres carrés est l'estimateur BLEU (meilleur estimateur linéaire et sans biais), quelles que soient les distributions. Voir le théorème de Gauss-Markov (par exemple wikipedia) Une distribution normale n'est utilisée que pour montrer que l'estimateur est également l'estimateur du maximum de vraisemblance. C'est un malentendu commun qu'OLS suppose en quelque sorte des données normalement distribuées. Ce ne est pas. C'est beaucoup plus général.

Dave31415
la source
2
C'est tellement vrai. Beaucoup de gens ignorent souvent ce FAIT.
Repmat
d'accord avec @Repmat. Je ne suis pas sûr d'avoir réussi un test de normalité ... mais mes modèles fonctionnent.
HEITZ
5

Plutôt que de s'appuyer sur un test de normalité des résidus, essayez d'évaluer la normalité avec un jugement rationnel. Les tests de normalité ne vous indiquent pas que vos données sont normales, mais seulement qu'elles ne le sont pas. Mais étant donné que les données sont un échantillon, vous pouvez être certain qu'elles ne sont pas réellement normales sans test. L'exigence est à peu près normale. Le test ne peut pas vous le dire. Les tests deviennent également très sensibles à des N plus grands ou plus sérieusement, varient en sensibilité avec N. Votre N est dans cette plage où la sensibilité commence à devenir élevée. Si vous exécutez la simulation suivante dans R un certain nombre de fois et regardez les graphiques, vous verrez que le test de normalité dit "pas normal" sur un bon nombre de distributions normales.

# set the plot area to show two plots side by side (make the window wide)
par(mfrow = c(1, 2)) 
n <- 158 # use the N we're concerned about

# Run this a few times to get an idea of what data from a 
# normal distribution should look like.
# especially note how variable the histograms look
y <- rnorm(n) # n numbers from normal distribution
# view the distribution
hist(y)
qqnorm(y);qqline(y)

# run this section several times to get an idea what data from a normal
# distribution that fails the normality test looks like
# the following code block generates random normal distributions until one 
# fails a normality test
p <- 1 # set p to a dummy value to start with
while(p >= 0.05) {
    y <- rnorm(n)
    p <- shapiro.test(y)$p.value }
# view the distribution that failed
hist(y)
qqnorm(y);qqline(y)

Espérons que, après avoir parcouru les simulations, vous pouvez voir qu'un test de normalité peut facilement rejeter des données d'aspect assez normal et que les données d'une distribution normale peuvent sembler assez loin de la normale. Si vous voulez voir une valeur extrême de cet essai n <- 1000. Les distributions sembleront toutes normales mais échoueront toujours au test à peu près au même rythme que les valeurs N inférieures. Et inversement, avec une faible distribution N qui réussit le test peut sembler très loin de la normale.

Le tracé résiduel standard dans SPSS n'est pas très utile pour évaluer la normalité. Vous pouvez voir les valeurs aberrantes, la gamme, la qualité de l'ajustement et peut-être même l'effet de levier. Mais la normalité est difficile à en tirer. Essayez la simulation suivante en comparant les histogrammes, les tracés normaux quantile-quantile et les tracés résiduels.

par(mfrow = c(1, 3)) # making 3 graphs in a row now

y <- rnorm(n)
hist(y)
qqnorm(y); qqline(y)
plot(y); abline(h = 0)

Il est extrêmement difficile de distinguer la normalité, ou presque, de la dernière intrigue et donc pas terriblement diagnostique de la normalité.

En résumé, il est généralement recommandé de ne pas s'appuyer sur des tests de normalité mais plutôt sur des tracés diagnostiques des résidus. Sans ces graphiques ou les valeurs réelles de votre question, il est très difficile pour quiconque de vous donner des conseils solides sur les besoins de vos données en termes d'analyse ou de transformation. Pour obtenir la meilleure aide, fournissez les données brutes.

John
la source
Salut à tous pour les suggestions. J'ai fini par regarder mes résidus comme suggéré et en utilisant la syntaxe ci-dessus avec mes variables. Mes données n'étaient pas aussi désastreuses que ce que je pensais, alors j'ai utilisé mes régressions linéaires paramétriques avec beaucoup plus de confiance et une conscience claire! Merci encore.
rachel S
4

Premièrement, la régression OLS ne fait aucune hypothèse sur les données, elle fait des hypothèses sur les erreurs, estimées par les résidus.

Deuxièmement, la transformation des données pour adapter un modèle est, à mon avis, la mauvaise approche. Vous voulez que votre modèle s'adapte à votre problème, et non l'inverse. Autrefois, la régression OLS était "le seul jeu en ville" à cause des ordinateurs lents, mais ce n'est plus vrai.

Troisièmement, je n'utilise pas SPSS, donc je ne peux pas y aider, mais je serais étonné s'il n'offrait pas certaines formes de régression non linéaire. Certaines possibilités sont la régression quantile, les arbres de régression et la régression robuste.

Quatrièmement, je m'inquiète un peu de votre déclaration:

Je veux / dois vraiment effectuer une analyse de régression pour voir quels éléments du questionnaire prédisent la réponse à un élément global (satisfaction)

Si les éléments ont été additionnés ou combinés d'une manière ou d'une autre pour former l'échelle globale, la régression n'est pas du tout la bonne approche. Vous voulez probablement une analyse factorielle.

Peter Flom - Réintégrer Monica
la source
vous avez suggéré qu'il souhaitait peut-être une analyse factorielle, mais l'analyse factorielle n'est-elle pas également affectée si les données ne sont pas normalement distribuées?
rationaliser le
Vous pouvez effectuer une analyse factorielle sur des données qui ne sont même pas continues. Mais c'est une discussion séparée - et elle a été discutée ici.
Peter Flom - Réintègre Monica
1
Bonjour Peter, j'apprécie votre expertise et j'apprécie grandement vos conseils. Merci d'avoir pris le temps de répondre. Juste pour clarifier, je sais que l'on peut faire de l'AF sur des éléments non distribués normalement (ainsi que la discussion sur la normalité des résidus). J'étais simplement curieux d'apprendre (de la part de quelqu'un ayant votre expertise) si le PO ne se heurterait pas au même dilemme. Mais, je suppose que vous avez déjà répondu :)
rationalisez le
1

Globalement, il existe deux approches possibles à votre problème: l'une qui est bien justifiée d'un point de vue théorique, mais potentiellement impossible à mettre en œuvre dans la pratique, tandis que l'autre est plus heuristique.

L'approche théoriquement optimale (que vous ne pourrez probablement pas utiliser, malheureusement) consiste à calculer une régression en revenant à l'application directe de la soi-disant méthode du maximum de vraisemblance. Le lien entre l'estimation du maximum de vraisemblance (qui est vraiment le concept mathématique antérieur et le plus fondamental) et la régression des moindres carrés ordinaires (OLS) (l'approche habituelle, valable pour le cas spécifique mais extrêmement courant où les variables d'observation sont toutes indépendamment aléatoires et normalement distribuées ) est décrit dans de nombreux manuels de statistiques; une discussion que j'aime particulièrement est la section 7.1 de «l'analyse des données statistiques» de Glen Cowan. Dans les cas où vos variables d'observation ne sont pas normalement distribuées,

Dans ce cas, puisque vous ne semblez pas réellement connaître la distribution sous-jacente qui régit vos variables d'observation (c'est-à-dire, la seule chose connue avec certitude est que ce n'est certainement pas gaussien, mais pas ce qu'elle est réellement), l'approche ci-dessus a gagné '' t travailler pour vous. Habituellement, quand OLS échoue ou renvoie un résultat fou, c'est à cause de trop de points aberrants. Les points aberrants, qui brisent l'hypothèse de variables d'observation normalement distribuées, contribuent beaucoup trop à l'ajustement, car les points dans l'OLS sont pondérés par les carrés de leur écart par rapport à la courbe de régression, et pour les valeurs aberrantes, cet écart est large. L'approche heuristique habituelle dans ce cas consiste à développer un ajustement ou une modification de l'OLS qui entraîne une sous-accentuation ou une pondération de la contribution des points aberrants par rapport à la méthode OLS de base. Collectivement, ceux-ci sont généralement appelésrégression robuste . Une liste contenant quelques exemples de techniques d'estimation robustes spécifiques que vous voudrez peut-être essayer peut être trouvée ici .

stachyra
la source