2014年11月14日金曜日

Python(x,y)をインストールしたのだが…

統計教育に使う基本ツールは、ずっと昔はFORTRAN(というより付属する数値計算サブルーチン集)だった。学生時代に導入セミナーを聴いてみたが、1から100までの合計(=5050)を計算して印刷するのに、なぜこんなに面倒な段階を経るのか、さっぱり理解できなかった。紙で筆算した方がずっと速いのだね。ま、1から100万までの合計計算なら「電算機」とFORTRANがいかに強力であるかを思い知ったと思うが−いやいや、等差級数の公式を使えば、これだって30秒もかからぬ−そもそも昔の大型電子計算機のメモリーなど何メガという容量でしかなかった。計算速度も遅かったので、多数桁の合計を指示すればCPU使用料がバカにならない額になり、他の利用者にも迷惑だ。で、「まずは1から100までを合計してみましょう」という実習をしたのだと、今になってみれば思う……いや、ホントに意味なかったねえ。

その後にSPSS時代がやってきた。いまでもあるが、FORTRANで300行ほども書くところを、SPSSでは10行くらいになるだろうか。素晴らしい時代がやってきたものだと感じた。ただ、自分でカネを払う学生時代は、そうそう電算機でデータ解析をするなど、贅沢の極みだったのだな。なので、小生の最初の商売道具はポストSPSSの一番手"SAS"である。関西方面の某大学に出向扱いで籍を置いてからも、ずっとSASを使い続けたが、その頃は大学の統計教育は何を使っていたのだろう。SASというデータ解析システムは、結構、高額のレンタル料を毎年払わなければならず、卒業してからもずっと使い続けられるようなツールではない。便利だからといってSASで統計教育をするなど学生個々人にとっては不親切の極みであったろう。

小生が大学という場で統計教育を担当するようになってからは、SPSSやSASよりはずっと安価なエクセルの分析ツールを使ってきた。このエクセルのアドインソフトは統計専門家には悪評サクサクなのだが、エクセルなら卒業後も使う人が多いし、分析ツールは必ずついてきていた。日常的にやる分析手法くらいなら検定から回帰分析まではいっているから、大体は「分析ツール」で済む。この辺の事情はアメリカでも同じだったと見えて、初級者向けの統計学テキストでもエクセルの分析ツールが道具として使われていた。

その「分析ツール」もマック版オフィスには搭載されなくなり、めっきりとユーザー数も減ったとみえる。この2、3年で大学の統計教育ツールはフリーのRに全て置き換わってきた。そのようにもう断言してもいいのではないか。日本でこうなのだから、アメリカ、欧州など海外ではもっと先を行っているだろう。最近では寧ろSPSSでもR言語が通るようになってきたが、これも時代の流れだ。学生時代に教わったツールは、卒業後もずっと使えるなら使うものだ。ビジネスの現場で−基幹業務のインフラ構築はともかく−Rが浸透してきているのは、単にそれが流行しているからではない。Rに慣れた人が量産されつつあるからだ。こうなるともう時代は後戻りできない。統計ツールはRで決まりである。

とはいうものの、というか、にも拘らず、小生、科学計算分野であまりに評価の高い点を無視しがたく、ついにというかやっと"Python(x,y)"をインストールしてしまった。で、使い始めたところなのだが、『こんな冗長で長ったらしいコマンドを入力させるソフトがなんで流行るのか?』と。ズバリ、そんな感想である。データ解析に至っては、すべてRでできる。それも短い入力で簡潔にできる。逆にRでできるデータ解析でPython(その内のNumPy、SciPy、MatPlotLibという方が正しいが)にできないこと(≒したくないほど面倒臭いという意味)は無数にある。それでもPythonの利用者急増ぶりは目立つという。これって新し物好きのミーハーということなんだろうか?何らかの実質的理由があるということなのだろうか?

一つ言えることは、Pythonは開発言語であって統計ソフトではないということだ。科学計算は何も統計計算だけではない。方程式の求解や最適化、数式処理も科学計算である。なのでPythonには、RだけではなくMaximaの機能も含まれている。テキスト処理もできるし、データベース制御、ネットワーク制御やWEBアプリ開発もPythonでできる。要するに、これだけ知っていればやりたいことは全部できる。こんな機能はRは持ち合わせていない — 「ない」と断言してはいけないかも。「弱い」というべきかも。

統計分析が必要になったので、Rを勉強するのは確かに厄介だと思う。他の役にはあまり立たないからだ。日常的に使っている開発言語にライブラリーがあれば、それを使って済ませるのが道理だ。と、このように書けば、確かにRはいまビッグデータ七つ道具の一つだが、Rをも包括する形でPythonがビッグデータ時代を支える言語基盤になる。これはありうる。

ま、そうなったらそうなったで、小生はどうでもいいのだが、その場合はR言語を理解するPython Shellを是非作ってほしいものである。やっぱりNumPyの配列と添字は奇異に感じるのだね。データの7個目(添字6)から13個目(添字12)までを切り出すとき、X[6:13]とは普通書きませんて…。それから、ちょっと乱数を生成して、ヒストグラムを描くときのあの回りくどい記述は…。大学の統計教育でPython+NumPy+SciPyが主流になることは、まず絶対にありえないと小生はみる。が、ビッグデータ時代の分析ツールはひょっとするとPythonに全面的に置き換わるのだろうし、だとすれば今後、Pythonサイドでは既に精度が検証済みのRのパッケージがどんどん移植されていくのだろうと予想している。それはC言語がシステム開発の万能兵器になってからFORTRANライブラリーがC言語に移植されていったのと同じ道である。

★ ★ ★

Pythonのことはもういい。

TVの報道ステーションでは、海上自衛隊が参加しているペルシャ湾の機雷掃海をとりあげている。米(英?)海軍の艦長にインタビューして、敵から攻撃を受ける可能性があるかと質問したところ、それはあるという回答だった。ま、当たり前であるな。撒かれた機雷を除去すれば、それは撒いた方からみれば敵対行為である。

しかしだなあ、攻撃を受けるとして、それは「戦争」ということになるのか?確かに日本は戦争を放棄しているが、武力は持っている。あらゆる状況において武器の使用を禁じるなら、警察官は武器を所持してはいけないし、かつてあった「あさま山荘事件」などはあってはならない「銃撃戦」であったわけである。しかし、誰もテロ行為や反国家的暴力事件に対して武器を使用することに反対はしない。もっと言うと、あさま山荘事件が「内戦」であったとはいわない。言わないが、国権の発動たる「戦争」を国家に禁じるなら、「内戦」に応ずることも禁止されるのがロジックではないか。外国への武力行使は憲法上ダメだが、日本人には場合によって可、という論理はおかしい。いつか想定外の状況になり、憲法上の論理なき無制御状態に陥る。こんな心配も(僅かだろうが)あるのではないか。ま、この辺は法律専門家のほうが詳しいだろう。長くなったので、また改めて。

0 件のコメント: