スキップしてメイン コンテンツに移動

投稿

6月, 2018の投稿を表示しています

地元コミュニティーのために、ちょっとだけできることを

今晩和。 先日のことですが、ひさしぶりに Code for Japan がらみの地元会合に参加してきました。 参加者のみなさんと雑談しながら手を動かしてました。特にリーダーとの会話はいろいろと感じさせるものが強く、参考になります。 いま流行りの RPA などについても裏事情を教えてもらいました。 成る程、日本らしい、というかなんというか……困っちゃいますねえ。 ERP ブームのときも一緒なんですよ。日本では、現場の現状にあわせて IT ツールをカスタマイズすることを望みますが、バックオフィス系業務はむしろ ERP システムとか国際標準のツールにあわせるかたちで変革しないと、業務標準化にともなう効率化メリットの多大なる恩恵に浴すことができない。 わたしが関わっている某組織の内情も悲惨なものです。いちおう、上層部には具申したりはしていますが、動きが遅くて年単位の delay がかかってます。 変わるべきは組織のほうなのに。 今般の日本では『初等教育からプログラミングを』なんて逆行するような政策が俎上に載っていますが、あれ、どうなんでしょうね? Scratch とかでパズルを組むようなクセを付けたところで、そのパズルがどんな意味を持っているか、あるいは、どんな目的をクリアーするために存在するか、どんな問題を解決しうるか、そういった基本的思考能力をどうやって育成できるというのでしょう? やっぱり読み書きそろばんからしっかりとやる、というのが基本では。 ビル・ゲイツのような IT 長者たちの子弟も、ちいさい頃は電子端末に触れないようにされているそうではないですか。そりゃそうですよ。 クリエイティヴィティーというものはオリジンに宿るのです。 まあ、そんな雑談をしつつ、積み残しになっていた『公共アプリ』に着手することを決めました。とはいってもローカリゼーションだけで済むかも知れません。 地元コミュニティーのために、ちょっとだけできることを。 それだけの話です。 補足: いわゆる『プログラミング教育』は他の科目、たとえば算数や音楽の授業内容と、アルゴリズム的な手続き思考を組み合わせる、ということだと指摘を受けました。成る程、それならそれでまだマシです。 ただ、現場の先生たちがいちばんついていけないのではないでしょうか?

Xcode で C++ の単体テスト環境がほしい

今日和。 梅雨ですね。 自分は、昔気質なのでどうしても C++ が重宝してしまいます。 ですから Xcode でも C++ の単体テスト環境がほしいのです。 そこでまた Google Test を導入しました。 ところが、これから紹介するページに従って環境を構築しようとしても、あちこちで失敗してしまいました。でも、それなりのテストはできるところまで持ち込んだので、備忘録を残しておきます。 【My Enigma】ロボティクスのためのGoogle TestによるC++コードユニットテスト 先ず、私のマシンでは Homebrew を使ってはいますが、いろいろと必要なものがインストールできていませんでした。 $ brew install shtool m4 cmake libtool そのうえで以下のコマンドを実行しました。 $ cmake -G Xcode . $ autoconf $ ./configure $ make さらに上掲 HP の作者が公開してくれている Python スクリプト “GoogleTestDiscover” も若干手直ししました。生成されるコンパイル・コマンドが  -lgtest_main d -lgtest d になるように書き換えます。Path もちゃんとライブラリがある場所を指すようにしてやってください。こちらでは Debug 環境でしかビルドできなかったので。 $ g++ test.cpp -I./gtest/googletest/include -L./gtest/googlemock/gtest -lpthrea d -lgtest_main d -lgtestd && ./a.out これで、Google Test に同梱されている sample?_UnitTest.cc 群が、かなりテストできるようになりました。それでも sample5.cc はリンカがシンボルを解決できなくて失敗します。 とりあえず、メモでした。 今後、改善があれば書き直します。

複数の時系列データの因果関係が分かる(?)

