Comment dois-je interpréter ce tracé résiduel?


8

Je n'arrive pas à interpréter ce graphique. Ma variable dépendante est le nombre total de billets de cinéma qui seront vendus pour un spectacle. Les variables indépendantes sont le nombre de jours restants avant le spectacle, les variables factices saisonnières (jour de la semaine, mois de l'année, vacances), le prix, les billets vendus jusqu'à la date, la cote du film, le type de film (thriller, comédie, etc., sous forme de variables muettes ). Veuillez également noter que la capacité de la salle de cinéma est fixe. Autrement dit, il ne peut héberger un maximum de x nombre de personnes que. Je crée une solution de régression linéaire et elle ne correspond pas à mes données de test. J'ai donc pensé à commencer par les diagnostics de régression. Les données proviennent d'une seule salle de cinéma pour laquelle je souhaite prédire la demande.

Le est un ensemble de données multivarié. Pour chaque date, il y a 90 lignes en double, représentant des jours avant le spectacle. Ainsi, pour le 1er janvier 2016, il y a 90 enregistrements. Il y a une variable 'lead_time' qui me donne le nombre de jours avant le show. Donc, pour le 1er janvier 2016, si lead_time a une valeur de 5, cela signifie qu'il aura des billets vendus jusqu'à 5 jours avant la date du spectacle. Dans la variable dépendante, le nombre total de billets vendus, j'aurai la même valeur 90 fois.

De plus, comme remarque secondaire, existe-t-il un livre qui explique comment interpréter le tracé résiduel et améliorer le modèle par la suite?

entrez la description de l'image ici


5
Pouvez-vous nous parler de votre situation, des données et du modèle? Sinon, comment pourrions-nous interpréter le graphique?
gung - Rétablir Monica

1
Développez l'axe X vers l'arrière (ou "zoom avant"); Je pense que vous verrez des "rayures" dans les résidus.
blackeneth

Il ressemble à une version de stats.stackexchange.com/questions/25068 . Afin de fournir des réponses utiles, nous avons besoin de plus de détails.
whuber

Existe-t-il un nombre total fixe de billets pouvant éventuellement être vendus?
gung - Rétablir Monica

@gung, oui car la capacité de la salle de cinéma est fixe, c'est-à-dire le nombre de places. J'ajoute cela à la question maintenant, car cela pourrait mieux expliquer la question. Merci!
Enthusiast

Réponses:


4

L'intrigue est très dense, il n'est donc pas facile de voir toutes les tendances. Vous pouvez exécuter des tests alternatifs d'hétoroscédasticité et d'autocorrélation pour obtenir des diagnostics supplémentaires.

