はじめに

緊急事態宣言による「巣ごもり」がインターネット通信量に与える影響は報道でも取り上げられていたが、電力消費量への影響はどうなのだろうかと、ふと疑問を抱いた。在宅勤務を始めた人は空調のぶんだけ電気代が増えていると思うが、その増分は事業所の減分と釣り合っているのだろうか。

東京電力のホームページに時間ごとの電力消費量が2017年分からCSVファイルで掲載されていたので、それを使って調べてみた。

データの取得

データは年ごとにCSVファイルで公開されているので、1本のデータフレームにする。

library(tidyverse)

get_powerstat <- function(url){
  read_csv(url,
           skip = 3,
           col_names = c("date", "hour", "DkW"),
           col_types = cols(
             date = col_date(format = "%Y/%m/%d"),
             hour = col_time(),
             DkW = col_double()
           ))
}

base_url <- "https://www.tepco.co.jp/forecast/html/images/"
file_name <- c("juyo-2017.csv",
               "juyo-2018.csv",
               "juyo-2019.csv",
               "juyo-2020.csv")

file_list <- str_c(base_url, file_name)
data <- map_dfr(file_list, get_powerstat)

data
## # A tibble: 32,232 x 3
##    date       hour     DkW
##    <date>     <time> <dbl>
##  1 2017-01-01 00:00   2783
##  2 2017-01-01 01:00   2634
##  3 2017-01-01 02:00   2520
##  4 2017-01-01 03:00   2438
##  5 2017-01-01 04:00   2389
##  6 2017-01-01 05:00   2394
##  7 2017-01-01 06:00   2491
##  8 2017-01-01 07:00   2626
##  9 2017-01-01 08:00   2715
## 10 2017-01-01 09:00   2637
## # ... with 32,222 more rows

データの加工

知りたいのはピーク電力なので最大値を取りたいが、集計単位をどうするか。グラフ映えを考慮し、週番号単位にすることとした。

data %>% 
  mutate(
    year = format(date, "%Y"),
    week_num = lubridate::isoweek(date),
    mega_watt = DkW / 100
  ) %>% 
  group_by(year, week_num) %>% 
  slice_max(DkW) %>% 
  filter(week_num <= 35) -> data_mod

data_mod
## # A tibble: 141 x 6
## # Groups:   year, week_num [140]
##    date       hour     DkW year  week_num mega_watt
##    <date>     <time> <dbl> <chr>    <dbl>     <dbl>
##  1 2017-01-06 17:00   4349 2017         1      43.5
##  2 2017-01-14 18:00   4455 2017         2      44.6
##  3 2017-01-20 17:00   4899 2017         3      49.0
##  4 2017-01-24 18:00   4846 2017         4      48.5
##  5 2017-02-02 18:00   4532 2017         5      45.3
##  6 2017-02-09 17:00   4957 2017         6      49.6
##  7 2017-02-14 18:00   4409 2017         7      44.1
##  8 2017-02-21 18:00   4415 2017         8      44.2
##  9 2017-02-27 18:00   4273 2017         9      42.7
## 10 2017-03-07 18:00   4294 2017        10      42.9
## # ... with 131 more rows

データの可視化

加工したデータを折れ線グラフにする。年ごとの違いが分かりやすいよう、カラースケールをグラデーションのものに変える。

data_mod %>% 
  ggplot() +
  geom_line(mapping = aes(x = week_num, y = mega_watt, color = year)) +
  scale_color_brewer(palette = "YlOrRd") +
  labs(
    title = "週ごとの時間あたり最大電力使用量(東京電力)",
    caption = "データ https://www.tepco.co.jp/forecast/html/download-j.html",
    x = "週番号(ISO)",
    y = "最大電力使用量(メガワット/時間)",
    color = "年"
  )

結論

特に違いはなさそう。