前野 昌弘 (2013) よくわかる初等力学

  • 前野 昌弘, 2013: よくわかる初等力学。東京図書, 403 pp. ISBN 978-4-489-02149-7. サポートウェブページ http://irobutsu.a.la9.jp/mybook/ykwkrMC/ 。

本書は (わたしは2019年12月に店頭で見て買ったのだが) 2013年に出た本だ。同じ著者、出版社から「よくわかる」のついた電磁気学、解析力学、量子力学、熱力学と、「ヴィジュアルガイド 物理数学」が2冊出ている。著者は琉球大学理学部の教員で、大学教員としてのウェブサイト http://www.phys.u-ryukyu.ac.jp/~maeno/ と個人ウェブサイト http://irobutsu.a.la9.jp/ がある。「いろもの物理学者」を自称し、本書奥付の上の著者紹介にもミドルネームのように書かれている。個人ウェブサイトにはSF関係の記事もあるが、あたらしい記事は物理の教材が多い。

わたしは地学の授業をしていて、天体の運動などについて教材をさがしているとき、前野さんのウェブサイトの「動く教科書」http://irobutsu.a.la9.jp/movingtext/ に気がついた。単なるアニメーションではなく、読者が指示することによって画面上の図形がうごくもので、パラメーター (変わりうるが各回の実行では定数とされる数値)を変えることができるようにつくられているものが多い。読者側はウェブブラウザでよいのだが、ブラウザ上で動画を実現する技術に変遷がある。古いものは、 Flash や Java applet がつかわれているが、新しいものは HTML5 をつかっている。(わたしはこのあたりの技術がよくわからず、これまで操作してみなかったが、HTML5 のものはつかってみようと思っている。)

【わたしは地学、とくに気象学をおしえる際に、基礎として力学を必要とするが、力学を自分でおしえることはこれまでなかった。(わたしが授業を担当してきた大学は、物理の教員が別にいるところだったからだ。)

わたし自身が学生のときは、大学の教養課程の力学は理解できたつもりだが教材が印象にのこっておらず、理学部物理学科の授業は、地球物理コースの必修になっていたぶんの単位はもらったものの実質的に学習できていたか疑問だった。大学院で気象学を勉強する際に必要な範囲で力学も勉強したが、体系的でなかった。

大学初級の力学をおしえるたちばになる可能性がでてきたが、そうすると勉強しなおさないといけない。多数の教科書を読みくらべる時間はとれそうもない(わたしの時間のうちでの優先順位を高くできない)。よさそうだと見当をつけたものを見ることにした。

物理の理解がしっかりしていて、初歩の人が誤解しやすいところをじっくり説明しているものがほしいので、まず、「動く教科書」で知っていた前野さんの著書を見ることにした。ほかとくらべたわけではないが、本書はこの期待にこたえてくれる本だと思う。

90分15回の授業であつかおうとすると、本書の内容は講義しきれない。教員の判断で要点を講義し、あとは学生の自習の材料にするのならばよさそうだ。ただし、要点とすべきことがらは、章の題名になっていることがらや、ページ配分が多いことがらだけではないので、講義予定をつくるまでによく見ておく必要がありそうだ。】

本書は全11章と付録からなっている。

付録には、道具となる数学的概念 (微分積分、ベクトル、座標系)と、物理量の次元と単位についてのことが書かれている。

「はじめに」のなかで、章を順に読まなくてもよく、いろいろな順序がありうる、と言っている。ただし、順序をかえたばあい、まだ説明を読んでいない用語が出てくることはある。

最初の3章は静力学にかけている。わたしは、静力学は運動方程式で速度がゼロになる特殊なばあいとして、はじめから運動方程式をだせばよいと考えていたのだが、それとはちがう。しかし、わたしの専門分野でも、近似的に力がつりあっているとすることが多いから、静力学に重点をおくのはよいことだろう。

力のつりあいを、第1章では1次元、第2章では2次元・3次元で考える。
第1章のうちでは、「作用・反作用の法則」について、力のつりあいとはちがった概念であること、用語の意味にとらわれると誤解すること(まず作用があってそれから反作用が生じるという関係ではない)などを注意している。
また、日常には意識しないがつりあいを構成するものとしては必要な「垂直抗力」や「糸の張力」を、どのように想定したかを説明してつかい、原因にいくらかふみこんだ説明もくわえている。

第3章も静力学だが、剛体を想定し、もし動くならば並進とかさなって回転もおこるような状況で、回転をおこさせようとする「力のモーメント」が主題となる。てこの原理もあつかう。
この章の最後に「面に働く力」についてのべ、「圧力」ということばもだしている。(「法線応力」と「接線応力」が、「面に働く力」の見出しよりも前に出てくる。これは「面に働く力」のうちにまとめたほうがよいと思う。)

第4章からが動力学だ。
第4章は1次元、第5章は2次元・3次元での運動方程式とその解としてえられる運動の例。
第6章は運動量、第7章は力学的エネルギー、第8章は角運動量のそれぞれ保存則。(角運動量はわたしがよく理解しないままきてしまった概念なので –だから気象学の理論家になれなかったのだが–。勉強になりそうだ。)
第9章は振動(単振動、強制振動、減衰振動)。具体例としてはおもに ばねふりこ をあつかい、ふつうの ふりこ は ふれの角 θ がちいさいとき、sin θ ~ θ という線形近似で単振動になる、と ことわっている。ただしこの論点を強調してはいない。

第10章は相対運動。座標系が等速直線運動するばあいの「ガリレイ変換」と、座標系が回転するばあいにでてくる「遠心力」と「コリオリ 力」が出てくる。「コリオリ 力」は 3次元のベクトルの形でしめされ、円筒座標での成分が説明されている。(気象学でつかう球座標の形にいたるにはもうひとつ処理が必要で、わたしにはとっさにはできないのだが、本書の演習問題などで頭をならせばできそうだ。)

第11章は、重力 (万有引力) を前提として、太陽のまわりの天体の運動の軌道が楕円や放物線になることや、ケプラーの「面積速度一定」などをみちびく。(わたしはこれまで、地学の授業で、楕円軌道は知識としてふれるけれども、数値を入れた計算の例は円軌道の近似でしかできなかった。力学をどこまでやれば楕円軌道を計算できるのかわかったのがありがたい。)

折りかえしのあとに くわしい目次をつける。
Continue reading

