Я хочу предположить, что температура поверхности моря в Балтийском море один и тот же год за годом, а затем описать это с помощью функции / линейной модели. У меня была идея просто ввести год в виде десятичного числа (или num_months / 12) и узнать, какой должна быть температура в это время. Бросив его в функцию lm () в R, он не распознает синусоидальные данные, поэтому просто создает прямую линию. Поэтому я поместил функцию sin () в скобку I () и попробовал несколько значений, чтобы вручную подогнать функцию, и это приближается к тому, что я хочу. Но море нагревается быстрее летом, а осенью остывает медленнее ... Итак, модель неверна в первый год, затем становится более правильной через пару лет, а потом, я думаю, в будущем она станет более и еще раз неправильно.
Как я могу получить R, чтобы оценить модель для меня, чтобы мне не приходилось угадывать числа самостоятельно? Ключевым моментом здесь является то, что я хочу, чтобы год за годом он давал одни и те же значения, а не был бы верным в течение одного года. Если бы я знал больше о математике, возможно, я мог бы предположить, что это что-то вроде Пуассона или Гаусса вместо греха (), но я тоже не знаю, как это сделать. Любая помощь, чтобы приблизиться к хорошему ответу будет принята с благодарностью.
Вот данные, которые я использую, и код для отображения результатов:
# 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))