ฉันต้องการสมมติว่าอุณหภูมิผิวน้ำทะเลของทะเลบอลติกเป็นปีเดียวกันแล้วปีเล่าแล้วอธิบายด้วยแบบจำลองเชิงเส้นตรง ความคิดที่ฉันมีคือเพียงแค่ใส่ปีเป็นเลขทศนิยม (หรือ 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))