다양한 기능적 데이터 분석 방법을 테스트하려고합니다. 이상적으로는 시뮬레이션 된 기능 데이터에 대한 접근 방식의 패널을 테스트하고 싶습니다. 합산 가우시안 노이즈 (아래 코드)를 기반으로 한 접근법을 사용하여 시뮬레이션 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)
@ 매크로 : nop, 확대하면 플롯에 의해 생성 된 함수가 부드럽 지 않다는 것을 알 수 있습니다. 다음 슬라이드의 일부 곡선과 비교하십시오 : bscb.cornell.edu/~hooker/FDA2007/Lecture1.pdf . x의 부드러운 스플라인이 트릭을 수행 할 수는 있지만 데이터를 생성하는 직접적인 방법을 찾고 있습니다.
—
user603 2016 년
노이즈 (모든 확률 론적 모델의 필수 부분)를 포함 할 때마다 원시 데이터는 본질적으로 매끄럽지 않습니다. 당신이 말하는 스플라인 피팅 은 실제 관측 데이터 (신호와 노이즈의 조합)가 아니라 신호 가 부드럽다 고 가정합니다 .
—
매크로
@ 매크로 : 시뮬레이션 된 프로세스를이 문서의 16 페이지에있는 프로세스와 비교하십시오 : inference.phy.cam.ac.uk/mackay/gpB.pdf
—
user603
고차 다항식을 사용하십시오. 랜덤 계수 (올바른 분포)를 가진 20도 다항식은 방향을 매우 매끄럽게 변경할 수 있습니다. 질문에 대한 답변을 찾은 경우 답변으로 게시 할 수 있습니까?
—
매크로
x=seq(0,2*pi,length=1000); plot(sin(x)+rnorm(1000)/10,type="l");