Tôi muốn giả sử rằng nhiệt độ mặt nước biển của Biển Baltic là cùng năm này qua năm khác, và sau đó mô tả điều đó bằng một mô hình hàm / tuyến tính. Ý tưởng tôi có là chỉ nhập năm dưới dạng số thập phân (hoặc num_months / 12) và tìm hiểu xem nhiệt độ sẽ như thế nào trong khoảng thời gian đó. Ném nó vào hàm lm () trong R, nó không nhận ra dữ liệu hình sin nên nó chỉ tạo ra một đường thẳng. Vì vậy, tôi đặt hàm sin () trong dấu ngoặc I () và thử một vài giá trị để khớp với hàm theo cách thủ công và nó gần với những gì tôi muốn. Nhưng biển ấm lên nhanh hơn vào mùa hè và sau đó hạ nhiệt chậm hơn vào mùa thu ... Vì vậy, mô hình đã sai trong năm đầu tiên, sau đó trở nên chính xác hơn sau một vài năm, và trong tương lai tôi đoán nó sẽ trở nên nhiều hơn và lại càng sai.
Làm cách nào tôi có thể lấy R để ước tính mô hình cho tôi, vì vậy tôi không phải tự đoán số? Chìa khóa ở đây là tôi muốn nó tạo ra các giá trị tương tự năm này qua năm khác, không chỉ đúng trong một năm. Nếu tôi biết nhiều hơn về toán học, có lẽ tôi có thể dự đoán nó như một thứ giống như Poisson hoặc Gaussian thay vì sin (), nhưng tôi cũng không biết làm thế nào để làm điều đó. Bất kỳ trợ giúp để đến gần hơn với một câu trả lời tốt sẽ được đánh giá rất cao.
Đây là dữ liệu tôi sử dụng và mã để hiển thị kết quả cho đến nay:
# 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))