2017-06-26 2 views
1

Je construis un modèle de prévision de série chronologique. Les données que j'ai ont une «quantité» variable qui est le coût du fret pour le matériel transporté. J'ai 10 ans de données dans le format mensuel. Le défi ici est le montant de la facture de fret d'un mois ne reflète pas nécessairement le montant facturé pour les matériaux transportés dans ce mois seulement. Parfois, les matériaux sont transportés en fragments et sont chargés dans les 2-3 prochains mois et ces factures deviennent étonnamment élevées perturbant le modèle de séries temporelles de façon aléatoire. Par exemple, si j'ai le projet de loi de mars 2017, il pourrait aussi y avoir un montant de janvier et février. J'ai essayé ARIMA et obtenu un MAPE de 40%. J'ai essayé la méthode de Croston et MAPE varie de 23% à 32%. Est-ce qu'une prévision de fenêtre mobile aiderait ici? Ou toute autre suggestion, s'il vous plaît.Meilleure approche pour la prévision dans ce cas typique

Édition 1 - J'ai ajouté l'ensemble de données (Année 2008 - 2016). J'ai réussi à obtenir des données sur les revenus mensuels de mon professeur. Donc, j'ai essayé le modèle bivarié en utilisant la fonction TSLM qui m'a donné R-carré de 67%. C'est beaucoup plus bas que ce à quoi il s'attend.

yearmon Paid.Amount revenue 
8-Jan 1936599.88 2937700 
8-Feb 1844486.91 3074900 
8-Mar 1735122.05 3690000 
8-Apr 1279519.88 3097700 
8-May 1539967.05 3077100 
8-Jun 1231146.36 3352300 
8-Jul 1162991.84 2400600 
8-Aug 1263879.69 3050000 
8-Sep 1244323  3899200 
8-Oct 1424559.93 3533000 
8-Nov 898217.92 2723400 
8-Dec 1085732.89 4055400 
9-Jan 1029221.93 2486600 
9-Feb 876441.65 2101400 
9-Mar 880441.37 2998400 
9-Apr 722948.96 1996500 
9-May 958005.43 1807400 
9-Jun 610958.71 2332300 
9-Jul 695254.7 2280900 
9-Aug 756439.4 2020500 
9-Sep 926815.65 3231500 
9-Oct 924445.94 2294200 
9-Nov 830403.35 2782700 
9-Dec 925630.38 3246000 
10-Jan 700777.04 2135400 
10-Feb 548469.87 1962800 
10-Mar 696256.42 2641700 
10-Apr 695798.95 2025700 
10-May 704871.44 1996500 
10-Jun 728251.49 2590600 
10-Jul 664962.06 1984500 
10-Aug 727306.82 2421300 
10-Sep 720462.6 3084000 
10-Oct 999328.49 2874300 
10-Nov 950702.54 3069200 
10-Dec 984782.65 3704600 
11-Jan 864608.73 2976800 
11-Feb 711251.25 2981700 
11-Mar 1145917.13 3552500 
11-Apr 844124.97 2684600 
11-May 865543.97 2667900 
11-Jun 883278.98 2707300 
11-Jul 834070.34 2493400 
11-Aug 1116866.09 3023300 
11-Sep 1151143.55 3581100 
11-Oct 1351395.01 3217800 
11-Nov 1118297.76 3239000 
11-Dec 1374179.71 4637800 
12-Jan 989117.07 3313000 
12-Feb 927470.54 2530600 
12-Mar 1069185.01 3496500 
12-Apr 1009312.54 2403000 
12-May 1022559.87 2638500 
12-Jun 961677.71 3246000 
12-Jul 834523.02 2272300 
12-Aug 1081960.39 2886000 
12-Sep 1107927.72 3890100 
12-Oct 1093140.22 2682100 
12-Nov 1310195.61 3292000 
12-Dec 1344106.8 4960100 
13-Jan 1030537.47 3114800 
13-Feb 911014.19 3121300 
13-Mar 930071.08 3490900 
13-Apr 890881.25 2542800 
13-May 876954.67 2354800 
13-Jun 915720.02 3382700 
13-Jul 908514.48 2310000 
13-Aug 1043391.95 3087300 
13-Sep 1093640.35 3869300 
13-Oct 1197865.65 3170800 
13-Nov 1216958.3 3875300 
13-Dec 1461027.39 5801000 
14-Jan 1242969.8 2970300 
14-Feb 1054214.44 3595300 
14-Mar 1171459.28 4012800 
14-Apr 990720.44 2916700 
14-May 891504.63 2794200 
14-Jun 936850.28 3501000 
14-Jul 985009.09 2689100 
14-Aug 1229039.59 3199000 
14-Sep 1272825  4605200 
14-Oct 1274631.05 3649500 
14-Nov 1493390.61 4171600 
14-Dec 1810523.68 6043700 
15-Jan 1225779.44 3526300 
15-Feb 1066156.45 3374900 
15-Mar 1158659.52 4141200 
15-Apr 1085067.52 3058800 
15-May 1243264.14 2932700 
15-Jun 1375846.69 3581800 
15-Jul 1230235.200 
15-Aug 1242221.75 3348200 
15-Sep 1372310.27 4443200 
15-Oct 1489968.27 3254200 
15-Nov 1520498.52 4086200 
15-Dec 1873884.03 7100500 
16-Jan 1225046.91 2922600 
16-Feb 1169703.36 3314600 
16-Mar 1345611.1 4597900 
16-Apr 1182650.19 3057000 
16-May 1368704.21 3599400 
16-Jun 1485036.6 4292300 
16-Jul 1194201.57 3189600 
16-Aug 1378889.12 3289200 
16-Sep 1533056.53 4666700 
16-Oct 1398696.43 3837600 
16-Nov 1742668.73 4234900 
16-Dec 2162712.41 6418700 