村上 陽一郎 (1979) 新しい科学論

  • 村上 陽一郎, 1979: 新しい科学論 — 「事実」は理論をたおせるか (ブルーバックス B373)。講談社, 202 pp.

1979年1月に出た本。大学3年生だったわたしはすぐ買ってひととおり読み、しまいこんだ。【そこまでの事情はあとで書く。】 2020年には、村上さんの名まえが、ひとつには1983年に中世西洋のペスト(黒死病)についての本を書いた人として、それから2020年10月に学術会議会員任命の問題についてネット上に評論を書いた人として、話題になっていた。それでこの本のことを思いだして、家の「ブルーバックスの棚」から持ちだしてきた。2020年12月になって、ブルーバックスから、副題に「新しい科学論」ということばがふくまれた本が出た【佐倉 統 『科学とはなにか[読書メモ (2021-01-12)]】。講談社によるネット上の宣伝には「ブルーバックスでは41年ぶりの科学論」というような表現もあった。こうなると、わたしは、新しい本を読むまえに、41年まえの本を読みかえさなければならない。

著者の専門は科学史・科学哲学にわたり、本書を書いたころは、西洋の近代科学のはじまりのころについての科学史の専門家として知られていた。しかし本書はどちらかというと科学哲学の本だ。著者は本書よりあと、科学技術と社会の関係にふみこみ、2000年ごろ以後はどちらかというと科学技術社会論の人として活動していた。しかし本書は、動機として「公害」や「資源有限論」など社会のがわから科学のありかたに反省をせまる材料があることをのべてはいるが、本論はアカデミックな科学哲学・科学史で、科学と社会の相互作用を具体的に論じてはいない。

副題の「「事実」は理論をたおせるか」に直接関係する論点をわたしなりに説明しなおす。20世紀前半にでき、1970年代ごろ「科学に関する常識的な考え方」になっていたものに対して、1970年代ごろ新しかった科学に関する考えかたを対置したのだ。

20世紀前半の「常識的な考え方」はさらにふたつに分けられる。ひとつは、事実に関するデータが蓄積し、そこから法則性が知られることによって、科学は進歩する、というものだ。しかし、それは論理学のたちばから批判される。科学の法則は、ある条件をみたすすべてのものになりたつ言明だ。個別事実についての言明をつみあげる帰納によっては、法則を実証することはできない。第2の考えかたは、科学者が法則の候補となる仮説をたてることを重視する。個別事実が、仮説から演繹される帰結とちがっていれば、仮説が反証される。法則は確定はしないけれども、正しくない法則の候補が排除されることによって、科学は進歩する。(これは、本書が出たのと同じころ、わたしが課外で、ポパー(Popper)の学説として勉強したことだ。本書にはわたしの気づいたかぎりでポパーの名まえは出てこないけれども、広い意味で同様な学説のひとつとしてふくまれていると思う。)

「新しい」科学観は、個別事実についての言明の確実性をうたがう。人が同じ画像のどこを「図」としどこを「地[じ]」として認識するかによって、別のものごとをよみとることができる画像がある。(この話題で村上さんは N. R. Hansonの著作を参照することが多くなったが、それは本書よりもあとのことだ。) そして、本書のおわりちかく(199ページ)で「共約不可能性」があるといい、本書での順序はそのまえ(197ページ)だが、Kuhn のいう「科学革命」に話をすすめる。この考えかたの提案者として、クーンとともに「クーンよりもこうした点では徹底した考え方をもつ」ファイアーアーベントの名まえをあげる。さらにかっこ書きで「わたくしは、この点でかなり彼らの主張には変更を加えなければならないと考えていますが、そこに立ち入るのは少し技術的に過ぎると思いますので、ここでは差し控えることにします。」と書いている。本書を見るかぎりでは、KuhnとFeyerabendと著者自身との考えにちがいがあることはわかるがその内容はわからない。なお、「共約不可能性」についてのわたしの理解は [別ブログ 2020-12-27の記事]に書いた。

本書のもうひとつの重要な論点。20世紀前半ごろにできて1970年ごろ「常識的」だった科学のとらえかたのうち、科学史に関する部分では、近代科学ははじめからキリスト教的世界観を否定するたちばに立っていたというものがあった。しかし、ガリレオのころからニュートンのころの、いまから見れば科学者と言える人たち(当時の表現では「自然哲学者」)の著作をたどると、彼らの科学理論は、キリスト教の信仰とささえあっている。(また、古代ギリシャ以来の神秘思想がつづいているところもある。) 近代科学を宗教と切り離そうとする変化はたしかにあったのだが、それは18世紀ごろのことなのだ。著者はそれを、科学にかぎらず西洋社会に17世紀から18世紀におこった「聖俗革命」というべき変化の一環としてとらえる。

このふたつの論点がどうつながっているのかは、読者としてはよくわからない。しかし、著者はキリスト教の信仰をもちつづけている人だと聞いているので、科学の学説選択の基準は「なんでもあり」ではなく、先近代にもどるわけでもないが、かつては宗教がカバーしていたような価値の領域の復活が必要という方向のような感じがする。

【さて、わたしは 1977年、大学2年の後期に村上助教授(当時)の講義を聞いたのだった。教養課程で科学史の科目があればとろうと思ったのだがその機会がなかった(理科系の学生むけに開講されていなかったか、時間がぜひとりたい科目とかさなっていたか)。理学部への進学がきまったあとの2年生後期に、理学部の科目で過密な時間割だったが(実際そのうちひとつを落としてしまって翌年に試験を受けることになったのだが)、たまたまあいているところに、科学史・科学哲学コース進学予定の人のための講義があったので、それにもぐりこんだ。「他学部聴講」(教養学部生が教養学部の科目をとるのだから形容矛盾なのだが)の手続きをしたと思う。講義は教科書をつかわず板書もすくなくて、正直なところよくわからなかった。

「共約不可能性」の話はなんとかわかった。その関連のどこかで、フォイアー、ファイアーアーベントともうひとりの学者の名まえが列挙されたことがあった。もうひとりがクーンだったか、クーンは別の文脈で出てきたかはおぼえていない。フォイアーは、いま調べてみると、村上さんほかの訳で1977年に出ている『アインシュタインと科学革命』の著者 Lewis S. Feuer にちがいない。

