Baltık Denizi'nin deniz yüzeyinin sıcaklığının her yıl aynı olduğunu varsaymak istiyorum, sonra bunu bir fonksiyon / doğrusal modelle tanımlamak istiyorum. Benim düşüncem, yılı bir ondalık sayı olarak girmek (ya da num_months / 12) ve sıcaklığın o zaman ne olacağı hakkında bilgi almaktı. R'deki lm () fonksiyonuna atıldığında, sinüzoidal verileri tanımıyor, bu yüzden sadece düz bir çizgi oluşturuyor. Bu yüzden sin () fonksiyonunu bir I () braketi içine koydum ve fonksiyona manüel olarak sığdırmak için birkaç değer denedim, ve bu istediğime yaklaşıyor. Fakat deniz yaz aylarında daha hızlı ısınıyor ve sonbaharda daha yavaş soğuyor ... Bu yüzden model ilk yıl yanlıştır, daha sonra birkaç yıl sonra daha düzelir ve daha sonra gelecekte daha fazla olur ve daha yanlış.
R'nin benim için modeli tahmin etmesini nasıl sağlayabilirim, böylece sayıları kendim tahmin etmek zorunda kalmayacağım? Burada anahtar, her yıl aynı değerleri üretmesini istiyorum, sadece bir yıl için doğru değil. Matematik hakkında daha fazla şey bilseydim, belki günah () yerine Poisson ya da Gaussian gibi bir şey olduğunu tahmin edebilirdim, ama bunu nasıl yapacağımı da bilmiyorum. İyi bir cevaba yaklaşmak için her türlü yardım büyük memnuniyetle karşılanacaktır.
İşte kullandığım veriler ve şimdiye kadarki sonuçları gösterecek kod:
# SST from Bradtke et al 2010
ToY <- c(1/12,2/12,3/12,4/12,5/12,6/12,7/12,8/12,9/12,10/12,11/12,12/12,13/12,14/12,15/12,16/12,17/12,18/12,19/12,20/12,21/12,22/12,23/12,24/12,25/12,26/12,27/12,28/12,29/12,30/12,31/12,32/12,33/12,34/12,35/12,36/12,37/12,38/12,39/12,40/12,41/12,42/12,43/12,44/12,45/12,46/12,47/12,48/12)
Degrees <- c(3,2,2.2,4,7.6,13,16,16.1,14,10.1,7,4.5,3,2,2.2,4,7.6,13,16,16.1,14,10.1,7,4.5,3,2,2.2,4,7.6,13,16,16.1,14,10.1,7,4.5,3,2,2.2,4,7.6,13,16,16.1,14,10.1,7,4.5)
SST <- data.frame(ToY, Degrees)
SSTlm <- lm(SST$Degrees ~ I(sin(pi*2.07*SST$ToY)))
summary(SSTlm)
plot(SST,xlim=c(0,4),ylim=c(0,17))
par(new=T)
plot(data.frame(ToY=SST$ToY,Degrees=8.4418-6.9431*sin(2.07*pi*SST$ToY)),type="l",xlim=c(0,4),ylim=c(0,17))