僕はノストラダムスが怖かった。Future is WILD
特別お題「青春の一冊」 with P+D MAGAZINE
The Future is WILD
- 作者: ドゥーガル・ディクソン,ジョン・アダムス,松井孝典,土屋晶子
- 出版社/メーカー: ダイヤモンド社
- 発売日: 2004/01/08
- メディア: 単行本
- 購入: 7人 クリック: 78回
- この商品を含むブログ (107件) を見る
やはりこれかと。SFの世界がこの世界の延長線上にあることを印象付けた一冊だ。
ノストラダムスの大予言
僕はノストラダムスの大予言が異様に怖かった。1999年7の月が来るのを相当恐れた。新約聖書だってヨハネの黙示録だけを何回も読んだ。そして人類がいなくなった地球のことを考えこむことが多かった。それは生物は何一つ存在しない、植物さえ存在しない岩だらけの星で、さながら原始地球のような想像をよくしていた。
幸いにもノストラダムスの予言どおりに人類は滅亡することはなく、2016年まで時を進めることができている。そんなノストラダムス狂騒が過ぎて誰もが忘れたあたりでこの本は出版されたのを覚えている。
人類滅亡後の世界
海中の生物が陸に上がり、恐竜が覇権をとっていた時代が過ぎ、現在は哺乳類、特に人類が地球の覇権を取っている。人類が滅亡したのちに地球上で蠢く生物はどのようなものだろうか?というのが本書の構成。人類滅亡後は生物が何もいなくなる想像ばかりしていたので、この本の指摘は何もかもが新しかった。これまでの生物の進化の過程などを踏まえて科学的な理論の裏付けから新たな生物を創造、いや想像する。まさかイカが陸上を歩くようになるなんて!8tとかデカすぎだろと思ったが、大王イカといった規格外の生物の発見もされ、ちょうどメガマウスも水揚げされたニュースがでたばかりなので、そんな事もあるかもねと思わせる。
僕はこの本を読むことで何億年も先のことを考え、ノストラダムスの呪縛から一気に解き放たれた気がしたのだ。
SFとはなんだろうか
SFとはScience Fictionの略であり、日本語では空想科学と訳される。SFのジャンルに登場する便利な道具や異形な生物は空想から生み出されている。本書の登場人物(?)も大概が異形な生物だ。きっとそれは何かしら科学的な根拠をもとに想像されたものなのだろうとこの本を読んだ後では思う。きっと僕らの未来もそこにつながっていくのだと。そうでなければただの魔法だ。Science Fantasyだ。
では、未来を想像で語るこの本のジャンルはなんだろうか?同じようにSFなのだろうか?それともScience Future(is WILD)とでもいうべきなのだろうか?
Rの文字列結合
ありがてぇありがてぇ
RPubs - R の文字列結合が面倒くさいので色々考えてみた
Rにおける文字列結合
Rにおける文字列の結合には、他の言語とは違って関数を使わないと結合してくれない。
"foo" + "bar" "foo" + "bar" でエラー: 二項演算子の引数が数値ではありません paste("foo", "bar", sep="") [1] "foobar"
+でやってくれると楽なんだけどなぁ。ということで関数を作ってしまえというのが元エントリ。パクらせてもらいました!!
これを定義した後で+を使えば文字列が簡単に結合できる。ありがてぇありがてぇ
"foo" + "bar" [1] "foobar"
ARIMAモデルで時系列分析および予測
Rのforecastパッケージを使うと(比較的)簡単に時系列分析ができるというので、試してみた。
なにを行うか
10分おきの温度を計測したデータが手元にあったので、ARIMAモデルを使って分析を行い、この後どのように変化するか予測を行う。
データはこんな感じとなっている。
項目 | 内容 |
---|---|
timestamp | 時刻(unixtime) |
temp | 温度 |
ARIMAモデルで予測する
forecastパッケージを使い、時系列分析と予測値を出力する。ARIMAと聞いてフィッシャーとかピアソンとかベイズとかにならって有馬という日本人によって提唱されたモデルかと思っていたら、何のことはない自己回帰和分移動平均(AR:Auto Regression I:Integrated MA:Moving Average)の頭文字だったので肩すかしくらったのを覚えている。
結果
黒い線が気温で、グレーや青でプロットされているところが予測範囲。d.arima.forecastに100期先までの予測値が入っているので、その値を使って何かほかのプロセスに使うこともできる。予測するN期のNの値を増やしても平均値に寄っていくだけなので、長期の予測には向かない。
devtoolsでGithubからパッケージを取得する
YOU、Githubなんかで配布しないでCRANに置いちゃいなYO!!
devtoolsのインストール
devtoolsはCRANにいるのでインストールするところから始まるのだけど、そのdevtoolsのインストール時にはまった。なんか必要なライブラリが足りないみたい。でもそれはRのライブラリではなく、Linux(僕の場合はUbuntu)本体のにライブラリが必要とのことだった。devendencyだけではなくR以外で必要なライブラリはヒントだけでも出力してほしいなぁ。
ということで。libcurl4-gnutls-devとlibcrypto++とlibssl-devが必要とのこと。要するにgithubからパッケージを持ってくるからその辺を処理するライブラリが必要なのだと思います。
sudo apt install libcurl4-gnutls-dev libcrypto++ libssl-dev
ののちに
install.package("devtools")
これでdevtoolsのインストールは完了。
Githubからパッケージを取得
devtoolsを入れたら、こんな感じでパッケージを取ってこれます。
install_github("package_you_want")
プロキシ設定
プロキシを見るところが変わるようで、改めて設定しなおす。プロキシの設定自体はこんな感じで。httrパッケージはdevtoolsインストール時にdependencyとしてついてくる。
library(httr) set_config(use_proxy(url="yourproxy", port=8080)) install_github("package_you_want")
ggplot2で複数の折れ線を描く
描くたびに調べてるのでこれもメモ。melt{reshape2}の使い方が何度やっても覚えられない。
airquarity型のデータ
airquality型と勝手に呼んでいるデータとは、同じ行に複数の項目(列)があって、それぞれをプロットしたい場合のケース。それぞれの項目がX軸を同じにしているというのがポイント。時系列データのプロットに使えますね。
で、こうなる。Solar.Rの値の動きが激しくて、かえって見にくいというのはご愛嬌。
POSIXあれこれ
Rで時系列データを扱うことになったのだけど、日付型の扱いを何度も調べているのでメモ。
POSIXct
所謂プログラミング言語では日付はdateというクラスで扱われる。Rでももちろんそうなのだけど、POSIXctという聞きなれない型を使う。だけどこれはこれで結構便利。
unixtimeからPOSIXへ変換
取ったデータの日付および時刻はunixtimeになってたので、人間にわかりやすく変換する必要がある。unixtimeは特に形とかではなくただの数値。javaとかでとれるSystem.currenTimeMills()で返されるシステム日付の数値もこれ。これをまずPOSIXctというクラスにすると扱いやすくなる。
日付を扱う基本のきとして現在時刻のPOSIXctをとるにはSys.time()を使えば一発。
Sys.time() [1] "2016-04-07 11:15:00"
同じように日付型としてdate()がある。ただしこちらの戻り値(というよりも文字列表現)は欧風。
date() [1] "Thu Apr 7 11:15:00"
unixtimeからPOSIXctへの変換はas.POSIXctを使う。originを引数に渡すのをよく忘れる。デフォルト引数で"1970-01-01"にしてくれればいいのに。明示的に入れなければダメなのには何か理由があるんだろうな。
unixtime = 1459995330 as.POSIXct(unixtime, origin="1970-1-1") [1] "2016-04-07 11:15:00 JST"
そののちにformatして人間がわかりやすい形にできる。
unixtime = 1459995330 format(as.POSIXct(unixtime, origin="1970-1-1"), foramt="%Y/%m/%d")) [1] "2016/04/07"
formatで指定できるのは下記の表の通り。下記の表以外にもhelp(strptime)で使えるパラメータを確認できる。
パラメータ | 内容 |
---|---|
%Y | 年(4ケタ) |
%y | 年(2ケタ) |
%m | 月(01-12) |
%d | 日(01-31) |
%H | 時(00-23) |
%M | 分(00-59) |
%S | 秒(00-61) |
Dateとか文字列とかからPOSIXへ
文字列からDate型にもPOSIXct型にも変換することもできる。もちろんunixtimeにも。
#文字列からPOSIXへ as.POSIXct("2016-04-07 11:00") [1] "2016-04-07 11:10:00 JST" #文字列から日付へ as.Date(as.POSIXct("2016-04-07 11:00")) [1] "2016-04-07" #文字列からunixtimeへ as.numeric(as.POSIXct("2016-04-07 11:00")) [1] 141574000
まとめ
わかったことはas.XXXXで何とかなるという事。それでやってみてどうしてもだめなら調べるというのがいいのかも。
アインシュタインが予言した重力波を観測
アインシュタインが予言した「重力波」を観測したというニュース。一報を聞いたときにやったぜKAGRA!!ノーベル賞の確変はまだまだ続くぜ!!と思ったら、CaltechとMITのドリームチームによる研究の成果だった。本音ではKAGRAに遂げてほしかったけど、ともあれこれはすごい快挙。
KAGRAの戦いはこれからだ
その日本チームであるKAGRAも下記の通り声明を発表していた。
まぁ大人だしそう言うよね。KAGRA先生による次回作にご期待くださいというのが少年漫画的に熱い展開になっている。ニュートリノを観測をした日本としては、ぜひ重力子(本当にあるのか?)を観測してほしいところである。名前もgravitonとかっこいいし。
重力とは何か アインシュタインから超弦理論へ、宇宙の謎に迫る (幻冬舎新書)
- 作者: 大栗博司
- 出版社/メーカー: 幻冬舎
- 発売日: 2012/05/29
- メディア: 新書
- 購入: 4人 クリック: 196回
- この商品を含むブログ (60件) を見る