期末レポート課題が出て、どういう問題だったか忘れてしまったが、18世紀フランスの『百科全書』が話題になっていて、岩波文庫の抄訳本を手にとったもののそれを読みとおす時間もなくとほうにくれたのをおぼえている。(履修登録はしたもののレポートを出せなくて単位はとらなかった、と記憶しているのだが、もしかすると、へたなレポートを出してしまったかもしれない。)

そのあと本書が出て、聞きとれなかった話のいくつかは、こういうことだったかと理解できた。それでも『百科全書』とのつながりはわからなかった。いま思えば、科学の聖俗革命をおこした啓蒙主義の思想がどんなものかを考えさせたかったにちがいない。】

折りかえしのあとに くわしい目次をつける。
Continue reading

間瀬 茂 (2007) R プログラミングマニュアル (初版の読書メモ)

  • 間瀬 茂, 2007: R プログラミングマニュアル (新・数理/工学ライブラリ 情報工学 1)。数理工学社 (発売: サイエンス社), 335 pp. ISBN 978-4-901683-50-0. [わたしはこの版を読んでいる。]
  • 間瀬 茂, 2014: R プログラミングマニュアル 第2版 (R バージョン3 対応)。数理工学社 (発売: サイエンス社), 359 pp. ISBN 978-4-86481-015-9. [わたしはこの版はまだ見ていない。]

Rの技術書の「在庫整理」にもう1冊追加する。この本は2014年に第2版が出ているので、ひとにすすめるならばそれを読んで紹介するべきなのだが、わたしは、2007年に出た初版 (くわしくいうと、2008年3月に出た第2刷)を2009年に買って持っているので、第2版を買うかどうか考えるまえに初版をながめてみることにした。

著者は数学からはいった統計学者で、空間分布をもつ量の統計学を専門としている。(そちらの主題の著書もわたしの仕事と無関係ではないのだが、わたしはまだ手を出せずにいる。) 本書は、著者の専門性のほかに、とくに「Tips」に関して、岡田 昌史 さんが運営している RjpWiki というサイトにあつまったおおぜいの人びとの知恵を反映している。

本書は、プログラム言語としての R の機能に関する知識を整理した本である。統計学的なこととグラフィックスは意図的にはずされている。

ほかの R の技術書であまり見なかった論点として、浮動小数点による数値計算の誤差のこと (第14章)がある。また、計算時間を短くするためのくふう (第21章) とか、使用メモリ量を設定すること (第20章の多数の話題のひとつ) などは、大量のデータをあつかっている人ならではの観点だと思う。

行列 (matrix) については第6章で、単なる2次元配列としてのあつかいだけでなく、線形代数にでてくる行列の演算のための関数や演算子があることが紹介される。そして第21章で、計算効率のためには (行列の要素についてループをまわすのではなく) 行列演算をつかうべきであると言っている。ただし本書を読んだだけでは線形代数の式を R のプログラムになおせるところまではいかない。それにはその態度で書かれた教科書的なものが必要だ。

【目次だけでも (A5判で) 13ページあるので、書きぬきには OCR をつかうことにした。ただし、スキャンの際の画像パラメータの設定がうまくないままやってしまったので (章の題名が灰色の背景に黒字で書かれているので、グレースケール画像にしたのだが、むしろ章の題名をあきらめて白黒二値で画素数の多い画像にするべきだった)、OCRが失敗して手作業でなおしたところがだいぶあった。それでも全部手でうちこむよりは楽にできたと思う。】

折りかえしのあとに 目次をつける。
Continue reading

熊谷 悦生, 舟尾 暢男 (2007, 2008) Rで学ぶデータマイニング 1. データ解析編

  • 熊谷 悦生, 舟尾 暢男, 2007: Rで学ぶデータマイニング I — データ解析の視点から。九天社。
  • 熊谷 悦生, 舟尾 暢男, 2008: Rで学ぶデータマイニング I — データ解析編。オーム社, 252 pp.+CD-ROM, ISBN 978-4-274-06746-4. [わたしはこの版を読んでいる。]

【Rの技術書の「在庫整理」はこれで一段落としておく。まだいくつかあるが、読書メモはほかの題材の本にうつることにしたい。】

本書は、2007年5月に九天社から出た本が、出版社が倒産して売られなくなってしまったので、2008年11月にあらためてオーム社から出版された。参照されている R のバージョンは 2.4.1 で、付録のCD-ROMにもそのバージョン(Windows、Mac、Linux (Vine, Fedora core, Suse) むけ)が収録されている。

わたしは2009年7月に買った。なお、第2巻「シミュレーション編」は買わなかった。ちょっとめくってみて、わたしの専門分野(地球科学)のシミュレーションとはだいぶちがうという印象をもったからである。

著者の熊谷さんは、大学の基礎工学部というところの教員で、統計学者といってよいと思うが、むしろ(本書出版のころではなくいまの用語で) データサイエンスのための技術をおしえている人だといったほうがよさそうだ。舟尾さんは数理科学の大学院を出て企業につとめている人で、個人ウェブサイトでR についての知識を提供している。その内容のうち「R Tips」は本にもなっている。

「データマイニング」は、「はじめに」で、「データという鉱山から「統計的な手法」などを施すことで「宝石」を見つける」ことだと説明されている。「宝石」とは、「有益なルール」「意外なパターン」「意思決定につながる情報」などをさすという。データマイニングのアプローチは標準的な統計学のアプローチとどうちがうかという話もある。わたしなりに言いかえれば、データマイニングは「探索型データ解析」なのだと思う。ただし「探索型データ解析」を、John Tukey 先生の主張や (紙と鉛筆の時代に開発された) その技法をさすのではなく(それもふくんでよいのだが)、もっと一般的な態度としてとらえた意味でだ。

本書は、Rのインストール、起動、終了や、プログラムの編集のしかたや、Rでつくったグラフを保存する方法について、MS Windows、Mac、Linuxのばあいについて説明している。まわりに利用者がいない読者に対しても親切な配慮だ。

それにつづいて第1部では、Rの文法事項の説明がある。そしてとくに「データフレーム」というデータ構造について、なかみのはいったデータフレームをつくるにはどのようにしてデータを入れたらよいのか(いろいろな方法)、データを見ること、抽出、ならべかえ(sorting)、編集、データの欠損や異常値のチェック・修正などの方法をのべている。

