Je veux estimer la valeur à risque glissante pour un ensemble de données d'environ 22,5 millions d'observations, donc je veux utiliser sparklyr pour un calcul rapide. Voici ce que je faisais (en utilisant une base de données de l'échantillon):rollapply pour des données volumineuses en utilisant sparklyr
library(PerformanceAnalytics)
library(reshape2)
library(dplyr)
data(managers)
data <- zerofill(managers)
data<-as.data.frame(data)
class(data)
data$date=row.names(data)
lmanagers<-melt(data, id.vars=c('date'))
Maintenant, j'estimer la VAR dplyr et packages PerformanceAnalytics:
library(zoo) # for rollapply()
var <- lmanagers %>% group_by(variable) %>% arrange(variable,date) %>%
mutate(var=rollapply(value, 10,FUN=function(x) VaR(x, p=.95, method="modified",align = "right"), partial=T))
Cela fonctionne très bien. Maintenant, je le fais pour utiliser sparklyr:
library(sparklyr)
sc <- spark_connect(master = "local")
lmanagers_sp <- copy_to(sc,lmanagers)
src_tbls(sc)
var_sp <- lmanagers_sp %>% group_by(variable) %>% arrange(variable,date) %>%
mutate(var=rollapply(value, 10,FUN=function(x) VaR(x, p=.95, method="modified",align = "right"), partial=T)) %>%
collect
Mais cela donne l'erreur suivante:
Error: Unknown input type: pairlist
Quelqu'un peut-il s'il vous plaît me dire où est l'erreur et quel est le bon code? Ou toute autre solution pour estimer la VaR roulante plus rapidement est également appréciée.
vous réalisez que 'data $ date = row.names (data)' vous donne un vecteur de 'character', pas de' Date'? Que se passe-t-il si vous faites 'data $ date <- as.Date (row.names (data))' – C8H10N4O2