给定这个数据集:
y<-c(-13,16,35,40,28,36,43,33,40,33,22,-5,-27,-31,-29,-25,-26,-31,-26,-24,-25,-29,-23,4)
t<-1:24
我的目标是计算两个面积。第一个区域将仅集成来自零线上方的曲线第一部分的数据。第二个区域将整合来自零线下方的曲线第二部分的数据。
首先,我想对该数据拟合正弦波。使用这个优秀的答案:
https://stats.stackexchange.com/questions/60994/fit-a-sinusoidal-term-to-data
我能够拟合正弦波(我将使用带有二次谐波的周期波,它看起来更适合)
ssp <- spectrum(y)
per <- 1/ssp$freq[ssp$spec==max(ssp$spec)]
reslm <- lm(y ~ sin(2*pi/per*t)+cos(2*pi/per*t))
summary(reslm)
rg <- diff(range(y))
plot(y~t,ylim=c(min(y)-0.1*rg,max(y)+0.1*rg))
lines(fitted(reslm)~t,col=4,lty=2) # dashed blue line is sin fit
# including 2nd harmonic really improves the fit
reslm2 <- lm(y ~ sin(2*pi/per*t)+cos(2*pi/per*t)+sin(4*pi/per*t)+cos(4*pi/per*t))
summary(reslm2)
lines(fitted(reslm2)~t,col=3) # solid green line is periodic with second harmonic
abline(h=0,lty=2)
接下来,我想计算仅为正的曲线下的面积,以及仅为负的曲线下的面积。我很幸运地使用 Bolstad2 和 Mess 包中的 AUC 函数查看了类似的答案。但我的数据点并没有整齐地落在零线上,而且我不知道如何将正弦函数分解为仅在零线上方和仅在零线下方的区域。