Voglio presumere che la temperatura della superficie del mare del Mar Baltico sia la stessa anno dopo anno, e quindi descriverlo con un modello funzione / lineare. L'idea che ho avuto è stata quella di inserire solo l'anno come un numero decimale (o num_months / 12) e capire quale dovrebbe essere la temperatura in quel momento. Lanciandolo nella funzione lm () in R, non riconosce i dati sinusoidali, quindi produce solo una linea retta. Quindi ho inserito la funzione sin () all'interno di una parentesi I () e ho provato alcuni valori per adattare manualmente la funzione, e questo si avvicina a quello che voglio. Ma il mare si sta riscaldando più velocemente in estate e poi si raffredda più lentamente in autunno ... Quindi il modello si sbaglia nel primo anno, quindi diventa più corretto dopo un paio d'anni, e poi in futuro credo che diventi più e ancora di più sbagliato.
Come posso ottenere R per stimare il modello per me, quindi non devo indovinare i numeri da solo? La chiave qui è che voglio che produca gli stessi valori anno dopo anno, non solo per un anno. Se avessi saputo di più sulla matematica, forse avrei potuto indovinarlo come qualcosa di simile a un Poisson o gaussiano invece di sin (), ma non so nemmeno come farlo. Qualsiasi aiuto per avvicinarsi a una buona risposta sarebbe molto apprezzato.
Ecco i dati che utilizzo e il codice per mostrare i risultati finora:
# 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))