第2部では、まず、データの分布をグラフでみること、おもにヒストグラムと散布図をかく (要約統計量や相関係数の計算もする) ことを説明している。(ここまでは、基本的にはわたしもわかっていることだが、知らなかった方法もあって参考になった。ただし「3次元円グラフ」(pie3D)は すすめないほうがよいと思う。)
それから「判別」あるいは「分類」の話題になる。データにいくつかのグループに属するものがまざっていることがわかっていて、定量的な数量の情報からどのグループに属するかという定性的な情報を推定する問題だ(とわたしは理解した)。おもに「回帰木」という方法が紹介され、「判別分析」「ニューラル ネットワーク」「サポート ベクター マシーン」による方法もあることが紹介されている。ただし、それぞれについて R のパッケージがつくられていてこうすれば利用できるという話だけで、回帰木以外の技法の理屈の説明はない。この部分は、わたしは勉強しておらず、いまだにうとい分野だ。

第2部の後半では、現実のデータにふれる。いくつかの例がある。そのうち「漢字問題」は、日本漢字能力検定協会のデータをつかって議論しているが、「協会の検定基準の設定が妥当かどうかを吟味する必要があるのかもしれません」とも言っている。【わたしとしては、この協会が漢字の読み書きについては特殊な利害関係者であることに注意して見るべきだと思う。】

少子化問題を動機として、日本の出生率に関する解析がこころみられる。ただし著者は人口学の専門家ではなく、本書で、学術的に、あるいは政策の根拠として、この問題に答えようとしているわけではない。現実世界についての例題として、多くの人が関心をもち、データの権利問題が生じそうもない公共機関が提供するデータをつかってできるものをしめしたかったのだろう。日本の統計は 国立社会保障・人口問題研究所 や 総務省統計局 統計研修所、国際的な統計は OECD が、それぞれインターネットに公開しているデータをつかっている。回帰分析につかうモデルの選択のところで、AIC (赤池の情報量基準) がでてくる。(「基準」「規準」の文字づかいが統一されていないが、どちらもありうる。英語では criterion。) 【結果はわかりやすいものではないが、そもそも、国単位あるいは都道府県単位の集計値をもとに統計的に言えることから因果関係にせまるのはむずかしいのだと思う。】

折りかえしのあとに くわしい目次をつける。
Continue reading

高階 知巳 (2008) プログラミングR — 基礎からグラフィックスまで

  • 高階 知巳 [たかしな ともみ], 2008: R プログラミング & グラフィックス。九天社。
  • 高階 知巳, 2008: プログラミングR — 基礎からグラフィックスまで。オーム社, 312 pp. ISBN 978-4-274-06743-3. [わたしはこの版を読んだ。] 著者によるサポートページ http://www007.upp.so-net.ne.jp/t_takashina/R-Program/Sample_Program.html [本書巻頭 v ページに書かれたURLは無効になっている。]

このところ、わたしは「つんどく」というか「不良在庫」というかになっていた R の技術書を見なおしている。目次を書きぬいてみて、知りたいことがあったらどこを参照できるかがわかったので、ようやく「良在庫」にできたような気がする。

本書は、2008年5月に九天社から出た本が、出版社が倒産して売られなくなってしまったので、2008年11月にあらためてオーム社から出版された。参照されている R のバージョンは 2.6.2 だ。

わたしは2009年7月に買った。それまでにわたしが見た R の初級の本は、R を道具とした統計学の入門書だった。わたしは統計学がやりたかったわけではなくて、データをグラフにするのに R をつかいたかったので、グラフのつくりかたと、データを R であつかえるようにしたり、グラフで示したい量に変換したりするためのプログラムの書きかたを知りたかったのだった。

本書は、プログラム言語としての R でのプログラミングと、グラフ作図 (大部分は R でとくにことわらずにつかえる graphics パッケージによるもの) の技術を紹介したもので、統計学にはほとんどふれていない。著者は工学系の博士課程を出て企業に勤務している人で、画像処理を専門とし、パッケージ rimage の作者でもある。本書の例文も画像処理や信号処理の話題をつかっている (画像処理の教材としては説明がすくなすぎるが)。だから、この本はわたしの目的によくあっていると思って買ったのだ。

実際、わたしは R で作業をするときこの本をよく持ち歩いた。しかし、2020年12月に目次を書きぬきながらふりかえってみると、この本のうちごくかぎられたところしか読んでいなかった。わたしの R の利用スタイルが、ともかくプログラムをつくりはじめて試行錯誤で改良するものになっていて、わからないことがあるとオンラインマニュアルかネット上にあるユーザーの経験集のページにたよることが多く、本書はネット情報でわからなかったときだけ辞書的に参照したのだった。

【2009年ごろのわたしは、いくらかのデータ解析作業を R にうつしたものの、大部分はそれよりまえからの、Fortran と Awk で処理して GMT (Generic Mapping Tools) か GrADS で作図するというスタイルをつづけてしまった。本を読み、読書ノートを書くこともしていたが、それは科学と社会とのかかわりに関するものが多くなり、技術書を読むことはすくなくなっていた。】

しかし、目次を書きぬいてみて、わたしはもっとたびたび本書を参照したほうがよかったと思った。プログラミング言語としての文法の要点や、graphics 関数の機能の要点がよくまとめられていると思う。わたしはまだ R のパッケージをつくったことはないが、つくるとすれば付録の「パッケージの作り方」も参考になりそうだ(最新のパッケージ仕様も確認したほうがよいだろうが)。

折りかえしのあとに くわしい目次をつける。
Continue reading

D. ショーカー [Sarkar] (2008 / 石田 基広, 石田 和枝 訳 2009) Rグラフィックス自由自在 [原題 Lattice: Multivariate Data Visualization with R]

  • Deepayan Sarkar, 2008: Lattice: Multivariate Data Visualization with R. New York: Springer Science+Business Media LLC, 265 pp. ISBN 978-0-387-75968-5 (paperback)
  • D. ショーカー 著, 石田 基広, 石田 和枝 訳, 2009: Rグラフィックス自由自在。シュプリンガー・ジャパン, 296 pp. ISBN 978-4-431-10089-0. 2020年現在、丸善出版から発売、ISBN 978-4-621-06164-0 . 出版社サイトの本書のページ https://www.maruzen-publishing.co.jp/item/b294248.html

出版社や装丁は、英語版、日本語版とも、『Data Manipulation in R / Rデータ自由自在[読書メモ]と同じだ。英語版は2008年に出た。わたしは2008年3月に(出版社だったか通信販売業者だったかの新刊情報をみて)注文した。日本語版は2009年12月に出て、わたしはすぐ店頭で買った。しかし、ほとんど読まないまま来てしまった。2020年12月になって、ざっと目をとおした。ただし、まだ lattice ソフトウェアを実際にうごかしてみていない。

