すっさんぽ

初めてのクリスマス

娘が生まれて初めてのクリスマス。去年は、結婚して初めて夫婦で過ごすクリスマスでしたが、今年は娘も入れて3人のクリスマス。 今年はプレゼントは妻とお互いにプレゼントし合うことにしました。去年は引っ越しとかもあったのでプレゼントはなしにして、2年ぶりのプレゼント交換。 僕からは、毎朝寒い部屋でお弁当を作ってくれているので、あったかい半纏(はんてん)を。妻からは、新しいお弁当箱とお箸、寝室で使う加湿キットをプレゼントしてもらいました。お互い、朝昼晩に活躍するものがプレゼントになりました。 クリスマスパーティーは昨年に引き続きローストビーフを作ってくれました。時間もない中アップルパイ(リンゴはワイン煮)も作ってくれて、とても賑やかなクリスマスになりました。 最近は娘も泣き方を覚えてきたようで(というよりは僕が泣き方がわかるようになってきて)、お腹が空いているときの泣き方、かまってほしいときの泣き方がなんとなくわかってくるようになりました。...

平均にひと手間加えて統計的に分析する方法

統計的推計を業務内で何度か試す機会があったのですが、ある程度知見も溜まってきたので、共有しておきたいと思います。(以前読んだ本のまとめとして……) 平均だけで良いのか 「最強の学問は統計学である」(西内啓)の書籍の中では、「平均」は19世紀の統計学者がやる集計だと言っていました(たしか)。ちょっとひと手間加えるだけで、統計的な推計ができるようになるので、データへの信頼度?安心度?を高めることができます。 (当然ながら、単なる数字の上の話なので、実際にはどうなのかは、やってみなければわからない) 平均以外のアプローチ 平均以外にも、Excelやスプレッドシートでできるアプローチがいくつもあります。ここではざっくり、4つ挙げておきます。 中央値、最頻値 分散、標準偏差 中央値、最頻値(MEDIAN、MODE) 外れ値があって平均を大きく上げ下げするようなデータがあるときは、中央値や最頻値を出しておくと、データの傾向をつかみやすくなります。中央値は、ソート済みの全データを2分した場所の値。最頻値は、読んで字のごとく、最も多く出現する値のこと。 下の画像は、とあるバッチの実行時間の平均、分散、標準偏差、中央値、最頻値を求めたものです。時間を扱うときは、単位を秒に変換すると便利ですが、変換しなくても計算はできます。 秒に変換してから計算するとやりやすい ↑7回目と8回目のデータが、平均(AVERAGE)に大きく影響しています。一方で、中央値(MEDIAN)は全体の傾向をうまく表せています。ばらつきの大きいデータのため、分散(VAR.P)、標準偏差(STDEV.P)が大きな値になりました。 ※ 全体のデータから最大値・最小値を取り除いたデータで分析にかけることもあるようです(データのばらつきを抑えることができる) 分散、標準偏差(VAR、STDEV) これらの数字は見てもピンとこないし、普段は使いません。もっとも、これらの値の使いみちは、「あるデータは、全体の中でどれくらいの位置にいるのか(いわゆる偏差値)」を知るときに使うわけですがここでは扱いません。 ※得られた数字がよく出てくる数字なのか、はたまためったに出現しなさそうな値なのかを調べるときに使えます。 推計 データは取ったし、平均も出たけど、いまいち心もとないときには、区間推定が役に立ちます。これさえ覚えておけば、だいぶ統計っぽくなります。 95%の信頼区間で推計します。この95%というのは統計では「ほとんど確実にそうなりそうといえる」という意味になるそうです。 母平均が95%の確率で取りうる範囲の推計 何回か試行をやってみた結果から、さらにデータが増えていったときの平均(母平均)の範囲を推計することができるそうです。「平均値はこの範囲に収まるっぽい」と言えるみたいです。 わかりにくいですが、[データ範囲]のところだけ書き換えればOK。 (上限) =AVERAGE([データ範囲]) + TINV(0.05, COUNTA([データ範囲])-1) * SQRT(VAR([データ範囲]) / COUNTA([データ範囲])) (下限) =AVERAGE([データ範囲]) - TINV(0.05, COUNTA([データ範囲])-1) * SQRT(VAR([データ範囲]) / COUNTA([データ範囲])) 面倒なことは考えず、平均とTINV(0.05, COUNTA([データ範囲])-1) * SQRT(VAR([データ範囲]) / COUNTA([データ範囲]))だけ計算しておきます。あとはこの2つを ± で繋いであげればOK。 スクショをサンプルとして載せておきますが、下のような結果が出てきます。(上で挙げたデータ例とは異なります) バッチの実行時間や、データサイズの傾向を示すことができるようになります。 データの95%が取りうる範囲の推計 とりあえずデータをとって、95%のデータがこの範囲に収まる、というのを計算したい場合は以下の式が使えます。[データ範囲]のところだけExcelやスプレッドシートで置き換えればOK。(データを母集団としたときの場合) ※ 以下の式が合っているのかは、ちょっと不安がある。本には書いてあったけど。 (上限) =AVERAGE([データ範囲]) + 1.96 * STDEVP([データ範囲]) (下限)...

洗濯マークアプリ1.1.0の開発中

洗濯マークアプリのダウンロード数が500を超えたので、新規バージョンを実装しようと思います。次は、旧洗濯マークの対応をしてみます。今回は、その一部を紹介。 アプリの中で表示している洗濯マークは、全て自分で清書(= トレース)しています。端末の解像度に適した画像を表示することで、洗濯マークをきれいに、ギザギザが目立たないように表示するためです。バージョン1.0.0を実装したときはまだ、Adobe Creative Cloudのサブスクリプションを払っていたので、あらゆるマークをIllustratorでトレースしました。しかしながら、現在はサブスクリプションを解約し、Adobeのツールは使えなくなったので、今回はInkscapeを使ってトレースします。 すべてトレースします。Webサイトで見た画像をそのまま使うとジャギーが目立つため。 AndoridではSVGの表示にも対応しているので、Inkscapeで作ったファイルをSVGで保存したら、それをそのままアセットとして使えます。しかし、SVGの表示に対応しているのは、Lolipop(5系)以上のOS。このアプリは、古い端末を使い続けている主婦でも使えるようにと、ICS(4系)から対応しているためSVGは使えません。表示用ライブラリを入れれば良さそうですが、やってません。そのため、各解像度用の画像を出力して、アプリに組み込んでいます。 今日は以上。年内にはアップデートを公開できますように。...

Vue.js続き、SVG

朝勉強したこと Vue.jsのチュートリアル(はじめに)のページの続き(とりあえず終わり、夜か明日の朝からはReactやる) HTMLのインラインSVG触った ...

Vue.jsを触る。

Vue.jsやっている。家で勉強中。 はじめにのセクションにならって、ひとまず触ってみている。 まだ途中なので、今夜、娘が落ち着いていたら、一通りのチュートリアルをやってみる。 それを会社の同僚に話したところ、React勉強したほうがよいとのことだったので、明日の朝からはReactを勉強することにした。...

matplotlib メモ

python使っているので、pythonのライブラリの使い方も勉強せねば。 ビジュアルでわかったほうが、やる気も出やすいので、matplotlibを学ぶ。 とりあえず下のQiitaに従って使ってみた。意外とかんたんだった。 【Python入門】ライブラリmatplotlibの基本的な使い方 ベクトルはnumpyに任せるとすごい楽なのね。 ファイルに出力は、saveメソッドの中で拡張子を指定する。(emf, eps, jpeg, jpg, pdf, png, ps, raw, rgba, svg, svgz, tif, tiff) matplotlib入門 ↑showを読んだあとだと、出力したファイルに何も表示されなくて最初困った。...

フィットネスクラブに(また)通い始めた

会社の健保から「このままだと生活習慣病になりますよ、運動しませんか」と封書が届き、無料でフィットネスクラブ通わせてくれる企画のお知らせが来たので、参加することにした。(フィットネスクラブに通うのは1年前ぶり) 3ヶ月で体重を5%落とすという目標が決められているが、企画の大きな目標は、参加者が自分の健康のこと(食事・運動)を意識できるようにすることにあるっぽい。 企画の趣旨説明会や、フィットネスクラブでマンツーマントレーニングをこれまで2回受けて、その中で言われたことをいくつかメモしておく。 脂肪1kg落とすのに、7,000kcal必要 お腹周りの内臓は骨で守られていないため、腹筋が弱くなると内臓が下がってお腹が出てきやすくなるらしい 1週間で21回、食事をしている 多く食べたなと思ったら、運動したら良い 筋トレの効果は、伸ばした状態と縮めた状態の差が大きいほど効く 筋肉が震え始めたら効いてきている証拠 長い目で見て少しずつ、運動強度を上げていく 頑張らずに減量させる=食事と運動を意識する習慣を作る 食事と運動(インプットとアウトプット)を自分でコントロールできるようになる 1回目のフィットネスクラブでは筋トレ中に貧血になった(数ヶ月前には市民プールで貧血になったこともあった)。トレーニング中は、意識して呼吸すること、水を飲むこと。...

Electronで遊ぶ

クロスプラットフォームのデスクトップアプリケーションを作ることのできる Electron で遊んでいる。ひとまず、環境構築まで。 Nodeをインストール 先日Nodeを学んだついでに、nodeをインストール。今回はbrewで入れた。 brew install node Electronをインストール ひとまず、Installationのページを参考に、Electronをインストール npm install electron --save-dev --save-exact 何でもないディレクトリで実行したせいで、package.jsonやら色んな情報がないぞと言われた。 (追記) 何でもないディレクトリでやったせいで、node_modulesのディレクトリが無駄に追加されてしまった。-gのオプションでグローバルにインストールするのでない限りは、プロジェクトのディレクトリで実行する必要がある。(つまり、--save-devのオプションは、いわゆる composer require-dev hogehogeと同じことなのかな) QuickStartのリポジトリをクローン ひとまず遊ぶために、QuickStartのリポジトリをローカルに落としてきた。 今日はそこまで。...

予防接種1回目を受けた

受けたと言うけれど、行ってきたのは妻と娘。私は仕事。 今回受けた予防接種は以下の通り。 ヒブ(Hib、ヘモフィルス・インフルエンザ菌b型感染症) B型肝炎 小児用肺炎球菌 いずれも、注射だったようで、過去最高の泣きっぷりだったとのこと。...

Node.jsがやっとわかった……

最初はSPA的なものを作りたいと思ったんだった。そこから、Firebase使えばAPIとか作らなくて良さそうと思って、じゃあFirebaseの勉強を本格的にやろうと思った所、Node.jsについて知る必要があって、Web上のいろんなリソースを漁ることになった(ガイドに「Node.jsのアプリが必要」って書いてあったから)。いろいろ漁った結果、そもそもFirebaseをWebアプリに組み込んで使いたいと思っていたので、結局のところ、Node.jsについて詳しく知る必要はなかった。 でもいろいろ調べたので、わかったことをメモしておく。 ...