今日和。 さて、独学ブログとして本来の路線へ。 本日は、 沖本 竜義 著『経済・ファイナンスデータの計量時系列分析 』から。 何故ならば、個人的に「時系列データ」の分析に多くの興味を持っているからです。 そこで本業が手薄な期間をつかって勉強しています。 その最中で、おもしろいモデル化手法を知りました。 “VAR モデル” のことです。 この界隈では有名な TJO 氏が解説しているので、その投稿記事へのリンクを貼ります。 本投稿は、多くを以下の 2 リンクを中心とした TJO 氏記事に参考にしてます。 https://tjo.hatenablog.com/entry/2013/07/25/194546  https://tjo.hatenablog.com/entry/2013/07/30/191853 沖本本、第 4 章冒頭から多少強調のために改変しつつ引用します。 “ベクトル自己回帰(VAR)モデル は、 自己回帰モデルを多変量に拡張したもの である。VAR モデルを用いる目的は主に 2 つで 1 つは 複数の変数を用いて予測精度の向上を図る ことであり、 もう 1 つは 変数間の動学的関係の分析を行う ことである。 特に、変数間の動学的関係の分析に関して、VAR モデルは グレンジャー因果性   インパルス応答関数 分散分解 という強力なツールを提供でき、推定も容易であるので、80 年代以降、マクロ経済学やファイナンスの分野で頻繁に利用されるようになった。本章では、 多変量のデータの動学的関係を分析する上で非常に重要なモデル である VAR モデルについて述べる。 ” このなかで、わたしが注目したのは 『インパルス応答関数』 です。 https://ja.wikipedia.org/wiki/インパルス応答 “インパルス応答(英語: impulse response)とは、インパルスと呼ばれる非常に短い信号を入力したときのシステムの出力である。インパルス反応とも。インパルスとは、時間的幅が無限小で高さが無限大のパルスである。実際のシステムではこのような信号は生成できないが、理想化としては有益な概念である。” 何故、これが有益かというと、以下の具体例から御理解いただけるかと。  

労働生産性と生産年齢人口の関係について「別の見方」を取り入れる

今日和。 自宅で Jupyter Notebook (Python + R + Julia) + SQLite の環境を整えました。 そこで、前回の分析をさらに簡便に、全体から要素を選んで実施できるようにしました。実際には R で自己/相互相関関数に掛けてみましたが、どうにも分かりにくいのです。個人的に理由は判然としています。『時間発展(dynamics)』の概念がないからです。 そこで馬鈴薯先生のお手伝いでつくった自家製ツールと連携させてみました。 時間発展をともなう『相関解析システム』です。 グラデーションしているグラフが上段中から右方向へと順番に並んでいます(Figure 6. ⇒ 1.)。 これらが、労働生産性(SP.POP.1564.TO.ZS)と生産年齢人口(NY.GDP.PCAP.CD)の、時間発展をともなう相互相関関数による解析です。ただし、ズレ時間 tau(解析に使う周期の範囲)が「1 年、5 年、10 年、15 年、20 年、25 年」と左上から右下へと変化しています(赤丸参照)。 この『相関解析システム』はそもそも音(e.g. 音楽や音響)を分析するために開発された『音の顕微鏡』なのですが、ふたつの異なる動的な信号列のあいだで自己もしくは相互相関関数がどのように推移しているか、について定量的に解析することができます。 どうも、この、ズレ時間の増加に従って変化するグラフの形状から察するに、やはり後半(1990 年頃)から、両者の相関度合いが顕著になっているように見えます。中央の尾根の色が深紅の高さ(相関値 ≒ 1.0)にまで達しているからです。此処から、わたしは労働生産性と生産年齢人口は 1990 年頃から強く相関している、と推測しています。 今回の試行錯誤で、全体の処理(必要な要素をピック・アップしての組合せ総当たり戦)のバッチ・スクリプト化の目途が立ちました。他の手法でもなにができそうなのかを含めて、さらに試行錯誤を深めていきます。