気象データを”R”で可視化してみよう！

資料３

気象データを"R"で可視化してみよう！

気象データと組み合わせる
データの紹介Ⅰ
2018年08月03日
先端IT活用推進コンソーシアム
クラウド・テクノロジー活用部会 リーダー
荒本 道隆
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

1.1.電力データ ｘ 気象データ• 今回のゴール：使用電力量と気温の相関を調べる– 一説には、夏のピーク時はエアコンの使用電力量が50～60%を占める• 強い相関があるはず– 予想気温から消費電力量を自分で予想できないか？

• 電力データのダウンロード先– 東京電力でんき予報（東京電力パワーグリッドが提供）• http://www.tepco.co.jp/forecast/• １時間単位、東京電力サービスエリア内の使用電力量を過去３年分公開– 東京電力以外も、公開している• 電力会社によって、公開期間や粒度が違う• 電力データのダウンロード先– 気象データ高度利用ポータルサイト（気象庁）• https://www.data.jma.go.jp/developer/index.html• → 「過去の気象データ・ダウンロード」
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

21.2.電力データのダウンロード先• 東京電力でんき予報（東京電力パワーグリッドが提供）– http://www.tepco.co.jp/forecast/– 春夏秋冬を見たいので、今回は2017年を使用「名前を付けてリンク先を保存」
する

省略

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

31.3.電力データの入手先－他社• 他の電力会社のご紹介
北海道電力

http://denkiyoho.hepco.co.jp/area_forecast.html

東北電力

http://setsuden.tohoku-epco.co.jp/graph.html

東京電力

http://www.tepco.co.jp/forecast/index-j.html

北陸電力

http://www.rikuden.co.jp/denki-yoho/

中部電力

http://denki-yoho.chuden.jp/

関西電力

http://www.kepco.co.jp/energy_supply/supply/denkiyoho/

中国電力

http://www.energia.co.jp/jukyuu/

四国電力

http://www.yonden.co.jp/denkiyoho/

九州電力

http://www.kyuden.co.jp/power_usages/pc.html

沖縄電力

https://www.okiden.co.jp/denki/– 注意：電力会社によって、粒度やフォーマットが全く違います– CSVファイルを開いてみて、確認してください

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

4

1.4.気象データのダウンロード先• 気象庁サイトのトップページ→ 気象ビジネス推進コンソーシアム→ 気象データ高度利用ポータルサイト→ 過去の気象データ・ダウンロード
https://www.data.jma.go.jp/gmd/risk/obsdl/index.php

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

5気象データを"R"で可視化してみよう！

データ分析の基礎と個人ワーク
2018年08月03日
先端IT活用推進コンソーシアム
クラウド・テクノロジー活用部会 リーダー
荒本 道隆
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

2.1.今回のテーマ選択の理由• R言語でできること：Excelとデータベースの中間– Excelよりも複雑なことができます– データベースよりも準備が簡単で、扱い易いです• データをビジネスに生かすには、統計の力が必要不可欠です– 統計と言えばR言語• 機械学習用のライブラリ（nnet, kerasなど）もあります– 統計（データ分析）の第一歩は、可視化によるデータの理解• R言語は試行錯誤が容易で、職業プログラマ以外でも使えます– ゼロから Python を勉強するより楽– ただし、数学と統計の勉強は必要– 他データに対して繰り返し実行が容易• というわけで今回は、– R言語を使ったデータの可視化と分析の入り口、という内容です
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

7

2.2.R言語とは• 一言でいうと「無料で使える高機能な統計ソフト」– コマンドで、データ操作や様々な統計処理を実行– PC上で動作し、壊す心配が無い自分専用のデータベースみたいなもの– クロスプラットフォーム（Windows, MacOS X, Linux）– APIを作成することもできる（Shiny）• 論文作成のためのデータ整理などに利用されている– 職業プログラマ（ITの専門家）じゃなくても使える– 細かい部分は、自動的になんとか処理してくれるかも• 豊富なライブラリ– 12,745個（2018年7月26日時点）• 統計に関するものが多い• 可視化に関する物も増えている• 注意：ビックデータは苦手– すべてメモリ上で処理するため– 上限はPCのメモリサイズによる
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

8

2.3.注意事項
 統計は前処理が７～８割と言われています

