我在矩阵M中有以下观察:在1到5组(列)中的每一个中有30个观察结果(行)
可重复的代码:
Simulate_phase_correction_isochronous<-function(N, nseq, alpha, st, sm)
{
As<-matrix(NA, nrow=N, ncol=nseq)
for(o in 1:nseq)
{
M=rnorm(N+2)
T=rnorm(N+2)
Z=st*T[1:(N+1)]-sm*M[2:(N+2)]+sm*M[1:(N+1)]
AA=rep(0,N+2)
for(I in 1:(N+1))
{
AA[I+1]<-(1-alpha)*AA[I]+Z[I]
}
As[,o]<-AA[3:(N+2)]
}
As
}
set.seed(1)
M<-Simulate_phase_correction_isochronous(N=30, nseq=5, a=0.5, st=10, sm=5)
y=M[2:dim(M)[1],]
x=M[1:(dim(M)[1]-1),]
#wide to long
data<-reshape2::melt(y);
names(data)<-c("n", "group", "y")
data$x<-melt(x)$value
目标:我想估计方差的参数和滞后时的协方差 - + 1。
这可以通过使用gls {name}函数中的移动平均模型来完成:
MA1.gls<-gls(y~x, data=data,corr=corARMA(q=1, form=~1|group), method="ML" )
我的问题: 如何在gls函数中设置约束/限制以满足特定条件?例如:
2 *协方差&lt;差异