R - veuillez partager vos expériences - page 6

 
RandomWorker:

J'ai entré EURUSD dans R. J'ai calculé le modèle et le coefficient. Comment dessiner le graphique et l'aligner avec le kotir ?


?tracer ?lignes ?points

Au fait, vous venez d'estimer le modèle. La prédiction est effectuée par la fonction predict.

n <- 100
n.ahead <- 15
ts <- sin(0.05 * pi * (1 : n)) + rnorm(n = n, mean = 0, sd = 0.1)
ts.model <- ar(ts, method = 'burg')
ts.pred <- predict(ts.model, n.ahead = n.ahead)
plot(
  1 : (n + n.ahead),
  c(ts, rep(NA, n.ahead)),
  t = 'l'
  )
lines(
  (n + 1) : (n + n.ahead),
  as.numeric(ts.pred$pred),
  col = 'gray'
  )
lines(
  (n + 1) : (n + n.ahead),
  as.numeric(ts.pred$pred) + as.numeric(ts.pred$se),
  col = 'gray',
  lty = 'dashed'
  )
lines(
  (n + 1) : (n + n.ahead),
  as.numeric(ts.pred$pred) - as.numeric(ts.pred$se),
  col = 'gray',
  lty = 'dashed'
  )
 
anonymous:


?tracer ?lignes ?points

D'ailleurs, vous n'avez fait qu'estimer le modèle. La prédiction est effectuée par la fonction predict.

Merci. C'est difficile pour moi, cependant. Je vais essayer.

Ce que vous avez écrit s'inspire de l'histoire ?

 
anonymous:


?tracer ?lignes ?points

D'ailleurs, vous n'avez fait qu'estimer le modèle. La prédiction est effectuée par la fonction predict.

J'ai un peu compris.

Les prédictions ne m'intéressent pas.

J'ai un modèle que je considère comme un indicateur, quelque chose comme MA. Comment le dessiner sur l'historique sur lequel le modèle a été calculé ?

 
RandomWorker:

Comment le dessiner sur l'histoire sur laquelle le modèle a été calculé ?


?tracé ?lignes

library(TTR)

x <- cumsum(rnorm(100))
x.ma <- EMA(x, 10)

plot(x, t = 'l')
lines(x.ma, col = 'red')
 
anonymous:


?tracé ?lignes

> x<-ar(eur[1:256],method="mle")
> x

appeler :
ar(x = eur[1:256],method="mle")

Coefficients :
1 2 3
0.9420 0.1955 -0.1644

Ordre sélectionné 3 sigma^2 estimé à 2.73e-06
> plot(x, t = 'l')
Erreur dans xy.coords(x, y, xlabel, ylabel, log) :

x est une liste, mais n'a pas les composantes x et y.

Désolé, mais je dois être exceptionnellement stupide.

 
RandomWorker:
> plot(x, t = 'l')


Essayez ceci : plot(eur[1:256], t='l')

 
anonymous:


Essayez comme suit : plot(eur[1:256], t='l')

Aucune question n'est posée. Je l'ai dessiné. Mais c'est un vecteur.

x<-ar(eur[1:256],method="mle")

Ici, x n'est pas un vecteur. Il contient une formule qui peut être utilisée pour faire des calculs comme dans la prédiction, mais sur l'histoire.

 
RandomWorker:

Aucune question n'est posée. Je l'ai dessiné. Mais c'est un vecteur.

x<-ar(eur[1:256],method="mle")

Ici, x n'est pas un vecteur. Il contient une formule qui peut être utilisée pour faire des calculs comme dans le préfixe, mais sur l'histoire.


La commande ?ar nous indique que x est une liste et non une formule. La classe(x) aussi.

La commande str(x) affiche le contenu de l'objet.

Le fitted(x) donne NULL, mais x a une composante résiduelle (résidus pour les données originales) - les valeurs du modèle peuvent encore être calculées : (eur[1:256]-x$resid).

Plot(eur[1:256], t='l')

Ajouter une ligne de valeurs du modèle : lines(eur[1:256]-x$resid, col='red')

 
anonymous:


La commande ?ar nous indique que x est une liste et non une formule. La classe(x) aussi.

La commande str(x) affiche le contenu de l'objet.

fitted(x) donne NULL, mais x a une composante résiduelle (résidus pour les données brutes) - les valeurs du modèle peuvent encore être calculées : (eur[1:256]-x$resid).

Plot(eur[1:256], t='l')

Ajouter une ligne de valeurs du modèle : lines(eur[1:256]-x$resid, col='red')

Je l'ai eu ! Merci.

Mais d'une certaine manière, il est surprenant que, disposant d'une formule, nous ayons indirectement calculé sa valeur. Le prédicat est là, le résultat de l'ajustement ne l'est pas.

 

Une sorte d'ajustement bizarre.

> x<-ar.ols(eur[1:256], order.max = 20, demean = TRUE)

> x


appeler :

ar.ols(x = eur[1:256], order.max = 20, demean = TRUE)


Coefficients :

1 2 3

0.9425 0.1967 -0.1647

Ordre spécifié .max = 20, mais seulement trois coefficients. Je le comprends de cette façon :

eur = 0,9425 + 0,1967*eur(-1) + (-0,1647)*eur(-2)

Il est censé y avoir 20 membres ?

En dehors de cela, j'ai changé différents paramètres, toujours trois coefficients et ils sont très légèrement différents.

Veuillez commenter ce point.

Raison: