Como posso plotar um objeto fda usando ggplot2?
Sep 04 2020
Usando o pacote fda, criei o objeto fd chamado "curva":
splinebasis = create.bspline.basis(rangeval = c(0,100),
nbasis = 23,
norder = 4)
curve = smooth.basis(x, y, splinebasis)$fd
Neste ponto, posso facilmente plotar meu objeto fd por meio do comando:
plot(curve)
Obtendo um bom resultado.
O que eu gostaria de fazer é plotar o objeto usando o pacote ggplot2, mas infelizmente não tenho ideia de como codificar o ggplot2 st ele usa a base e o coeficiente para retornar a curva contínua *.
- Na verdade, eu fiz isso usando eval.fd, mas desejo plotar a função spline B real usando ggplot, em vez de alguns novos pontos discretos gerados.
Respostas
1 MarcoSandri Sep 04 2020 at 21:32
Aqui está uma solução simples usando predictdo fdapacote.
library(fda)
set.seed(1)
x <- 0:100
y <- cumsum(rnorm(101))
splinebasis <- create.bspline.basis(rangeval = c(0,100),
nbasis = 23,
norder = 4)
curve <- smooth.basis(x, y, splinebasis)
# Plot using base graphic engine
plot(curve$fd)
# Plot using ggplot2
library(ggplot2)
xx <- seq(0,100,0.1)
df <- data.frame(x=xx, yhat = predict(curve, newdata=xx))
ggplot(data=df, aes(x=x, y=yhat)) +
geom_line() +
geom_hline(aes(yintercept=0), linetype=2) +
labs(x="time", y="value") +
theme_bw()
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas