最終更新:2020年 2月 10日 (月曜日)
R-3.6.2がリリースされた(Peter Dalgaardのtweet)。
コード名は"Dark and Stormy Night"であり,例によってPeanutsからとられたもののようだ(たぶんこれ。説明するのも野暮だが,スヌーピーが"It was dark and stomy night"と物語をタイプしていたら,それを読んだルーシーがつまらなそうな顔で「あなたの物語は何が間違ってるか知ってる?」と言ってから,畳みかけるように「機微が足りないのよ(They lack subtlety)」と言ったので,スヌーピーが打ち直した物語は"It was a sort of dark and kind of stomy night"だったというオチ)。
出勤前にふと思いついて,trux.Rというコードを書いてみた。これで問題なければ,人口ピラミッド描画パッケージのデフォルト横軸目盛設定アルゴリズムはこれに変えようと思う。
裏RjpWikiさんにpretty()という関数をご教示いただき,試してみたらこっちの方がきれいな軸目盛になった気がした。で,pretty()を検索していたら,ほくそ笑むさんによる素晴らしい解説記事があった。発想としてはtrux()も悪くない線だったんだな。しかし完全に車輪の再発明。しかも劣化版という……orz。結局,wpp2019から国/地域と年次を複数指定して一気に人口ピラミッドを描くコードもpretty()を使うように書き換え,pyramidパッケージも書き換えてバージョン1.5としてCRANに登録申請した。
昨日pyramidを更新してCRANにsubmitしたら,今朝Dr. Uwe Liggesから,(1)これまでのタイトル"Functions to draw population pyramid"は現在のパッケージタイトル記述ルールに従って単語先頭文字を大文字化して,最初の"Functions to"は無意味だから削除した方が良い,(2)日付フォーマットがR標準のYYYY-MM-DDになってないので直してね,という2つのコメントが届いたので,早速直して再度submitした。これでpyramidはバージョン1.5となるはず。
その後でtwitterを見たら,三重大学の奥村先生からデフォルト描画色をユニバーサルデザインのベースカラーにしたら良いのでは? というアドバイスをいただいていて,試してみたら(このリンク先の一番下参照),確かにこっちの方が目に優しい感じだし,きっと色覚異常の方にもわかりやすいのだろう。しかしCRANはあまり続けてバージョンアップすることを推奨していないので,この変更は1.6にするときに取り入れようと思う。
2019年6月14日,R-3.6.1(developer pageによると,コード名は"Action of the Toes"とのこと。スヌーピーが激しくダンスして,まるで天才バカボンのホンカンやレレレのおじさんのように足がたくさん見える絵に付されている台詞)が7月5日リリース予定と発表された。コアチームのPeter DalgaardがR-announceメーリングリストに告知した。
7月4日,R-3.6.1(コード名"Action of the Toes")が予定通りリリースされた。リリースノートによると,Windows版で,writeClipboard()という関数が正しく動作するようになったそうだ。
7月中旬,VAIO-SAのRを3.6.1に更新し,常用パッケージ群のインストールをさせたまま帰ったのだが,「ソースからインストールしますか?」というダイアログが表示されて中断していた。「はい」として,その後も何度か同じダイアログが表示される(多くのパッケージがtestthatパッケージに依存しているせいで,install.packages()だと既にインストール済みであっても,依存パッケージも含めてインストールしようとするし,cranにあるのがバイナリ2.1.1,ソース2.2.0なので,仕方ないのだろう)のに「はい」として進めたが,BiocManagerパッケージをインストール後に,BiocManager::install("BiocStyle")とするところで,依存パッケージとしてcurlパッケージをインストールしようとしてソースからを選ぶとコンパイルに失敗してインストールプロセスが中断してしまうのだった。仕方ないのでcurlはソースからでなくバイナリ3.3版をインストールすることにして先に進めた。Rtoolsも3.5だし,なぜcurl-4.0のコンパイルができないのか不明だが,実用上問題はなかろう。
人口学関係のRパッケージが現在どうなっているかをチェックしていたら,いつの間にかdemogRに新しいメンテナが見つかって復活していた。もっとも,Caswell (2001)とMorris and Doak (2002)に書かれている,行列モデルによる年齢構造人口解析の実装としては,popbioというパッケージがあるが。なお,もちろんRob Hyndmanが牽引しているdemographyパッケージは健在で,Lee-Carterモデルを含む人口予測関連の機能では,これが定番だと思う。
いつの間にか,USDAの成分表を使って栄養価計算できるRパッケージができていた。使ってみよう。栄養関係だとNHANESのデータを引き出せるパッケージも便利かも。変わったところでは,地中海ダイエット順守度を得点評価するパッケージも開発中であった。
先日触れたNutrienTrackeRパッケージだが,BiocStyleパッケージに依存し,それがR-3.6.0では利用不可能と表示されるので困ったが,ここに書かれているように,まずinstall.packages("BiocManager")をしてからBiocManager::install("BiocStyle")とすることでインストールできた。
日本の食品成分表は,文部科学省が公開しているデータベースで検索などもできるが,和文と英文のExcelファイルをダウンロードできる。ただし,余計なフィールドが入っていたり,数字のカラムに文字属性のデータが入っていたりする部分があるので,これを読んで栄養価計算させるパッケージを作ろうと思ったら,多少工夫が必要だろう。(追記)自分でやらずとも,やってくれた先人がいた!! 実際に食事記録をつけて栄養素摂取量の計算をさせるためには,成分表に入っている食品名をリストから選択しながら食事記録ができるようなインターフェースをもったアプリを作れば完璧だな。
予定通りにR-3.6.0(コード名「1本の木の植栽」――今回も出典がPeanutsだとすると,この話だろう)がリリースされたとのこと。まだソースコードだけのようなので,Windows版バイナリがミラーサイトに行き渡るのは明日か明後日になるだろう。3.5系から3.6系への移行なので,今度は大きな変更がいくつかある感じ。
とくに大きな変更は,乱数生成のデフォルト動作が変わったこと。シミュレーションを使っている方は乱数の初期値を決めていても結果が3.5.3までとは違うので注意されたい。
R-3.5.3(コード名は「大いなる真実」"Great Truth")がリリースされたとアナウンスされた。3.5系の最終リリースなので大きな変更はないとのこと。R-3.5.2のリリースから約3ヶ月たったが,実はまだ常用しているのは3.5.1なので,3.5.2は使わないまま3.5.3を入れることになりそう。
ちなみに,コード名を検索してみたところ,これかこれと思われたが,いずれにせよ,まあ何だか他愛もないことを皮肉ってgreat truthと呼んでいる話のようだ。
予定通り,R-3.5.2がリリースされた。主に細かなバグフィックスらしいので,日常使用には影響なさそうだ。まあ,暇をみてアップデートすべきだろうが,某原稿を仕上げるまでは手を付けない方が安全な気がする。
以前わからないと書いたコードネーム"Eggshell Igloo"の出典は,R-bloggersの記事によると,これかこれだろうとのことだった。
どちらも,オスマー先生が卵殻でイグルーを作るから持ってきてねと言っていたのに忘れてしまったライナスがチャーリー・ブラウンと交わす会話からなっている。1回目は,Igliを作るんだというライナスに対して,Igli? とチャーリーが尋ねると,複数形さ,One Igloo,Two Igli, ...とライナスが答えるのが落ちになっていて,2回目はイグルーの村を作るとオスマー先生が言っていたのにまた忘れてしまったから怒るだろうなあ,何せ彼女は先生と呼ばれるよりも教育者と呼ばれるのが好きなほど真剣だから,というライナスの言葉で終わっている。
しかし,この話は続きがあって,このブログ記事(今まで食べた中で一番美味しい塩風味のカラメルブラウニーの作り方を説明しているのだが,最後にPeanuts!のことも忘れてないよ,と言って卵をたくさん使って,ライナスが忘れた卵殻,という写真で締めている)から,さらに2つの話が追加されていることがわかった。これ(今日も卵殻を忘れたからオスマー先生激怒だよ,青ざめて泣いていて,病気にならなければいいけど。学校の先生があんなにデリケートな装置だなんて知らなかったよ,とチャーリーに語るライナス)とこれ(見てよチャーリー,とうとう忘れずに卵殻を持ってきたよ,これでオスマー先生がぼくたちにイグルーのすべてを教えてくれるよ,とはしゃぐライナスに対して,1コマの無言の間を空けて,今日は土曜日だよ,と返すチャーリー)である。
しかし,実はまだこの話は終わらない。リンク先のサイトで右向き三角マークをクリックすると続きが読めるのだが,あんたと先生と卵殻の話っていったい何なの? とツッコむルーシーに対して,ぼくが卵殻を忘れ続けるから先生が激怒するんだ,とライナスが説明し,それってあんたみたいね,あんたほど時計みたいに定期的に物忘れできる人,他に知らないわ,とルーシーが言って,ああそうか,ぼくって機械みたいに考えてるんだと思うよ! と妙に納得するライナスの話を挟んで,再びチャーリーとライナスの会話に戻って,可哀想なオスマー先生,今日も卵殻を忘れて怒らせちゃったよ,というライナスに,本当に怒ってたの? とチャーリーが聞くと,手に持っていたチョークが投げられたとき,ライフルみたいな音がしたんだ,と答えてみたり,可哀想なオスマー先生,毎日心配事が増えていってるみたいだ,といろいろ理由を挙げるライナスに,それに卵殻もね,とチャーリーがツッコみを入れて,そう,卵殻もだね,とため息をつくライナスで終わってみたり,本当にライナスみたいな生徒がいたら小学校の先生は大変だろうなあと,顔も出てこないがオスマー先生には同情せざるを得ない。
とうとう,今夜はルーシーが見ててくれるって言ったから安心だと言ってベッドに入ったライナスに,最後のコマで「卵殻忘れないでね!」とルーシーが大声で叫ぶ回を挟んで,やっと卵殻を持って行ったらオスマー先生がいなくなっちゃったんだ。彼女結婚するんだ。卵殻の件はもっと深い問題の表れ(manifestation)だったって,ぼくはわかってたよ,とチャーリーにまくしたてるライナスという意外な展開に至る。その次の回がたぶんこの一連の話のオチなのだが,何やら箱にリボンを掛けているライナスに対して,「何してるの?」とルーシーが尋ね,「結婚祝いのプレゼントを作ってるんだ」とライナスが答え,「あんたにしちゃ気の利いたことするのね。中身は何なの?」と尋ねたルーシーに対して,「卵殻入りの箱(box of egg shells)だよ!」というライナスで終わるという,わかったようなわからないような話である。R Core Teamがどういう意図で付けたコードネームか知らないが,もしかすると,a manifestation of deeper problemsであると言いたいのか? と考えるとちょっと怖い。
R-develに昨日投稿されたp.adjust.methodにBKY (2006)を加えて欲しいという提案だが,BKY (2006)の筆頭著者のBenjaminiってBH (=fdr)やBY(出典はBenjamini Y, Yekutieli D (2001) The control of the false discovery rate in multiple testing under dependency. Annals of Statistics, 29: 1165-1188.(link))を提案した人と同一だと思うが,その後も改良していたということか。たしかにまだp.adjust.methodsに入っていないな。
R-announceで,R-3.5.1のリリースがアナウンスされていた。コード名は"feather spray"で,たぶん出典は相変わらずpeanutsみたいだ。変更点一覧をざっと見た感じでは,そんなに大きな変更はなさそう……と思ったが,奥村さんのtweetによると,3.5.0で入ってしまった,read.csv()でURLから読み込むときのfileEncodingが効かないバグが解消されているそうだ。
エビデンスベーストヘルスケア特講の今日の分も英語版を作って印刷し,アップロードした。Games-Howell法がuserfriendlyscienceパッケージのposthocTGH()関数で簡単に実行できることがわかったので,日本語版テキストも0.9.5.2に更新した。
R-3.5.0が予定通りリリースされた。すべてのパッケージがデフォルトでインストール時にバイトコンパイルされるようになったそうだ。3.4.4までは,例えばfmsbパッケージを呼び出してからプロンプトにmhchartのように関数名を打つとソースコードと名前空間が表示されるだけだったが,3.5.0では最下行の名前空間を表示する行のすぐ上にバイトコードが表示されるようになった。確かにバイトコンパイルされているらしい。
2015年都道府県別損失余命のデータPrefYLL2015のドキュメントに,例として長野県,滋賀県,沖縄県だけ色を変えてレーダーチャートを描く実行例コードを付けてみた。0.6.3をインストールすれば,library(fmsb); example(PrefYLL2015)で描けるのでご覧いただきたい。長野県は相変わらず,ガンによる損失余命が少ないが,脳血管疾患による損失余命は多い。滋賀県の死因構造は長野県とは全然違っていて,高血圧,糖尿病,脳血管疾患による損失余命が少ないので,いわゆる生活習慣病対策が成功しているということだろう。なぜ長野県でガンによる死亡が少ないかを検討するには,ガンの部位別の損失余命を計算してみると良いかもしれない。
2018年4月3日にwebのエントリページからcranへの掲載依頼をして,2018年4月4日には早くも"Thanks, on CRAN now."というメールが届いた。
予告通り,2018年3月15日に,R-3.4.4がリリースされた。コード名は"Someone to lean on"だが,Peanutsのマンガには出典が見つからないらしい。"Happiness is someone to lean on"という文章とともにCharlie BrownとSnoopyがもたれ合っている女性用Tシャツしか見つからなかった。これが3.4.*最終リリースとのこと。
2018年3月20日に,R-3.5.0は4月23日リリース予定というメールが流れた。コード名は"Joy in Playing"とのこと。NEWSによると,factor()やorder()の変更は要注意だな。あと,デフォルトですべてのパッケージがインストール時にバイトコンパイルされるようになるらしい。
奥村晴彦,牧山幸史,瓜生真也(著)石田基広(監修)『Rで楽しむベイズ統計入門:しくみから理解するベイズ推定の基礎』技術評論社,ISBN 978-4-7741-9503-2(Amazon | honto | e-hon)をご恵贈いただいた(ありがとうございます)。ざっと目を通した感じでは,導入がスクリーニングの話(『ハードナッツ!』や『お任せ!数学屋さん3』など多くの数学小説に出てくる,稀な疾患の場合は,スクリーニング陽性でも本当に病気である可能性が直感的には信じられないほど低いという例のネタを,専門用語を使って丁寧に解説してくれている)で,選挙の予測,事前分布の再検討,とすごく丁寧に説明が進んでいくのでフォローしやすいと思った。
Amazonから,高橋将宣,渡辺美智子『欠測データ処理:Rによる単一代入法と多重代入法』共立出版,ISBN 978-4-320-11256-8(Amazon | honto | e-hon)が届いていた。調査データではゼロにすることがきわめて難しい欠損値の処理だが,それに特化した本は少ないので貴重。しかもRでmiceだけではなく,新しいパッケージもたくさん具体的にコードも含めて紹介してくれているのは嬉しい。さらに2,200円という比較的安価な値段付けも嬉しい。これはじっくり読まねばなるまい。
予告通り,R-3.4.3がリリースされた。
Beau Johnstonという方から,fmsbパッケージのradarchart()の改良案をいただいた。良い機能拡張と思うので取り込みたいが,すぐには時間が無くてできない。都道府県別生命表が公開されたら,データ追加も含めて一気にやってしまいたいが。
IPUMSからメールが届いていて,RからIPUMSのデータを利用しやすくするため+αのパッケージipumsrが開発されたことを知った。dplyrとかtidyrをインポートしているので先進データサイエンティスト系の開発者であろうと思われる。まだバージョン0.1.0なので,開発途上と思うが,これでIPUMSを使うためのハードルが下がると良いなあ。
さっき,オライリー・ジャパンから,ハドリー・ウィッカム,ギャレット・グロールマンド(著),黒川利明(訳),大橋真也(技術監修)『Rではじめるデータサイエンス』,オライリー・ジャパン/オーム社,ISBN 978-4-87311-814-7(Amazon | bk1 | e-hon)が届いた(ご恵贈くださりありがとうございます)。言わずと知れたHadley Wickham and Garrett Grolemund "R for Data Science: Import, Tidy, Transform, Visualize, and Model Data", O'Reillyの訳書である。表紙のカカポに目を奪われるし,図版がカラー印刷で美しいが,Rの本というよりはtidyverseの本。ぼくのようにbaseの知識しかない古典的Rユーザにとっては,とてもRのコードに見えない。けれども丁寧に説明されているように見えるので,今後dplyrとかggplot2とかtibbleとか使いたくなったら,これで勉強しようと思う。ありがとうございました。
R Developer Pageに書かれているが,11月30日にR-3.4.3がリリース予定というメールが届いた。コード名は"Kite-Eating-Tree"とのことで,出典はやはりPeanutsだが,ストーリーの名前ではなくチャーリーブラウンが凧揚げをしていて何度も凧を引っかけてしまって「凧食いの木」と名付けた巨木のキャラクター名なようだ。
RStudioの開発チームが作った,stringrパッケージでの文字列処理の早見表(cheat sheetってのはカンニングペーパーも意味するが,別に試験されているわけではないので,早見表の方が良い訳だろう)を紹介するR bloggersの記事。
G-computationというDAGの解析手法は,当初はSASとStataでしかできなかったようだが,現在ではRのパッケージでもtmlenetとかltmleとかでできるらしい。あと,以前ちらっと調べたときは見つからなかったが,effect sizeのパッケージでも,Cohenのdを出すにはeffsizeパッケージのcohen.d()が便利そう。
効果量を計算するRパッケージについての参考情報を追加しておく。こことここ。三重大学の奥村先生も効果量について書かれている。
R Studioの1.1が正式リリースされた。これまでもとくに不満はないが,とりあえず更新しておくか。kazutanさんのブログで新機能が紹介されていて参考になる。
Microsoft R Openの最新版は3.4.1で,Rの最新版である3.4.2に追いつくのは今月中が予定されているが,まだ何日になるかはわからない。
10月30日,Microsoft R Openの最新版が3.4.2になっていた。ダウンロードはしたが,インストールはまだ。[Rd]でMicrosoft R Openで使われている並列処理とか高速行列計算のライブラリをR本体にmergeしたらどうかという提案があって,ライセンスとか独立性の維持とかいろいろな面で議論が続いているが,難しい問題。たぶん,この話が紛糾する根底には,Microsoftを信じ切れないところがあるのだと思う。個人的にはR Foundationにもっと寄付をしても良いので,Core Teamの大企業からの独立性は維持して欲しい。
R-3.4.2がリリースされた。メンテナンスリリースなので,大きな変化はない。ただ,Dr. Duncan Murdockがこれまで15年間やってきたWindowsバイナリビルドを,R-3.4.2で最後に引退するということなので,Windowsユーザは次からはMicrosoft R Openを使うか自力でビルドせねばならない……かもしれない。誰か別の人が引き継ぐかもしれないが。
Duncan Murdockの引退を受けて,"Duncan's retirement: who's taking over Rtools?"という[Rd]のスレッドが議論沸騰している。Microsoft R Openが受け皿という状況はRの言語としての独立性を保つためには良くないので,誰かがDuncanがやっていたことを引き継ぐべきという声が多い。大変な仕事だからなあ。
R-3.4.2リリース直後のDuncan Murdockリタイア宣言からの議論は,ご本人が提案された通り,Microsoft R Openが引き継ぐというのが有力な感じ。Microsoftからは独立である方が良いという意見も多いが。ただ,Microsoft R Openはx64なので,もしそうなったら,32bit Windowsで動作するRは3.4.2が最終版になるということだな。32bit版のWindowsを使っている人には悲報だが仕方ないか。後は,Microsoft R Openはオリジナルコードからいろいろ高速化されたRevolutionsを引き継いでいるためか,R本体のソースコードリリースから1ヶ月くらい遅れてのリリースになるのが普通なので,MacやLinuxとタイムラグができてしまうのも若干懸念材料。
R-3.4.2リリースのときにDuncan Murdockが引退宣言をして,今後のWindows版バイナリビルドはどうなる? と大騒ぎになっていた話だが,R Foundationから後継者が決まったという告知があって一安心。後継者となったJeroen Oomsという方は,Twitterアカウントによると,UCバークレーのポスドクと書かれている。これで当面RのWindows版バイナリも安泰だろう。
R-3.4.2のコードネームは"Short Summer"というのだが,テキサス大学サンアントニオ校人口学教室のFacebookページでR-bloggersの記事が紹介されていた(大学の公式サイトよりFacebookの方が充実している。かなり情報量があるので,人口学会のサイトからリンクしたいくらいだ)。なお,この"Short Summer"はいつもの4コマではなく,テレビシリーズで放映された"It was a short summer"という話のようだ。夏休みのキャンプで男子チームが女子チームに負け続け,スヌーピーが男子代表としてルーシーと再戦したが反則負けになったという夏が終わり,「短い夏だったな」というライナスに対して,「そうだね。長い冬になりそうだ」と答えるチャーリー・ブラウンというシーンで終わるらしい。もしこれだとすると,Rにとって,このコードネームの含意は何なのだろうか?
傾向スコアを使ったRでの分析について丁寧に説明されたページを見つけたのでリンクしておく。あと,lmSupportパッケージのmodelEffectSizes()で求めることができる偏イータ2乗についてメールで問い合わせがあったので調べたところ,英語で書かれた本の1つのChapterがわかりやすかった。日本語だと水本篤,竹内理「研究論文における効果量の報告のために―基礎的概念と注意点―」英語教育研究, 31: 57-66, 2008.がわかりやすかった。偏イータ2乗は偏相関比と訳している例がいくつかあるが,その元は[fpr]メーリングリストでの南風原先生のご発言らしい。anovakunというRの関数を開発されている井関さんのこの説明もわかりやすかった。
重回帰分析の結果として偏相関係数の二乗も表示したいけれどもEZRが出してくれないので,どうしたら偏相関係数の二乗が得られるかという質問を受けたので調べてみた。
lmSupportというパッケージのmodelEffectSizes()を使ったら良いと書かれているページもあったが,違うもの(偏イータ2乗。分散分析の効果量の指標として良く使われる)を計算しているようだった。結局,lm()の結果がresに付値してあるとして,anova(res)[["Sum Sq"]]/sum(anova(res)[["Sum Sq"]])で得られることがわかった(Residuals以外の値を合計すると,ちゃんと自由度調整していない重相関係数の二乗になるので,辻褄は合っている)。表示される数字がどの説明変数の値なのかは,anova(res)の表示順から見るしかないようだが。重回帰分析の結果は,偏回帰係数,標準誤差,95%信頼区間に加えて,標準化偏回帰係数を表示するよりも,こっちを表示した方が良いかもしれない。
r-de-rさんからコメントいただいて気づいたが,anova()の返り値はdata.frameだったので,リストとして[[]]で取り出してしまわず,[]でdata.frameのまま取り出せば変数名も残るのだった。ご指摘ありがとうございました>r-de-rさん。
ついでにもう1点メモしておくと,stripchart()で重なる点が多いときはoffset=1/5くらいにすると良い。
なぜこの名前なのか知らないが,FiveThirtyEightというニュースサイトがある。このサイトの各ストーリーの背後にあるデータとコードをまとめたRのパッケージfivethirtyeightがgithubで開発されている。いろいろなデータがあるので統計手法を試すのに良さそうだ。どこで使われているのか知らないが,このfivethirtyeightの依存パッケージにfmsbが含まれているのが嬉しい。
社人研の石井太さんがRによる人口分析の勉強会を始められるとのこと。素晴らしい。第1回は9月16日(土)で,参加に資格は要らないが要登録とのこと。
谷村先生の講義中にtweetしたが,今日の谷村先生のお話については,R言語 CRAN Task View:空間データの分析が参考になる。また,地理加重回帰についての説明で出てきた,犯罪発生と所得と家屋評価額の例はこのスライドがわかりやすい。ただし,リンク先のスライドは2011年の資料なので,いろいろ変わっているところはある。現在のspdepパッケージに入っているcolumbusは,変数名がすべて大文字であり,mgcvパッケージに入っているcolumbは家屋評価額の変数名がhousingでなくhome.valueである。他にもいろいろ変わっているところがある。このように空間統計は変化が激しいので,谷村先生も,なかなか『地理空間データ分析 (Rで学ぶデータサイエンス 7) 』(共立出版)の第2版が出せないのだという話だった。けれども,その変化を各ユーザが個別にフォローするのも大変なわけだから,日本語で更新情報が集積されたものとして,是非第2版に漕ぎつけていただきたい。もっとも,これも谷村先生がメンテナをされているNipponパッケージを国民の祝日追加に対応させるだけでも大変だと思うし,三重大学の業務も忙しいと思うので,すぐには難しいだろうが……。
予定通り,R-3.4.1がリリースされた。コードネームは「ロウソク1本」(Single Candle)。3.4.0のコードネームが闇を呪っているルーシーの台詞"You Stupid Darkness"だったので,そのパッチリリースである3.4.1のコードネームが,そのルーシーの行動を見る前にチャーリー・ブラウンが聞いた「闇を呪っているよりもロウソク1本でも灯りを点けた方がいい」の「ロウソク1本」であるのが味わい深い。
古い記事だがLisa Winterさんがtweetしていたので知ったList of useful packages (libraries) for Data Analysis in Rは見やすい。
RのJPSurvというパッケージを知ったのは収穫だった。joinpoint回帰という方法で,ホッケースティックを拡張したような感じだが,局所最適に陥らないような工夫がされているというのは面白いと思った。ただ,変数として~Alive_at_Start + Died + Lost_to_Followup + Expected_Survival_Interval + Interval + Yearを与えなくてはいけないので,適用できるデータが生存時間に限られている。集団ベースのがんの生存解析用に作られたパッケージらしい。用例はexample(joinpoint)で。
石田基広先生から(だと思う),Munzert S, Rubba C, Meiβner P, Nyhuis D(著)石田基広・工藤和奏・熊谷雄介・高柳慎一・牧山幸史(訳)『Rによる自動データ収集:Webスクレイピングとテキストマイニングの実践ガイド』共立出版,ISBN 978-4-320-12416-5(Amazon | bk1 | e-hon)をご恵贈いただいた(いつもありがとうございます)。ビッグデータ解析の入口として必須なデータ収集についてのバイブルになりそうな感じ。
64ビットでいろいろ高速化されたRであるRevolutionsをMicrosoftが買収して開発を継続しているMicrosoft R Openの3.4.0がリリースされた。リリースノートに書かれているように,Windows版の場合,3.3.3よりインストーラのサイズが小さくなり,複数バージョンの共存ができるようになったのがポイントのようだが,R本体の方が3.4.0では大幅な高速化などわりと大きな変更があり,Microsoft R Openも,基本的には最新版の本体ソースコードに対して拡張を適用する形のようだから,バージョンアップする意味は小さくないと思う。
JfertのASMFR2015がASFR2015.1となっていたのをfixし,WhipplesIndex(),CaretakerRatio(),IndexOfDissimilarity()を追加し,0.6.1とした。cranにアップロードしたら丸一日も経たずに承認された。
EZRを自治医大のサイトからダウンロードしてインストールする方法だとR本体のバージョンが古くなってしまうため,できれば学生にもR本体の最新版をインストールしてから追加パッケージとしてinstall.packages("Rcmdr", dep=TRUE)とinstall.packages("RcmdrPlugin.EZR", dep=TRUE)をしておき,実際に使うときはRを起動>library(Rcmdr)>ツールメニューからプラグインとしてEZRを呼び出して再起動,という手順を踏むことをお薦めしたいと思ってきた。
EZRを呼び出すところまでやってからツール>オプションでフォントサイズの設定などをしてから,ツール>オプションの保存で.Rprofileを作業フォルダ(Rの起動アイコンのプロパティで設定)に保存しておけば,Rを起動後にlibrary(Rcmdr)をするだけで,フォントサイズなども設定済の状態でEZRが起動するようになる。
EZRしか使わない人なら,保存した.Rprofileをエディタで開いて下の方の#を4つ消すだけで,Rを起動すると勝手にEZRが起動するようになって便利だ。
ということは,この.RprofileをC:\EZRDATA(別の作業フォルダでも良い)に入れておき,普通のRの起動アイコン(ショートカット)をコピーして名前をEZR on R-3.4.0とでもしておき,プロパティで作業フォルダをC:\EZRDATA(さっきコピーした.Rprofileが存在するフォルダ)にすれば,R本体は1つしかインストールしなくても,普通に素のRを呼び出すアイコンとEZRを呼び出すアイコンを使い分けられるということだ。
『Rによる統計解析の基礎』のpdfを見ていたらsurvivalパッケージの仕様変更について取り込んでいないことに気づいた。これだと書かれている通りに実行してもsurvfit()の結果が出ないことになってしまうので修正せねば。が,直し始めてみると想像以上に大変。
今日はR-3.4.0のリリース日だが,まだCRANには載っていないようだ。New features(新しく追加された機能だけではなく,重要な変更点も記載されている)によると,table()やsummary.default()やfactor()やxtabs()など基本的な関数の仕様が若干変わっていたりするので(ほぼ例外処理だし,より首尾一貫したものになったと書かれているので,まあ問題はないと思うが),ちゃんとチェックしてみるまでは,常用マシンのRはバージョンアップしない方が無難だろう。リリースされたらとりあえず研究室のデスクトップ機かGPD WINに入れてみるかな。
夜になって再びCRANをチェックしたら,R-3.4.0.tar.gzは既に公開されていたが,Windows版インストーラはまだのようだった。
しかし,翌日になったら統数研ミラーにもWindows版インストーラが入っていた。インストールはHDD換装後にしたいのだが,先にデスクトップ機にインストールした。とくに問題なく動作している模様。
Rで感染症数理モデルの教育をするのに,EpiModelパッケージと,SIR models in Rは使えるかも,と一瞬思ったが,ここまで説明すると1時間では足りないので,1978年の英国の全寮制男子校でのインフルエンザ流行のSIRモデルの簡単なRコードを書いた。このコードでのパラメータは,βは2日目に1人から2人増えて3人になったというデータ,γは普通は2日で回復したというデータからの推定,δは短期間なので無視できるとして決めているが,optim()でfittingもしてみるか?
やってみたらoptim()を付け加えて最適パラメータを計算するのは簡単だったので,当該Rコードを置き換えた。図は右の通り。
感染症モデルとしては,もちろん最初の2日間だけのデータからエピデミックカーブをだいたい予測できたという方が価値が大きいので,全部のデータを使った後付けのフィッティングと多少パラメータがずれていることには問題はない。ただ,この当てはまりの良さはかなり2日目に2人増えたことに依存していて,たぶん確率的には大差ない(感染しても報告が遅れることもありそうだし)1人増える場合や3人増える場合から予測すると大きく外れてしまうのがモデルの弱点(それも含めて実行するコードはこれで,実行結果のグラフはこれ)。もちろん初期データからβの信頼区間は計算できるので,信頼区間の上限と下限を使って予測するという手はあるけれども。
twitterで見掛けてAmazonに発注していた,Rサポーターズ『パーフェクトR』技術評論社,ISBN 978-4-7741-8812-6(Amazon | bk1 | e-hon)が届いていたので持ち帰ることにした。
『パーフェクトR』を書いたRサポーターズはTokyo.Rの人たちなので,統計界隈とは違ったアプローチでまとめられている。エラー制御系の関数が多数紹介されていたり,plotrixパッケージを紹介するコラムで,多種多様な作図関数ではなくてアスペクト比を変えても常に真円を描く関数draw.circle()など素材としての描画関数にだけ触れられていたりするのは,本書のその特性が顕著に表れたところだと思う。「モダンなデータ可視化」としてggplot2パッケージによる作図を説明するパートでも調整用関数として背景の変更でtheme_classic(),タイトルとラベルの設定,凡例の位置の変更,軸の変換,目盛の変更といった,投稿論文に使えるようにグラフを仕上げるのに使えそうな関数群の説明が詳しく与えられ,さらにインタラクティブなデータ可視化という章でhtmlwidgets,googleVis,ggvisという3つのパッケージを使ったJavaScriptでの作図に1章使われているのも,Tokyo.Rらしい感じ。新しくスマートな部分が広範に拾われているので,そういう視点でRにできることを知りたい方にはお薦めできそう。
fmsbパッケージの更新作業中,取り込み忘れがないか更新情報の保管庫5をチェックしていたら,以前書いたコードが目にとまり,今ではwpp2015パッケージができたからExcelファイルを読むなんて面倒なことをしなくても良くなったはずなので,書き直してみようと思い立ってしまった。作ってみたら簡単にできたのでアップロードしておく。
fmsb-0.6.0の更新の目玉は,2015年の様々な日本の人口統計確定値を入れたことと,oddsratio()関数とriskratio()関数で,p.calc.by.independence=FALSEというオプションを付けるとvcdパッケージのoddsratio()関数と同じく,信頼区間関数でp値を計算するようにしたこと。さらに,hlifetable()関数とspearman.ci.sas()関数も追加した。昔と違ってftpでアップロードでなく,CRAN repository policyのSubmissionのところに書かれている通り,web interfaceを使ってアップロードしなくてはいけないのだが,そのURLを忘れていて探すのに時間が掛かった。あとでリンク集に追加しておこう。
帰宅後に気づいたが,fmsb-0.6.0のJfertに追加したデータのうち,ASMFR2015とすべきところをASFR2015としてしまっていた。ASFR2015という変数が2つ定義されてしまってまずいわけだが,勝手にASFR2015.1に変わって読み込まれており,エラーにはならないので気づかなかった。すぐ直すべきなのだが,もうon cran nowという返事が来てしまったので,1週間後くらいに0.6.1としてfixしたい。しかし変数名1文字だけのbug fixを新バージョンとするのも心苦しいので,何かもう少し更新したい。例えば1990年代に自分が調査してとったデータを加工して公開するとか(難しいのだが)。
Rの開発者メーリングリストに,Peter Dalgaardから,R-3.4.0(コード名はYou Stupid Darkness)が4月21日リリース予定とアナウンスされた。詳しいスケジュールはdeveloper.r-project.org参照と書かれていたが,見に行ったら見つからなかった。Dalgaardのメールへの返事で「日付が去年になってるよ」とツッコミが入っていたので修正中なのかもしれない。このツッコミへの「たぶん闇がとても深いので日付を今年に更新するのを忘れたんじゃない?」というフォローには笑った。コード名に絡めた素晴らしいフォローだ。
なお,このコード名も出典はPeanutsで,「闇を呪ってるよりロウソク1本で照らす方が良いって聞いたんでね」と言われたチャーリー・ブラウンが,「確かに。でも同意しない人もいるけどね……」と独白した次のコマがこの言葉で闇を呪っているルーシー,というオチでわかりやすい。
R-3.3.3がリリースされた。コードネームAnother Canoeは,例によってPeanutsからか? と思って調べたら,やっぱりそうだったようだ。キャンプ場から手作りのカヌーの模型を送ってくれたライナスに対してルーシーが,「最初に貰ったのはチャーリー・ブラウンに投げたら壊れちゃったから,カヌーをもう1つ送って」と手紙を書くシーンが出てくる。
useR! 2017は7月4日~7日にブリュッセルで開催(凄いトップレベルドメイン名だ。他にもトップレベルドメイン名を持っている都市ってあるのだろうか?)。行きたいがたぶん無理だなあ(水曜の国際協力研究科教授会と国際保健学領域会議と院生中間発表会……があるため,この週はエビデンスベーストヘルスケア特講はないが……と木曜の4コマ講義を休まねば行けない)。一度くらいはヨーロッパにも行きたいのだが。ここからできるabstract submissionのデッドラインが4月1日,採否通知が5月1日とのこと。
Correspondence to: minatonakazawa[at]gmail.com.