太陽黒点数の周期性を確認します。
黒点数のデータ出所は WDC-SILSO, Royal Observatory of Belgium, Brussels です。
確認対象データは太陽の北半球と南半球の合計の黒点数として、対象期間は毎日途切れることなく黒点数が記録されている1848年12月23日から2024年04月30日までとします。
黒点数のデータは df_total_sunspot に格納しています。
library(dplyr)
library(ggplot2)
library(tidyr)
library(forecast)
glimpse(df_total_sunspot)
Rows: 64,047
Columns: 2
$ Date <date> 1848-12-23, 1848-12-24, 1848-12-25, 1848…
$ `Daily total sunspot number` <int> 353, 240, 275, 352, 268, 285, 343, 340, 2…
年月日の範囲を確認します。
$Date %>% range() df_total_sunspot
[1] "1848-12-23" "2024-04-30"
上記期間において毎日データが記録されているか確認します。
$Date %>%
df_total_sunspotdiff() %>%
unique()
[1] 1
$`Daily total sunspot number` %>%
df_total_sunspotis.na() %>%
sum()
[1] 0
続いて時系列推移を確認します。
%>%
df_total_sunspot gather(key = "key", value = "value", colnames(.)[-1]) %>%
ggplot(mapping = aes(x = Date, y = value)) +
geom_line() +
facet_wrap(. ~ key, ncol = 1) +
theme_minimal() +
theme(legend.position = "none") +
theme(axis.title = element_blank())
明らかに周期性が見られます。
対象期間における最大黒点数を確認します。
{$`Daily total sunspot number` == max(df_total_sunspot$`Daily total sunspot number`)
df_total_sunspot%>% df_total_sunspot[., ] }
Date Daily total sunspot number
7917 1870-08-26 528
最大黒点数は1870年8月26日の528個です。
自己相関関数により太陽黒点数の周期を確認します。
<- df_daily_sunspot$`Daily total sunspot number` %>% ggAcf(lag.max = 365 * 30)) (acfresult
Lag が 4000 の当たりにある1つ目の山のピークを確認します。
$data[, c("lag", "Freq")] %>%
acfresulttail(-4000) %>%
{order(.$Freq, decreasing = T), ]
.[%>%
} head()
lag Freq
4175 4174 0.2784435
4176 4175 0.2783667
4174 4173 0.2783592
4173 4172 0.2782450
4177 4176 0.2780459
4172 4171 0.2774680
4174 / ((365 * 3 + 366) / 4)
[1] 11.42779
およそ11年目に1つ目のピークがあります。
Lag が 8000 の当たりにある2つ目の山のピークを確認します。
$data[, c("lag", "Freq")] %>%
acfresulttail(-8000) %>%
{order(.$Freq, decreasing = T), ]
.[%>%
} head()
lag Freq
8216 8215 0.1611322
8217 8216 0.1609871
8218 8217 0.1605978
8215 8214 0.1603171
8353 8352 0.1601527
8219 8218 0.1598328
8215 / ((365 * 3 + 366) / 4)
[1] 22.49144
およそ22年目に2つ目のピークがあります。
太陽黒点数はおよそ11年周期で増減を繰り返しているようです。
以上です。