事前にやる事の方が圧倒的に多く、結果にも影響する
今回は、できるだけ
R言語で実現 ゴミデータ削除
全部をR言語でやる必要はない
 データ結合
Excelやテキストエディタでした方が楽
途中でファイル出力し、加工後に読み込みも可
何度も分析するなら、自動化も考慮

テーブル結合 対象要素抽出write.table() 東京電力データと気象データの結合例
電力

気温

merge()

rbind()
電力

日時で結合しようとすると・列数が違う（２個、１個）
・時刻の表記が違う（秒なし、あり）
・先頭時刻が違う（0:00、1:00）
形が全く同じなので、単純に結合できる

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

92.4.RStudioとは• 一言でいうと「R言語専用支援ツール」– 編集＆実行をシームレスに実現（部分実行も可能）– 変数の中身をいつでも参照（View(変数名)コマンド、画面右上）– 窓位置固定（使ってみると意外に便利）
編集＆実行
変数詳細参照

変数一覧
実行履歴一覧
クリックで展開
表示

描画領域
ヘルプ参照

実行＆実行結果
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

10

2.5.RStudioの使い方 スクリプトファイルを作成する


メニューの「File」→「New File」→「R Script」を実行

 左上の画面でコマンドを入力し、そのまま実行する

その行を実行するには、[Ctrl]+[Enter] [Enter]だけを押すと、改行コードが追加される
 再度実行

画面左上の該当行にカーソルを移動 [Ctrl]+[Enter]で実行
 自動的にカーソルが次の行に移動
 変数をすべて削除し、先頭からすべて[Ctrl]+[Enter]出来ることを確認 連続実行

画面左上に移動 実行する範囲を選択（全体選択は、[Ctrl]+[A]もしくは[Command]+[A] ）[Ctrl]+[Enter]で選択した範囲を実行

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

112.6.今回の進め方－１
 今回の進め方

作成済みのRスクリプトファイルから範囲実行して結果を確認する


写経（テキスト通りに手入力）やコピペは不要

課題にそって、スクリプトを変更して、再実行


元に戻すのは簡単なので、遠慮なく変更してください 以下の手順を各自で実施してください

RStudio を起動し、メニューの「File」→「New File」→「R Script」を実行
 ブラウザで教材ファイルを表示する
 http://cloud.aitc.jp/ → 20180803_R → 20180803text.R を選択 教材ファイル全体を選択し、コピーするWindows：[Ctrl]+[A] → [Ctrl]+[C]

Mac：[Command]+[A] → [Command]+[C]

RStudio の左上のスクリプト領域（Untitled1）にペーストWindows：[Ctrl]+[V]

Mac：[Command]+[V]

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

122.6.今回の進め方－２
 今回は、以下のデータを使用します

東京の気温（月別値、時別値）
 東京電力サービスエリアの使用電力量 別データ（別の県、別の電力会社）にも挑戦してみたい人は、

もう１つRStudioを起動し、読み込むファイル名を変更してください 両方のRStudioで、まったく異なるデータを操作できます 触っているRStudioを間違えないように注意してください

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

13気象データを"R"で可視化してみよう！

データ分析の基礎と個人ワーク"R"言語超入門
サンプルデータを触ってみる

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

3.1.サンプルデータ「iris」について• Rに最初から入っているサンプルデータ– Rで、誰もが一番最初に触るサンプル– アヤメ150件分（３種類、50件づつ）
•
•
•
•
•

Sepal.Length：がく片の長さ
Sepal.Width ：がく片の幅
Petal.Length：花びらの長さ
Petal.Width ：花びらの幅
Species ：アヤメの種類（”setosa”, “versicolor”, “virginica”）

setosahttps://commons.wikimedia.org/w
iki/File:Irissetosa1.jpg

versicolor
https://commons.wikimedia.org/w
iki/File:Iris_versicolor_3.jpg

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

https://www.pinterest.es/pin/1960473
90003261569/

virginica
https://www.flickr.com/photos/jsjg
eology/27706985852

15

3.2.R言語の基本的な文法• 変数の参照

大文字、小文字を正確に困ったら[;]（セミコロン）を打つ

