Я пытаюсь проверить различные подходы анализа функциональных данных. В идеале я хотел бы протестировать панель подходов, которые у меня есть, на смоделированных функциональных данных. Я попытался сгенерировать смоделированный FD, используя подход, основанный на суммировании гауссовских шумов (код ниже), но полученные кривые выглядят слишком грубыми по сравнению с реальными .
Мне было интересно, есть ли у кого-нибудь указатель на функции / идеи, чтобы генерировать более реалистично выглядящие моделируемые функциональные данные. В частности, они должны быть гладкими. Я совершенно новичок в этой области, поэтому любые советы приветствуются.
library("MASS")
library("caTools")
VCM<-function(cont,theta=0.99){
Sigma<-matrix(rep(0,length(cont)^2),nrow=length(cont))
for(i in 1:nrow(Sigma)){
for (j in 1:ncol(Sigma)) Sigma[i,j]<-theta^(abs(cont[i]-cont[j]))
}
return(Sigma)
}
t1<-1:120
CVC<-runmean(cumsum(rnorm(length(t1))),k=10)
VMC<-VCM(cont=t1,theta=0.99)
sig<-runif(ncol(VMC))
VMC<-diag(sig)%*%VMC%*%diag(sig)
DTA<-mvrnorm(100,rep(0,ncol(VMC)),VMC)
DTA<-sweep(DTA,2,CVC)
DTA<-apply(DTA,2,runmean,k=5)
matplot(t(DTA),type="l",col=1,lty=1)
r
simulation
functional-data-analysis
user603
источник
источник
x=seq(0,2*pi,length=1000); plot(sin(x)+rnorm(1000)/10,type="l");
Ответы:
Посмотрите, как моделировать реализации гауссовского процесса (GP). Гладкость реализаций зависит от аналитических свойств ковариационной функции ГП. В этой онлайн-книге много информации: http://unterminty.stat.cmu.edu/
Это видео дает хорошее представление о врачах общей практики: http://videolectures.net/gpip06_mackay_gpb/
PS Что касается вашего комментария, этот код может дать вам начало.
источник
Хорошо, вот ответ, который я придумал (по сути, он взят здесь и здесь ). Идея состоит в том, чтобы спроецировать несколько случайных пар на сплайн-основу. Тогда мы уверены, что получим ничью от (гладкого) GP.{ хя, уя}
источник