著者は、本書を書いたときはアメリカの大学に所属していたが、いま(2020-12-17)ウェブ検索してみると、インドのデリーにある Indian Statistical Institute にウェブサイトがある。https://www.isid.ac.in/~deepayan/ そこの associate professor として、Rのほか、統計学やプログラミング入門をおしえている。そこにある個人情報は大学(ISIの学士)からの学歴・職歴だけだが、ベンガル語についてのページがある。ベンガル語話者にちがいない。Sarkarをショーカーというのは、ベンガル語の発音が英語にとりこまれた形にちがいない。

William Cleveland の発想にもとづいて、Bell研究所の人たちが、S の上で Trellis というグラフ作図ソフトウェアをつくっていた。lattice は、Sarkar が R の上で (Murrell による grid パッケージを利用して) Trellis と互換の機能を実装したところからはじまったパッケージである(その後の発展はかならずしも互換ではない)。

第1章。lattice の特徴がのべられている。
latticeの特徴的な表現方法は「条件つきマルチパネル」だ。データをグループにわけ、グループごとに同じ仕様の図(たとえばヒストグラム)をつくってならべる。軸の要素の大部分は共通だから、別々の図をならべるばあいよりは画面を節約した配置ができる。
ソフトウェアとしての実装の特徴。latticeパッケージの「高水準関数」はグラフを作図する機能をもつのだが、実際は trellis というクラスのオブジェクトをつくる。そのオブジェクトについて print または plot を実行したときに実際の作図がおこなわれる。(ただしふつうは print が自動的によびだされるようにつくられており、この構造を意識しなくてもよい。) グラフの表現をすこしかえたいとき、オブジェクトを加工してから表示するという手順をとれる。(第2章 2.5.3 に update という関数によって加工する例がでてくる。update は第11章 11.3 で説明される。)

第2章。lattice で図をつくるときの基本的なこと。とくに、条件わけが2次元になっていたらどうするか。画面上にパネルを2次元に配置するのが基本だ。ただし、それぞれのパネルの中の図の縦横比が適切かという問題もある。Cleveland によれば (わたしがおぼえているのは Elements of Graphing Data [読書ノート])の1994年版だが、本書の参考文献は1988年の論文)、折れ線が水平から45度の方向にむいているのが見やすい。それも考慮してパネルの配置をくふうしたほうがよい。

第3章。1次元の分布の表現。1次元の散布図のようなもの、密度関数の折れ線グラフ、ヒストグラム、箱ひげ図、「バイオリンプロット」など。また、理論関数あるいは他のデータと組み合わせた Q-Qプロット。

第4章。数量の比較には(棒グラフなどよりも) 線上の dot の位置で値をしめす dot plot がよい (Cleveland の主張。Elementsの1985年版の主要な論点だった)。2次元以上の条件わけのあるとき、グループ内の比較とグループ間の比較が見やすいように dot plot を配置する。

第5章。2変量の散布図。そして、多変量のとき、散布図を総あたりでつくる散布図方陣(scatterplot matrix、本書の表現は「散布図行列」)。なお、そのほかの多次元数量データの表示方法として、「平行座標プロット」がちょっと紹介される。

第6章。3次元の数量を3次元グラフィックスで表示すること。3次元オブジェクトをつくっておいて人の操作で座標軸を回転して観察するというのは、Rのもとでは困難らしい。ここでできるのは、3次元に分布する点の位置を2次元に投影した静止画像だ。自由に回転できないとすると、画面上の長さはデータ値と直接関係がつかないから、Clevelandの基準ではよい可視化方法ではないだろう。ただし、latticeでは、視点をすこしずつ変えた一連の投影図のオブジェクトをつくっておいて比較しながら見ることはできる。これならばよいかもしれない。

ここから第2部。latticeのもつ技術各論。
第7-9章では、lattice のもとでいろいろな指定ができること。

第10章はデータ操作。とくに、カテゴリカル変数である「因子」(factor)や
「シングル」(shingle)を生成してつかうこと。(シングルは数量データの階級わけのようなものだが、となりどうしのかさなりあいをもつ。)

第11章は、trellisオブジェクトを操作すること。第12章は、trellisオブジェクトに対話的操作で要素を追加すること。

ここから第3部。発展的なこと。
第13章。
latticeの関数は、(traditionalな) graphics の関数、たとえば text() とくみあわせてつかうことができない。gridパッケージの関数、たとえば grid.text() とならばくみあわせられるが、text()とは仕様がちがう。そこで、text() とだいたい仕様が共通な panel.text() が用意されている。このほかの graphics の関数についても同様である。
13.5節では、地図への表示が紹介されている。これは maps パッケージによる (Sのもとで Becker が開発したものが R にくわわったのだ。) 口絵のアメリカ合衆国のcounty別ぬりわけを見ると、かなり実用性があるようにおもわれるが、本書だけでは手本としての情報がとぼしい。

第14章。
latticeの拡張として「S3メソッド」と「S4メソッド」というものがあるそうだ。(本書だけでは情報がとぼしいが、外の情報をさがすきっかけにはなる。)
また、あたらしい関数を書くこともできる。【ここで出てくる例が、円グラフ(pie chart)をマルチパネルで配置するものなのだが、Cleveland ならば、円グラフは数量を直観的に知覚する精度が悪いのでよくない、4.2節の例のようにグループごとにドットプロットにするか、帯グラフにせよというだろう。】

折りかえしのあとに 日本語版のくわしい目次をつける。
Continue reading

Paul Murrell (2006 / 久保 拓弥 訳 2009) R グラフィックス [原題 R Graphics]

  • Paul Murrell, 2006: R Graphics. Boca Raton FL USA: Chapman & Hall/CRC (Taylor & Francis Group), 301 pp. ISBN 978-1-585488-486-6.
  • Paul Murrell 著, 久保 拓弥 訳 2009: R グラフィックス — Rで思いどおりのグラフを作図するために。共立出版, 316 pp. ISBN 978-4-320-01903-8. 出版社サイトの本書のページ https://www.kyoritsu-pub.co.jp/bookdetail/9784320019058 ; 訳者によるサポートページ https://kuboweb.github.io/-kubo/ce/RgJp.html