J'apprécierais grandement que quelqu'un puisse suggérer une meilleure approche pour prédire le montant payé.

Merci.

+0

J'aime paquet de prévisions de Hyndman. Il gère bien les données et fournit une série d'options de prévision et de graphiques correspondants. –

+0

Postez votre groupe de données –

+0

@TomReilly - J'ai mis à jour la question et j'ai l'ensemble de données. Dans l'attente de votre suggestion basée sur l'ensemble de données. –

Répondre

0

Sanket,

Vous pouvez télécharger tous les résultats here. Details.htm est l'audit du modèle qui a été construit. Le modèle supporte ceci avec une variable de retard dans la variable de revenu montrant qu'il y a un retard sur son impact sur Y (payé). Une tendance temporelle commençant à la période 1 décroissant et une autre remontant à la période 19 ne sont pas expliquées par les revenus et sont dues à un causal omis. Avez-vous une explication? Si oui, identifiez et ajoutez ce facteur comme causal.

Il y a une faible saisonnalité, mais Autobox a identifié certains mois comme étant importants (c.-à-d. 8,10 et 11 sont tous plus élevés que la moyenne). Un AR2 avec un retard de 1 et 2 jouera également un rôle dans l'utilisation de plus de retards de revenu à la traîne 4. (Voir rhside.txt montrant l'équation de droite pure avec tous les facteurs exprimés comme une régression pure.

une valeur aberrante a été identifiée à la période 17 et un décalage de niveau à 89 augmentation du volume (à nouveau pas expliqué par les revenus alors peut-être une autre cause à effet omis).

Equation

Vous ne fournissaient pas les prévisions de recettes pour que nous J'ai permis à Autobox (un logiciel dont je fais partie) de construire un modèle et de prévoir les valeurs futures. Une amélioration possible pourrait être faite pour fournir de meilleures prévisions de revenus de votre part car c'est aussi un modèle/prévision! La variable des revenus n'est pas restée dans le modèle et nous l'avons ensuite contrainte et elle s'est avérée très significative quand le modèle a évolué pour inclure des variables déterministes et des facteurs AR. Le graphique des revenus et des paiements normalisés bivariés montre une forte relation POSITIVE, mais sachez simplement que vous regardez une relation contemporaine où ils peuvent également avoir des impacts à des retards.

Bivariate Normalized Scatter Plot

Le graphique linéaire bidimensionnelle prend en charge cette décalé relation entre x et y avec une bosse en y quelques périodes plus tard.

Bivariate Normalized Line plot

Voici le enter image description here

+2

Merci, Tom, pour l'analyse détaillée. Je peux voir que R-carré a atteint 90%, ce qui est très bon. J'apprécie énormément vos efforts, mais je ne suis pas en mesure de comprendre quel processus fonctionne derrière cette modélisation. Je vois que vous avez utilisé votre logiciel pour faire la prévision, mais je n'ai aucune idée de comment y parvenir en R. Si vous avez des suggestions sur les fonctions et l'approche que je peux utiliser en R pour obtenir de bons résultats, je vous serais reconnaissant. Merci pour votre temps. –

+0

R-carré n'est pas une bonne balise .... plus vous mettez de variables dans le haut, il va. Nous avons une version de notre logiciel en R donc vous êtes bon. Pour reproduire nos résultats, vous devez créer des variables fictives pour les deux tendances (c'est-à-dire 0,0,0,0,0,1,2,3) répertoriées. Vous devez comptabiliser le composant ARIMA. Vous devez tenir compte du décalage de niveau (par exemple 0,0,0,0,0,1,1,1,1,1, etc.).Vous devez tenir compte du pouls saisonnier (c'est-à-dire 0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 etc.). Vous devez créer un décalage du causal. Vous devez tenir compte de la valeur aberrante (c'est-à-dire 0,0,0,0,0,1,0,0,0, etc.). –

0

prévisions Voici la première approche que j'utilise toujours pour 1 étape relativement simples prévisions mensuelles à venir. Plus de temps pourrait être consacré par la suite pour tenter de modéliser certaines des caractéristiques les plus difficiles de ce problème.

Dans ce cas, j'ai fait ce qui suit:

  1. Retirez les deux premières années de données. Il y a un changement de régime clair ou au moins un changement de tendance qui ne semble pas probable pour les prévisions à court terme.
  2. J'ai transformé les données en utilisant une transformation lognormale. Juste un globe oculaire rapide des données suggérées à moi il pourrait y avoir une croissance non linéaire .
  3. Rompre les données dans une section pour l'ajustement initial, la validation et le test (dans ce cas, je n'ai pas mis de côté les données pour les tests).
  4. Préparez une collection de modèles que vous souhaitez évaluer. Le critère I a choisi de les évaluer sur est le MSE pour les prévisions 1-ahead.
  5. Effectuez une procédure de validation croisée pour ces modèles. Le suivant deux liens expliquent le processus qui peut bien fonctionner pour séries chronologiques. J'ai choisi de sélectionner le modèle avec la plus faible erreur de validation croisée. Si j'avais conservé un ensemble de données de test, j'essaierais de le prévoir à pour confirmer que la performance est aussi bonne ou presque aussi bonne que pendant la période de validation croisée .
  6. Dans la période de validation du modèle optimal, rsqr est de 83,4%. Le MAE est de 86 478 $. Le MAPE est de 6,9%.

Le modèle optimal de différents modèles saisonniers ARIMA I ont été testés et ont fini par être: [0,0,1] [1,1,1] 12 Donc MA = 1, SAR = 1, SDiff = 1 et SMA = 1 où la saison est 12.

Cross Validation Results