iris;# サンプルデータ「iris」を表示
data();# 全サンプルデータの一覧表示
View(iris);# 参照窓で「iris」を参照
head(iris);# 「iris」を先頭6件だけ表示 # の後ろはコメント
head(iris, n=10);# 「iris」を先頭10件だけ表示
iris[iris$Species=="setosa",];# 条件に一致する行だけ取り出す
iris[5.0<=iris$Sepal.Length & iris$Sepal.Length<=5.1,];# 複数条件iris[c(1,2,3),];# 先頭3行だけ取り出すc(....)はリストを作成
iris[1:3,];# 先頭3行だけ取り出す
iris[,c(3,4,5)];# 特定の列だけ取り出す
iris[,3:5];# 特定の列だけ取り出す
iris[,c("Species")];# 列名を指定して取り出す• 変数の操作aaa <- iris;# サンプルデータ「iris」を変数「aaa」にコピー
aaa <- iris[1:10,];# 1～10行だけを取り出してコピー
aaa <- iris[iris$Species=="setosa",]; # setosa だけを抽出
aaa$label <- 0;# label列を追加し、初期値を0にする
aaa[aaa$Sepal.Length<5,]$label <- 1; # がく片の長さが5より小さいものだけ1
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

16

3.3.R言語の基本的な文法• 関数の実行summary(iris);
hist(iris$Petal.Length);sd(iris$Petal.Length);? sdtable(iris$Species);# 変数「iris」のサマリー表示# 変数「iris$Petal.Length」のヒストグラム# 変数「iris$Petal.Length」の標準偏差(sd)# 関数sdのヘルプ# 種類をカウント• 描画してみる
plot(iris);# 変数「iris」を描画
plot(x=iris$Petal.Length, y=iris$Petal.Width); # 花びらだけを描画
pie(table(iris$Species));# 種類ごとの件数での円グラフ

全組み合わせ花びらの長さと幅の関係

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

17

3.4.描画の情報量を増やす－１• 色を加えるplot(iris, col=iris$Species);# 種類ごとに色を塗る
plot(x=iris$Petal.Length, y=iris$Petal.Width, col=iris$Species);• マーカー、もしくは文字を加える
plot(x=iris$Petal.Length, y=iris$Petal.Width, col=iris$Species,
pch=as.numeric(iris$Species));# 数字を指定するとマーカー
plot(x=iris$Petal.Length, y=iris$Petal.Width, col=iris$Species,
pch=as.character(iris$Species));# 文字列を指定すると、先頭の１文字

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

18

3.4.描画の情報量を増やす－２• 文字の大きさを変える
plot(x=iris$Petal.Length, y=iris$Petal.Width, col=iris$Species,
pch=c("s","v","x")[as.numeric(iris$Species)],
cex=as.numeric(iris$Species));# 文字サイズの倍率を指定（1,2,3）• もっと複雑な描画– 参照URL：https://momonoki2017.blogspot.com/2018/05/r008-r1.html– 機械学習で分類し、決定境界を可視化

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

19気象データを"R"で可視化してみよう！

データ分析の基礎と個人ワーク

気象データを触ってみる

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

4.1.気象データをRで触ってみる• 過去の気象データを触ってみる– できるだけ過去から現在までのデータを触ってみる• 知りたいこと– 今年（2018年7月）は異常に暑いけど、今年が過去最高なのか？
– 地球温暖化は本当なのか？

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

21

4.2.気象データのダウンロード• 気象庁サイトのトップページ→ 気象ビジネス推進コンソーシアム→ 気象データ高度利用ポータルサイト→ 過去の気象データ・ダウンロード
https://www.data.jma.go.jp/gmd/risk/obsdl/index.php

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

22

4.3.気温の「月別値」を入手－１• 地点を選ぶ：「東京」→「東京」• 項目を選ぶ：「月別値」– 気温：「月平均気温」「月最高気温」「月最低気温」• 期間を選ぶ：「1872」年「1」月から「2018」年「8」月まで

一回にダウンロードできるサイズの上限を超えていないか？

data.csv という名前
でダウンロード

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

23

4.3.気温の「月別値」を入手－２• 「CSVファイルをダウンロード」をクリック– → 「ファイルを保存する(S)」を選択– ブラウザによっては、ダイアログが出てこない• ダウンロードしたファイルを確認– Windows：「ダウンロード」フォルダの中• C:¥Users¥ユーザー名¥Downloads¥data.csv– Mac：「ダウンロード」フォルダの中• /Users/ユーザー名/Downloads/data.csv– ダブルクリックして開いてみる• どんなアプリでもOK、無ければテキストエディタで開く– 場所が違う場合は、フルパス名をメモしておく• ファイル名を変更– 「data_tokyo_month.csv」
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