英語版は2006年に出た本で、わたしは2007年に注文した。A5とB5のあいだのサイズのハードカバーだ。日本語版は2009年10月に出て、わたしは11月に店頭で見つけて買った。A5判のペーパーバックだ。著者は R の version 2.1.0、訳者は 2.9.1 を参照している。

Rによるグラフの作図には、とくにパッケージ呼び出しなしでつかえるようになっている graphics パッケージ(本書では「traditionalな作図」と表現されている)、lattice パッケージ、ggplot2 パッケージがつかわれていて、それぞれのユーザーは1つのやりかただけに熟練することが多く、複数の方法をしっかり紹介している本は少ない。本書は graphics と lattice を紹介している。ただしわたしは graphics をつかうやりかただけを習得することにしたので、本書の前半は参考にしたのだが、後半は読まないままきてしまった。

2020年12月、R についてのほかの本を見たあと、本書全体の目次の書きぬきをしながらざっと目をとおしたら、事情がわかってきた。

グラフの作図には、2次元平面上に点や線や文字を配置すること(「基本的な作図機能」と呼ぼう)と、それを利用してデータにもとづいたグラフをつくること(「グラフ作図機能」と呼ぼう)の2つの階層を考えることができる。ところが graphics パッケージは両者が未分化のまま開発されていたので、あたらしい種類のグラフを追加することがむずかしかった。R のソフトウェア開発のメンバーのひとりでもある Murrell は、 基本的な作図機能のパッケージ grid をつくった。それを利用して Deepayan Sarkar がグラフ作図機能のパッケージ lattice をつくった。lattice は Trellis という概念の実装とされている。Trellis は、William Cleveland の考えにもとづくもので、Bell研究所の S のプロジェクトの中でBecker, Cleveland, Shyu によってつくりはじめられていた。Sarker は固有名としての Trellis をつかうのを遠慮して関連する一般的なことばの lattice にしたらしい(パッケージ内の関数名には trellis もでてくるが)。別に、Hadley Wickham が、grid を利用して、ggplot2 をつくった。それは、Leland Wilkinson による Grammar of Graphics という概念を実装したものだ。

本書は総論的な第1章のあと、大きく第1部と第2部にわかれている。
第1部は graphics パッケージによるグラフ作図で、まず、単純な指定でどんなグラフをつくれるかが紹介され、それから、こまかく指定できることが紹介される。

第2部の主題は grid パッケージなのだが、まず lattice パッケージでできることを紹介している。それから、grid の基本的な作図機能の、座標系、「viewport」、「作図オブジェクト」などの概念と操作方法の説明がある。著者は、lattice の横ならびに位置づけられるようなグラフ作図機能の開発者にむけて、作図関数や作図オブジェクトのつくりかたの例をしめしている。地球上に分布する数量を地図とくみあわせて濃淡で表示する例があるのは、そういうことをやりたい者にとってはありがたい。

(わたしは Cleveland の Elements of Graphing Data [読書ノート] を読んで、おおいに賛同したにもかかわらず、lattice をつかう気にならないままきてしまった。それは、latticeの紹介をいくつか読んで、それではわたしの需要をみたせないと思ったからだ。本書の後半を読んで、lattice の機能がたりなかったら、grid にもとづいて開発するという道もあることを知った。ただし、本書の第6-7章の記述はオブジェクト指向プログラミングを前提としているが、わたしのあたまは旧式の手順立て型プログラマーのままなので、ついていけそうもない気がしている。)

折りかえしのあとに日本語版のくわしい目次をつける。
Continue reading

P. スペクター [Spector] (2008 / 石田 基広, 石田 和枝 訳 2008) Rデータ自由自在 [原題 Data Manipulation with R]

  • Phil Spector, 2008: Data Manipulation with R. New York: Springer Science+Business Media LLC, 152 pp. ISBN 978-0-387-74730-9 (paperback)
  • P. スペクター 著, 石田 基広, 石田 和枝 訳, 2008: Rデータ自由自在。シュプリンガー・ジャパン, 181 pp. ISBN 978-4-431-10047-8. (2020年現在、丸善出版から発売、ISBN 978-4-621-06154-1 )

2008年3月に英語版の新刊情報を見て注文した。日本語版は2008年11月の発行で、わたしは2009年3月に店頭で見て買った。英語版、日本語版とも、A5判よりすこし大きい判のペーパーバックで、英語版の表紙は赤茶色から黄土色の横しまの背景、日本語版はSpringerの数学の本に多い黄色の表紙だ。わたしは2008年当時、気象データの解析の道具を R にかえようと思って、R の入門書で勉強していた。データの形式変換については入門書レベルだけではたりないと思い、この本に期待したのだった。しかし、実質的に読まないままきた。本書の書きかたはすでに R をつかいこなしている人むきで、R の ベクトル、リスト、データフレームなどのデータ構造をまだ理解していなかったわたしには意味がつかめなかったのだった。そして、わたしは仕事の道具を R にきりかえないまま来てしまった。

2020年12月に、手持ちの R に関する本をあつめてみて、これがあったのを思いだした。ほかの本をいくつか読んだあとでこれを見ると、話題がだいぶわかってきた。

第1章には、まず、Rがもつことのできるオブジェクトには「モード」と「クラス」があること、そして、だいたい同じ内容でモードやクラスのちがうオブジェクトをつくるにはどうしたらよいか、といった話がある(わたしはまだくわしく理解していない)。
ひとつ重要なのは、欠損値の扱いだ。欠損値は NA でしめされる。欠損値であるかどうかの判定には (NAとの比較という形でなく) is.na 関数をつかう。統計量をもとめる関数の na.rm オプションなど、欠損値に対応した処理がいろいろ用意されている。数値計算上で「数でない」ことをしめす NaN もつかうことができる。is.na では NaN も NA とみなされるが、is.nan で区別することができる。

第2章はデータファイルの読み書き。わたしにとっては当面、read.table と write.table が重要だ。一度によみこめない大量のデータを読むことも必要になるかもしれず、わたしには本書2.7節の記述だけではできそうもないが、手がかりにはなる。

第3章は、Rの中から外のデータベースにSQL言語でアクセスして読み書きすること。Rのdata frameと、いわゆるrelational database とは、だいたい同じ発想だから、それを関連づけてつかいたくなるのは当然だ。ただし、本書が出てから10年以上たっているから、ほかのソフトウェアとの連携の具体的なやりかたについては、必要に応じてあたらしい情報をしらべなおす必要があるだろう。

