Quero assumir que a temperatura da superfície do mar no Mar Báltico é a mesma ano após ano e depois descrevê-la com um modelo de função / linear. A idéia que tive foi apenas inserir o ano como um número decimal (ou num_months / 12) e descobrir qual deveria ser a temperatura naquele momento. Jogando-o na função lm () em R, ele não reconhece dados sinusoidais, portanto apenas produz uma linha reta. Então, coloquei a função sin () dentro de um colchete I () e tentei alguns valores para ajustá-la manualmente, e isso se aproxima do que eu quero. Mas o mar está esquentando mais rápido no verão e depois esfriando mais devagar no outono ... Então, o modelo está errado no primeiro ano, fica mais correto depois de alguns anos e, no futuro, acho que fica mais e mais errado de novo.
Como posso obter R para estimar o modelo para mim, para que eu não precise adivinhar números sozinho? A chave aqui é que eu quero que produza os mesmos valores ano após ano, e não apenas esteja correto por um ano. Se eu soubesse mais sobre matemática, talvez pudesse calculá-la como algo como um Poisson ou Gaussiano em vez de sin (), mas também não sei como fazer isso. Qualquer ajuda para se aproximar de uma boa resposta seria muito apreciada.
Aqui estão os dados que eu uso e o código para mostrar os resultados até agora:
# 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))