24

4.3.気温の「月別値」を入手－３• ファイルの中身を確認– Excelで開いた場合文字化けしたら、
ブラウザで開いてみる

最初の6行は人間が参照する用？

この４列を使用する

この辺は
気温が空
気温があるのは、
1875年6月以降

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

25

4.4.気象データをRで読んでみる• RStudioでCSVファイルを読み込む
temp <- read.table("/Users/ユーザー名/Downloads/data_tokyo_month.csv",
skip=6, header=F, sep=",", fileEncoding="SJIS");• 注意：ユーザー名は、各自の環境に合わせて修正• 注意：ダウンロードフォルダが違う場合は、全体を修正• 注意：Windowsでドライブが違う場合は「C:/Users/ユーザー名/Downloads/...」にする– 各パラメータの意味• skip=6：先頭の６行は無視• header=F：列名として使える行は無い（F は FALSE の略）• fileEncoding="SJIS"：ファイルの文字コードにSJISを指定• うまく読み込めたか確認する
head(temp);• 備考– パラメータが面倒だったり、うまく読み込めない場合は、
テキストエディタやExcelで理想的なCSVに修正して、読み込む
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

26

4.5.課題• 説明は、RStudioを使っておこないます 「時別値」をダウンロードして、同様のことをすれば、日時まで分かる• 実行結果を以下にメモしてください東京度

これまでの最高気温

最高気温が出た年月

年

年

度

これまでの最低気温
最低気温が出た年月

月

度

年

月

月

度

年

度
年

月

月
度

年

月

7月の平均気温の変化

度／年

度／年

度／年

7月の最高気温の変化

度／年

度／年

度／年

7月の最低気温の変化

度／年

度／年

度／年

8月の平均気温の変化

度／年

度／年

度／年

8月の最高気温の変化

度／年

度／年

度／年

8月の最低気温の変化

度／年

度／年

度／年

年平均の平均気温の変化

度／年

度／年

度／年

年平均の最高気温の変化

度／年

度／年

度／年

年平均の最低気温の変化

度／年

度／年

度／年

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

27

4.6.参考：実行結果
1875年6月～2018年7月

2000年1月～2018年7月

月平均気温、月最高気温、月最低気温

月平均気温、月最高気温、月最低気温

1875年～2018年、7月のみ

1876年～2017年

月平均気温、月最高気温、月最低気温

年平均気温、年最高気温、年最低気温

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

28

気象データを"R"で可視化してみよう！

回帰分析の基礎2018年08月03日
先端IT活用推進コンソーシアム
クラウド・テクノロジー活用部会 リーダー
荒本 道隆
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

5.1.回帰分析とは• Wikipedia より
回帰（かいき、英: regression）とは、統計学において、Y が連続値の時にデータに Y = f(X) というモデル(「定量的な関係の構造[1]」)を当てはめる事。別の言い方では、連続尺度の従属変数（目的変数）Y と独立変数（説明変数）X の間にモデルを当てはめること。X が1次元ならば単回帰、X が2次元以上ならば重回帰と言う。Y が離散の場合は分類と言う。
https://ja.wikipedia.org/wiki/%E5%9B%9E%E5%B8%B0%E5%88%86%E6%9E%90← X が気温、Yが商品a の販売数であれば、販売数Yは、以下の式で算出できる。
Y = aX + b

線形回帰の例
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

30

5.2.正の相関と負の相関• 正の相関– 一方が上がれば、もう一方も上がる• 例：気温とビールの売り上げ• 負の相関– 一方が上がれば、もう一方は下がる• 例：気温とおでん屋の客数• 例：駅からの距離と家賃

正の相関
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

負の相関

31

5.3.相関係数とは『気象データ分析チャレンジ』資料４、P24より
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

32

5.4.回帰分析の目的• 相関係数– 相関関係の強さを表す• 回帰分析
– 「Y = aX + b」の a と b を知りたい– X が予測できれば、自動的に Y も予測できる– 気温と相関があるものがあれば、気温は気象庁が予測してくれるので、自動的に Y が予測できる• 今回は「重回帰分析」は省略します– Y = a1X1 + a2X2 + a3X3 + .... + b
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