第4章は日付のあつかい。日付をあつかう Dateクラスと、日付と時刻をあつかう POSIXlt、POSIXct クラスが説明されている。

第5章は factor というデータ構造。本書日本語版では「因子」となっている。(別の本では「ファクタ」となっていた。) 因子分析の因子ではない。この章のあたまに「取りうる値の種類が限られている変数」「カテゴリカル変数」であると説明されている。実数型の変数を階級わけして factor をつくったり、日付・時刻から factor をつくったりする方法の説明がある。

第6章の題目は「添え字」(subscript)となっている。ベクトル、行列(matrix)、リスト、データフレームなどの要素や部分をどのような形で指定できるかだ。

第7章は文字列の操作。基本的な操作のほか、「正規表現」(regular expression)のつかいかたがある。

第8章はデータの「集約」。一連のデータのうちで、ある条件にあてはまるものの個数をかぞえたり、集計したり、中央値そのほかの統計量を計算したりする操作だ。

第9章はデータの変形。列名をつけかえる、変数を二値化する、表の縦横を入れかえる、などの操作。複数のデータフレームを結合する操作のノウハウは、わたしにとって(一連のデータを複数回にわけてダウンロードしてきたり、複数回のシミュレーションの結果を比較したくなったりするので)すぐ役にたちそうだ。

折りかえしのあとに 日本語版のくわしい目次をつける。章のレベルで、英語版の表題もつけておく。
Continue reading

Norman Matloff (2011 / 木下 哲也 訳 2012) アート・オブ R プログラミング

  • Norman Matloff, 2011: The Art of R Programming: A Tour of Statistical Software Design. San Francisco: No Starch Press.
  • Norman Matloff [ノーマン・マトロフ] 著, 大橋 真也 監訳, 木下 哲也 訳, 2012: アート・オブ R プログラミング。オライリー・ジャパン, 367 pp. ISBN 978-4-87311-579-5. 出版社のこの本のページhttps://www.oreilly.co.jp/books/9784873115795/

英語原書は2011年、日本語版は2012年に出た本だが、わたしは2019年11月に買い、2020年12月になって目をとおした。『R クックブック[読書メモ]と、日本語版の出版社も同じで装丁もだいたい同じ(絵はちがうが)で、買ったときには気づかなかったが監訳者・訳者も同じだ。別々の本屋で見つけたので、持ち帰ってならべてみるまで、同じ本を二重に買っていないか心配だった。

日本語版題名が、英語をそのまま かたかな にして、冠詞を省略したものだ。ちかごろ映画などでよく見られる形だが、わたしには気もちよくない。日本語会話中でも英語題名がとびかっているばあいにはそれが適切なこともあるが、本書はそれほど有名でもないと思う。わたしならば「Rプログラム技法」としたいところだ。ただしこれは「プログラムする」という日本語の動詞が生きていることを前提とした表現だ。

著者はアメリカの大学教授で、まず数学をまなんで統計学の教授になり、コンピュータサイエンス学科にうつって、(本書の表現ではないが) データサイエンスのための技術をおしえている。

本書は、プログラミング言語としてのRについての、わりあい体系的にかかれた教科書だ。統計学にはふみこまない。後半は、Rで複雑な計算を効率よくおこなうための技法をあつかっている。

日本語版出版社のこの本のページに目次があるので、目次の書きぬきはしないことにする。

「はじめに」で、R は、オブジェクト指向プログラミングも関数型プログラミングもできる言語だということがのべられている。

第1章は、Rへの導入だが、すでに何かプログラム言語を知っていて、付録Aの単純な記述にもとづいてRをインストールできる読者が、短時間でRの特徴をつかむことを想定して書かれていると思う。

第2章から第6章では、R のもつデータ構造をそれぞれとりあげて、その操作を説明する。第2章でベクトル(vector)、第3章で行列(matrix)および多次元の配列(array; 行列は2次元の配列だ)、第4章でリスト(list)、第5章でデータフレーム(data frame)、第6章でファクタ(factor)と表(table)をあつかう。

第7章が、プログラム言語としての R の特徴をのべたところだ。第7章では、まず基本的制御構造 (順次処理、ループ、条件別処理)と演算子の説明がある。それから、関数について、引数、戻り値、関数はオブジェクトでもあること、変数のスコープ、再帰などの説明がある。

ひとつ重要なこととして、R にはポインタがない。Cなどとちがって、関数から複数の要素を返すのはむずかしい。グローバル変数をつかうことには弊害もあるけれども、R ではそれが実用的に適切なこともある。

第8章は数学演算。最大・最小値、微積分、整列(sorting)、線形代数演算、集合演算、乱数など。

第9章はオブジェクト指向プログラミングで、「S3クラス」と「S4クラス」について (わたしはまだ理解していない)。

第10章は入出力。キーボードと画面へのアクセス、インターネットへのアクセスの話題もあるが、おもにファイルの読み書きについて。第11章は文字列操作。

第12章はグラフィックス。plot 関数をはじめとする、R の base にふくまれる graphics の機能でできること。

第13章からがプログラミング専門家むきの技法といえるだろう。(R 初級者であるわたしにとって、この部分はむずかしい。しかし、初級者にしては大量のデータをあつかうことになりそうなので、第14章の知識は必要になるかもしれない。) 第13章はデバッグ。まずデバッグの一般論がでてくるが、Rのデバッグ機能のつかいかたがおもだ。第14章は高速化やメモリ節約の方法。第15章は他の言語とのくみあわせ。RからCやC++を呼び出す方法、PythonからRを呼び出す方法。第16章は並列処理。「snow」パッケージの利用、OpenMPの利用など。

なお、例題の題材としておもしろかったものとしては、中国語の学習支援のための、漢字の広東音と北京音(「普通話」という表現にもふれたうえで「マンダリン」と呼んでいる)を相互参照するデータ処理があった。