Ce qui est visible, c'est qu'au cours des 100 premières valeurs environ, la variance des augmentations résiduelles peut faire allusion à l'hétoroscédasticité. Par la suite, la variance semble diminuer à nouveau. Ce comportement quelque peu non linéaire de la variance peut également indiquer la nécessité d'une forme fonctionnelle différente (donc peut-être polynomiale au lieu de linéaire). Une autre indication en est la tendance des résidus que vous observez dans le haut des valeurs ajustées (il n'y a plus de résidus positifs).


La caractéristique polynomiale semble une idée raisonnable et la justification donnée pour cela a du sens. Merci!
Enthusiast

Et oui, il y a une auto-colinéarité et une hétéroskédastocité dans les données que j'essaie de corriger maintenant.
Enthusiast

@Enthusiast Heureux, cela a aidé. Je serais curieux de savoir quel a été le dernier ensemble de solutions qui a permis de résoudre ce problème (une fois que vous avez terminé)
tomka

j'utilise en fait l'approche de diagnostic de modèle suggérée ici. stats.stackexchange.com/a/189116/68444
Enthusiast

et voici la prochaine étape de mon problème stats.stackexchange.com/questions/235562/…
Enthusiast

12

Votre tracé résiduel a un schéma défini, avec plusieurs lignes à la baisse à mesure que les valeurs ajustées augmentent. Ce modèle peut se produire si vous ne tenez pas compte des effets fixes / aléatoires dans votre modèle et que les effets fixes sont corrélés avec des variables explicatives. Prenons l'exemple suivant:

set.seed(999)

N = 1000
num.groups = 10

alpha = runif(num.groups, -10, 10) #Fixed effects
beta = 10 #Slope parameter
group = sample(num.groups, N, replace = TRUE)

X = rnorm(N, mean = alpha[group], sd = 5) #Mean of X correlated with fixed effect
e = rnorm(N, sd = 1)
y = alpha[group] + X * beta + e

df = data.frame(group = as.factor(group), X, y)

m.no.fe = lm(y ~ X, data = df) #Not including group fixed effects
plot(m.no.fe, which = 1)

Il en résulte le tracé résiduel / ajusté suivant: res_fitted_nofe

Vous pourriez voir quelque chose de similaire si, par exemple, vous régressiez les scores SAT sur les revenus d'entrée pour plusieurs lycées, mais omettiez d'inclure les effets fixes du secondaire; chaque école aura des revenus de base différents (c.-à-d. des effets fixes) et des scores SAT moyens, qui sont probablement corrélés.

Y compris les effets fixes de groupe, nous obtenons

m.fe = lm(y ~ group + X, data = df) #Now including fixed effects
plot(m.fe, which = 1)

ce qui donne un bien meilleur tracé résiduel / ajusté:

res_fitted_fe


4
Cela pourrait être vrai, mais ils ressemblent à des lignes parfaitement droites pour moi. Je suppose que Y est un décompte, ou un décompte de «succès» sur un nombre fixe d'essais (c'est-à-dire que le modèle est incorrect). Nous ne le saurons pas tant que l'OP n'en dira pas plus sur les données et le modèle.
gung - Rétablir Monica

@tkmckenzie donc vous voulez dire que je dois créer plus de variables dans le modèle?
Enthusiast

6

Le tracé résiduel semble inhabituel du point de vue de la régression OLS (linéaire) standard. Il y a, par exemple, une indication d'hétéroscédasticité, en particulier que la répartition des résidus est plus importante au milieu qu'aux deux extrémités. Ce n'est cependant pas le vrai problème.

Le vrai problème ici est que vous avez choisi le mauvais modèle. La régression OLS est basée sur l'hypothèse que la réponse est normalement distribuée (conditionnelle aux régresseurs, c'est-à-dire vos variables ). Votre réponse n'est pas normale et ne peut pas l'être. Votre réponse est un certain nombre de sièges vendus sur un nombre total de sièges dans le théâtre. Votre réponse est binomiale . Un binôme ne peut pas être modélisé correctement avec OLS. Vous devez adapter un modèle de régression logistique . X

Il y aura d'autres problèmes que vous devrez résoudre. Un couple qui ressort de votre description est que vous avez des observations groupées, en ce sens que vous avez plusieurs observations pour le même spectacle (c'est-à-dire au cours des 90 jours). Vous devez remédier à cette non-indépendance, peut-être en installant un GLMM . Un autre problème est qu'il y aura une dépendance entre les jours successifs au sein du même spectacle. Après tout, si vous avez vendu billets le jour , vous en aurez vendu au moins autant le jour . Une façon d'essayer de résoudre ce problème consiste à ajuster seulement 89 jours de données et à inclure le nombre de la veille en tant que covariable.yddd+1 (Désolé, en relisant la question, je vois que vous avez déjà inclus une variable de billets vendus jusqu'à la date.)

Il peut bien y avoir plus de problèmes à résoudre dans la modélisation de vos données. Ce sont des sujets assez avancés; si vous ne les connaissez pas, vous devrez peut-être travailler avec un consultant en statistique.


Mes données ont une distribution gamma telle qu'elle apparaît à partir des résultats fitdistrplus () et qqplot (). stats.stackexchange.com/questions/234866/…
Enthusiast

@Enthusiast, je suis familier avec fitdistrplus. Si vos données de réponse sont un nombre de places vendues sur un nombre total de places possible, alors elles sont binomiales. C'est tout ce qu'il y a à faire. La distribution gamma est prise en charge sur . Vos données pourraient avoir sièges vendus, ne peuvent pas avoir sièges vendus, et ne peuvent pas avoir plus de sièges vendus que existons dans le théâtre. Vos données ne peuvent pas être gamma. (0,)03.5
gung - Rétablir Monica
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.