33

気象データを"R"で可視化してみよう！

気象データと組み合わせる
データの紹介Ⅱ
2018年08月03日
先端IT活用推進コンソーシアム
クラウド・テクノロジー活用部会 リーダー
荒本 道隆
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

気象データを"R"で可視化してみよう！

データ分析Ⅱ

電力データの入手

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

6.1.電力データの入手－１• 東京電力でんき予報（東京電力パワーグリッドが提供）– http://www.tepco.co.jp/forecast/– 春夏秋冬を見たいので、今回は2017年を使用「名前を付けてリンク先を保存」
する

省略

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

36

6.1.電力データの入手－２• ダウンロードしたファイルを確認– ファイル名「juyo-2017.csv」– 拡張子が勝手に「.txt」になっていたら、要修正• ファイルの中身を確認
先頭の２行は要らない

日本語がうまく処理できないかも23:00の次が翌日
日付と時刻が別列
日付や時刻は、データによって微妙に表記が違う
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

37

6.2.電力データをRで読んでみる• RStudioでCSVファイルを読み込む
juyo <- read.table("/Users/ユーザー名/Downloads/juyo-2017.csv",
skip=2, header=T, sep=",", fileEncoding="SJIS");• 注意：ユーザー名は、各自の環境に合わせて修正• 注意：ダウンロードフォルダが違う場合は、全体を修正• 注意：Windowsでドライブが違う場合は「C:/Users/ユーザー名/Downloads/...」にする– 各パラメータの意味• skip=2：先頭の2行は無視• header=T：３行目を列名として使用• fileEncoding="SJIS"：ファイルの文字コードにSJISを指定• うまく読み込めたか確認する
head(juyo);• 固有のURLがあるので、ネットから直接読み込みも可能
juyo <- read.table("http://www.tepco.co.jp/forecast/html/images/juyo-2017.csv",
skip=2, header=T, sep=",", fileEncoding="SJIS");
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

38

6.3.参考：実行結果
2017年1月1日～2017年12月31日

2017年1月1日～2017年12月31日

1時間の使用電力量の分布

1時間の使用電力量

2017年1月1日～2017年12月31日

2017年1月1日～2017年12月31日

1時間の使用電力量、12時のみ

1時間の使用電力量、12時のみ、平日のみ

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

39

気象データを"R"で可視化してみよう！

データ分析Ⅱ

気象データの入手

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

7.1.気温の「時別値」を入手－１• 地点を選ぶ：「東京」→「東京」• 項目を選ぶ：「時別値」– 項目：「気温」• 期間を選ぶ：2017年1月1日から2017年12月31日まで

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

41

7.1.気温の「時別値」を入手－２• 「CSVファイルをダウンロード」をクリック– → 「ファイルを保存する(S)」を選択– ブラウザによっては、ダイアログが出てこない• ダウンロードしたファイルを確認– Windows：「ダウンロード」フォルダの中• C:¥Users¥ユーザー名¥Downloads¥data.csv– Mac：「ダウンロード」フォルダの中• /Users/ユーザー名/Downloads/data.csv– ダブルクリックして開いてみる• どんなアプリでもOK、無ければテキストエディタで開く– 場所が違う場合は、フルパス名をメモしておく• ファイル名を変更– 「data_tokyo_hour_2017.csv 」
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

42

7.1.気温の「時別値」を入手－３• ファイルの中身を確認– Excelで開いた場合

最初の5行は人間が参照する用？
気象データは先頭が1:00
電力データは先頭が0:00「月別値」は6行だった！

年月日時分の表記が、
電力データと違う

この2列を使用する
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

43

7.2.気象データをRで読んでみる• RStudioでCSVファイルを読み込む
temp <- read.table("/Users/ユーザー名/Downloads/data_tokyo_hour_2017.csv",
skip=5, header=F, sep=",", fileEncoding="SJIS");• 注意：ユーザー名は、各自の環境に合わせて修正• 注意：ダウンロードフォルダが違う場合は、全体を修正• 注意：Windowsでドライブが違う場合は「C:/Users/ユーザー名/Downloads/...」にする– 各パラメータの意味• skip=5：先頭の５行は無視• header=F：列名として使える行は無い（F は FALSE の略）• fileEncoding="SJIS"：ファイルの文字コードにSJISを指定• うまく読み込めたか確認する
head(temp);

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