Paul Teetor (2011 / 木下 哲也 訳 2011) R クックブック (初版の読書メモ)

  • Paul Teetor, 2011: R Cookbook: Proven recipes for data analysis, statistics, and graphics. Sebastopol CA USA: O’Reilly. xviii+413 pp. ISBN 978-0-596-80915-7.
  • Paul Teetor [ポール・ティーター] 著、大橋 真也 監訳、木下 哲也 訳, 2011: R クックブック。オライリー・ジャパン, 352 pp. ISBN 978-4-87311-533-7. [わたしはこの版を読んだ。]
  • J. D. Long and Paul Teetor, 2019: R Cookbook: Proven recipes for data analysis, statistics, and graphics. 2nd ed. O’Reilly, xvii+579 pp. ISBN 978-1-492-04068-2.
  • J. D. Long & Paul Teetor 著, 大橋 真也 監訳、木下 哲也 訳, 2020: Rクックブック 第2版。オライリー・ジャパン, 584 pp. ISBN 978-4-87311-885-7.

わたしはデータ解析を、1980年代以来、おもにFortranでプログラムを組んでやってきた。1980年代にBell研究所で開発された「S」をつかいたいと思ったが、有料ソフトウェアだったのでなかなか手がでなかった。Sの互換からはじまったフリーソフトウェアである「R」に期待した。ちかごろは、教材も、研究用のデータ処理も、なるべく R でやろうと思っている。しかし、いまだに熟練していない。

2019年11月、Rによる実習の教材をつくっていて、参考書がほしくなり、数冊買ったうちに本書(初版の日本語版、2019年3月の7刷)がふくまれていた。しかし、そのときわたしは入門書で手いっぱいで、本書は「つんどく」になっていた。

2020年12月にまた実習の教材をつくっていて、本書を思い出した。2020年1月に出た第2版の日本語版を店頭で見ていたので、それを買うかどうかまよったが、基本はかわっていないはずだから、手もちの初版を読むことにした。やろうとしていたことがわりあい短いプログラムでできることがわかって助かったことがいくつもあった。

出版社の本書のページ http://www.oreilly.co.jp/books/9784873115337/がある。そこに目次があるので、目次の書きぬきは途中でやめた。

本書は「どういうことがやりたいならば、R のどの機能をどのように使ったらよいか」という態度で書かれた本だ。1990年代ごろの日本でよくつかわれた表現によれば「逆引きマニュアル」といえる。この表現は、ソフトウェアの公式マニュアルが、機能の名まえから作業内容のほうにむかうもので、作業内容から機能を見つけにくいものになりがちなことを反映している。その後、利用者のたちばにたつマニュアルもふえてきた (したがって「逆引き」のような表現が不適切になった) と思う。しかし、とくに多数の人がボランティアでかかわるオープンソースソフトウェアのばあいは、公式マニュアルのほかに、本書のようなものが必要だ。

本書初版の日本語版について、出版社は思いきったことをした。原書の全14章のうち第1-3章を印刷するのをやめ、「付録」として出版社の本書のページにPDFファイルをおくだけにしたのだ。その部分の内容はすでに R の入門書で読んでいる人が多いだろうという判断らしい。日本語版の1-11章は、原書4-14章の訳である。日本語版の章の題名を列挙しておく。

  1. 入力と出力
  2. データ構造
  3. データ変換
  4. 文字列と日付
  5. 確率
  6. 一般統計学
  7. グラフィックス
  8. 線形回帰とANOVA
  9. 便利なテクニック
  10. 高度な数値計算と統計
  11. 時系列分析

おもに統計学的データ解析の方法をあつかう章もある。5章は理論的に知られた確率分布にかかわる計算など、6章は基本統計量の計算や検定など、8章は線形回帰など、10章は主成分分析や因子分析など、11章は時系列の自己相関やARIMAモデルのあてはめなどの話題がある。10章には関数の最大・最小をもとめることや行列の固有値・固有ベクトルなど、統計学にかぎらずつかう数値計算の話題もある。

わたしの観点で重要なのはむしろそれ以外の「統計学以前」のことがらだ。

1章ではデータの読み書きをあつかう。たとえば、データをCSVファイルから読んだり、CSVファイルに書き出したりするにはどうするか。ふつうに実行すると画面に表示される文字列をファイルにしまうにはどうするか。

2章では、Rがもっているデータ形式の説明と、その形式のデータをつくるにはどうするか、他の形式とのあいだの変換はどうするかの説明がある。「ベクトル」「リスト」「データフレーム」「行列」「ファクタ」などがでてくる。ベクトルとリストはどちらもデータ列ではあるが、ベクトルは同質なものの列、リストは異質でありうるものの列だ、という説明が重要だと思う。Rでは「行列」(matrix)はベクトルの一種で2次元の配置をもつものだ。同様に3次元以上の配置を持つ配列もありうる。「ファクタ」(factor)は(本書の表現ではなくわたしの理解だが)定性的あるいは離散的な値をもつデータの列だ。

3章では、ベクトルやリストの要素にいっせいに関数を適用するにはどうするか、ベクトルを(ファクタによって)グループにわけるにはどうするか、などの話題がある。

4章では、まず、文字列の処理のしかたが説明されている。これはプログラム言語ごとにちがうので R ではこうだという知識がまとめられているのがありがたい。(Awkになじんでいるとそれと同じですむことが多いのだが、length が文字数でないことなどは注意が必要だ。)
それから日付のあつかいの話題になる。R では、日付をあつかう Date と、日時をあつかう POSIXct、POSIXlt の「クラス」がある。POSIXctは1970年1月1日からの秒数で、POSIXltはそれを変換して「年、月、日、時、分、秒」などにわけたものだ。なお、「ユリウス日」(Julian day)は R では1970年1月1日を0としたとおしの日付を意味するそうだ。天文学のユリウス日と原点がちがう。これはほんとうだろうか、本書の著者のかんちがいだろうか?

7章では、グラフィックス機能が、Rの base にふくまれている graphics パッケージでできる範囲で、説明されている。散布図、棒グラフ、箱ひげ図、ヒストグラムなどだ。回帰直線やそのほかの直線をくわえる方法、1ページに複数の図を配置する方法の説明もある。

おもにここまでの章について見たところ、「レシピ」の項目のうち半分ぐらいは、その役わりをする関数名をしめすことがおもな内容で、あとは関数名からひくマニュアルがあればつかえそうだ。「レシピ」の項目と関数名のリストをつくってしまえば、本書のそういう部分の本文はもう読まないかもしれない。しかし、のこりの半分くらいは、ほかの機能ももつ関数の特殊なつかいかただったり、コンマや角かっこなどの記号を注意深くつかいわける必要のあるものだったりする。そういうものの需要が生じたときには本書の「レシピ」の本文を読みかえすことになるだろう。