44

7.3.参考：実行結果
2017年1月1日～2017年12月31日

2017年1月1日～2017年12月31日

1時間ごとの気温の分布

1時間ごとの気温の変化

2017年1月1日～2017年12月31日

2017年1月1日～2017年12月31日

気温の変化、12時のみ

１日で一番暑かった時刻

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

45

気象データを"R"で可視化してみよう！

データ分析Ⅱ

電力データ ｘ 気象データ

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

8.1.電力 ｘ 気象の結合－１
 電力データを加工する
 年月日(DATE)と時刻(TIME)を結合し、年月日時分秒(DATETIME)に手前で実行済み

 実現方法juyo$DATETIME <- as.POSIXlt(paste(juyo$DATE, juyo$TIME, sep=" "),format="%Y/%m/%d %H:%M");# DATE+TIMEを日時型にする

paste(a, b, sep=" "); as.POSIXlt();# a と b を結合し、間に" " を入れる
# 日時型に変換する

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

47

8.1.電力 ｘ 気象の結合－２
 気象データを加工する
 年月日時分秒(DATETIME)を日時型に
 時刻表記の意味を統一 電力データは、先頭行が0:00 ← 0:00時台の値
 気象データは、先頭行が1:00 ← 1:00になった時点の値

つまり、同じ期間を指している→ 気象データの時刻からマイナス１時間して、表記を合わせる
先頭が0:00に先頭が1:00

 実現方法
temp$DATETIME <- temp$DATETIME - 3600;# １時間（3600秒）ずらして、電力データ側の表現に合わせる
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

手前で実行済み

48

8.1.電力 ｘ 気象の結合－３
 電力データと気象データを結合する
 年月日時分秒(DATETIME)をキーにする

電力データ

気象データ
結合結果

 実現方法juyotemp <- merge(juyo, temp, by=c("DATETIME"), all=T); # 横方向に結合by=# 指定した列名で2つを結合する

 補足
 ２つのデータの行数と並び順が完全に同じであれば、
 cbind() でキー無しで結合することもできるけど どこかでズレてしまう危険がある
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

49

8.2.課題2017年の東京
20度以上で回帰分析

相関係数＝

KW = b + a1 * TEMP

b=

a1=

12:00 の気温が30度の場合

*30

KW

12:00 の気温が35度の場合

*35

KW

12:00 の気温が40度の場合

*40

KW

12:00 の気温が30度の場合

*30

KW

12:00 の気温が35度の場合

*35

KW

12:00 の気温が40度の場合

*40

KW

12:00 の気温が10度の場合

*10

KW

12:00 の気温が5度の場合*5KW

12:00 の気温が0度の場合*0KW

25度以上で回帰分析

相関係数＝

KW = b + a1 * TEMPb=

15度以下で回帰分析

相関係数＝

KW = b + a1 * TEMPb=

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

a1=

a1=

50

8.3.参考：実行結果
2017年1月1日～2017年12月31日

2017年1月1日～2017年12月31日

12:00の使用電力量（黒）と気温（赤）12:00の使用電力量と気温の散布図
黒：平日、青：土曜日、赤：日曜日

2017年1月1日～2017年12月31日

2017年1月1日～2017年12月31日

12:00の使用電力量と気温の散布図
平日のみ20度以上を回帰分析

12:00の使用電力量と気温の散布図
平日のみ20度以上と15度以下を回帰分析

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

51

8.4.参考：土日と休日をどう扱う？
 要検証
 土曜日と日曜日を同一に扱ってもよいのか？
 日曜日と休日を同一に扱ってもよいのか？
 回帰分析の方法
 方法１：平日と、土日＋休日を別々に計算する
 方法２：平日と平日以外という項目を追加し、重回帰分析
 KW = b + a1*TEMP + a2*平日 + a3*平日以外

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

52

Q&A
• 「時別値」を複数の項目で1年分ダウンロードしたい• 項目ごとに別ファイルでダウンロードし、結合してください• 「時別値」を10年分ダウンロードしたい• 期間を細かく区切ってダウンロードして、結合してください

Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

53