正規分布と障害


あ、あ、あ。
文を読むということはとてもむつかしい。下手に漢字をひらいても読みにくいし、修飾子と非修飾語を離したり、句点を、こんなふうに、やられるのは、とても、よみにくい。難解な漢字もなく、たとえ音読をできたとしても、そこに何が書かれているかの文意をくみ取ることは、目が滑るばかりで、なにより、よほどむつかしい。3割の日本人は日本語が読めないなどとひとはいふが、読みにくく書かれたものはことさらにむつかしい。

3割と書いたが、そもそも割り算はむつかしいものだ。分数でふるい落とされる小3を9歳の壁といったりするそうだが、割り算の概念は足し算や引き算、掛け算と脳の使う場所が違うのだとかなんだとか。老人ホームなんかでも割り算が先にだめになるなんてのをどっかで読んだような聞いたような。ケーキを等分できない人たちがいるそうだけど、むべかるかな。割り算に必要な抽象化ができないと、計算はできるが割り算がわからない。割り算がわからないと並び替えができない。並び替えができなければ優先順位付けやリソースの分配はできない。

さて、さて。
ちゅう事で、掲題からもわかるとおり、ちょいと障害がらみのセンシティブなところに踏み込んだ内容になりそうだったので、無駄なまくら文章を書いてみた。4行以上の文は基本読まれないし、グラフや幾何的な情報から情報を浚うことはむつかしいので多分大丈夫。

そんなわけで、正規分布のお話し。

これは平成31年の小学校6年生男子の身長の分布図。
こういう真ん中にもっとも厚みがくる分布は正規分布、ベル型(ベル曲線)と言われたりするもっとも典型的な分布だ。いろんなものを、適当な評価軸と粒度で分解して並べて積んでいくと、正規分布的な図形になることが多い。
体重だったり、足の速さのような身体能力だったり、テストの点数など。
だけども「ものさし」、分解や粒度を間違えると正規分布と呼ぶにはいびつな分布になることがある。

これは平成31年の高校3年生の身長の分布図。
中央のもりあがりの部分が2つにわかれているように見えるのは、なんのことはない、これが男女をわけていない身長の分布だからだ。

これを男女別々に分布を取ればきれいな正規分布の曲線が2つとれる。お山が2つあるので二項分布と呼ばれたりする。身長は年齢や性別と相関があるので、これを無視して結果を混在させると、要素によってお山が割れたりする。逆に多項分布になったときは、その要因を見極めて分解してやれれば、正規分布を得ることができたりするものだ。(ここでは説明はしないけど算術平均、最頻値、中央値ぐらいは知っておくと、幸せになれるとおもうので、もし知らなければ統計本の一冊でいいから読んで損はない。)(男子の「169じゃない170だ!」というのが統計からも見えて涙ぐましい。)

だが、世の中そんなにすべてが綺麗に正規分布をとるわけではない。
先の男女ごちゃまぜにした身長の分布のように、要素の分解を間違えると、比較が意味のないデータ群になったりすることもある。赤ん坊や寝たきりの老人まで混ぜた50m走の結果には、計測不能データが多く混じることだろう。50m泳法バタフライなんかになれば、さらに計測不能だらけだ。

フルイにかけて粒を同じようなもので並べて、測る、計る、量る。
はかった結果、比較可能な数字にするのは割り算だ。粒度の設定が必要になる。
身長ならセンチというものさしをつかっての割り算で、人間の体重ならキログラムというスケールを用いる。だが金魚の体重ならグラムで、クジラの体重はトンで比較せねばなるまい。コホート、ものさしが一緒だから並べることに意味がでてくるし、並び替えたり、その分布をみて比較、並び替えができる。

分布が集計により統計的にわかっているから、例えば身長ひとつとっても、異常値や外れ値がわかるのであり、それを判断材料として、なにかしらの対応が必要なものを判別することができるわけだ。逆に統計がみえないと、個別のエピソードで悲劇を語ったり、自身が体感した観測範囲でしかものを言えなくなる。リスクとベネフィットの比較はできず、ワクチン反対運動とかコロナなんてただの風邪とかエビデンスなにそれになる。

オリンピックのような競技大会は、大会に参加するのに参加標準記録のようなフィルターを設けたり、格闘技であれば、体重階級別に分けたり、風速などを揃えたりすることで、結果の分布が正規分布に近づくルール設定がなされる。昨今はLGBTQがらみで元男性アスリートが女子大会に出て記録上位を攫って物議を醸したりしていたが、女子の大会結果だけが多項分布になるようなことが続くのであれば競技としては別のルールが制定されるだろう。結果の点数分布が正規分布とは程遠い形になるになるような競技やテストには、環境や作題に問題がある場合がある。


標準正規分布がもつ確率密度関数のグラフ

±2σ 以下だと 95.45%がその中におさまり、±3σでは99.73%はその範囲に収まる。
±3σに収まらないのは稀な存在ではあるが、例えばそれが学校の成績のようなものであれば、主席とビリッけつのようなもので、ありはするものだ。

はて、さて、この±3σにも収まらない例外を人間社会はどう扱うのだろうか。
特に日本は標準を尊ぶので、上にも下にも外れるとなかなか厳しい社会ではある。
能力、年収、容姿。上に抜けても下に抜けてもずいぶんと大変そうだ。
政治信条(政治的スペクトル)が右左3σから外れるような主張はもはや見なかったことにされるだろう。
逆にyoutubeやInstagramなんかのSNSは、±3σからはみ出る極端さがないと、注目を集めない。

運動能力や知的指数であればどうか。±3σから外れれば身体障害者や知的障害者として99%の人たちから保護される対象になるかもしれない。逆に、±2σに収まる95%の人がそうであるようなものを病気として、社会全体が支える社会保障対象にするのは成立しないだろう。(なので、身長無視して腹囲85cm以上は一律メタボとか言うのやめよー?)

知能指数も正規分布に近い曲線を描くことになるが、知的障害の場合、知能指数は50~69程度が軽度知的障害者となり障害者となるが、知能指数は70~85程度はボーダー(境界域)は障害者ではないとなる。能力は平滑線をとるが、社会的支援は階級的となる。ここには少し悲劇がある。もっと将来はどうだろうか。経済的に付加価値を生み出せる産業が高度な知的産業ばかりになり、そのボーダーがやがて100まで引き上げられたら?120、140・・・と。

加齢により運動機能は低下する。ある程度までいくと介護が必要になる。若者が減り、より老老介護に頼らざるをえない状況になったら?

99%の人が1%の人を支える、95%の人が4.5%の人々を扶養する、68%の人が32%の人々をフォローする。それとも、0.5%の人が99.5%の人をひさぐ職をつくることができるのか。はてさて。障害という粒も、やがては、有効数字の彼方に消えゆくものなのかもしれない。

・・・が、過渡期は地獄よな。

参考

学校保健統計調査 / 令和元年度 全国表
www.e-stat.go.jp/stat-search/files?page=1&query=%E8%BA%AB%E9%95%B7%20%E5%88%86%E5%B8%83&layout=dataset&stat_infid=000031925051&metadata=1&data=1

日本人の3分の1は日本語が読めない!?
business.nikkei.com/atcl/NBD/19/special/00261/

正規分布
ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E5%88%86%E5%B8%83

知的障害
ja.wikipedia.org/wiki/%E7%9F%A5%E7%9A%84%E9%9A%9C%E5%AE%B3


webUSBやwebSerialの苦労話


半年ほど前、アンドロイドタブレット専用のポケットCO2センサーの開発機に触れる機会があり使ってみたのだけど、パソコンにでもぶっさせて使えたらいいのになーと思っていた。そんなある日、100円ショップでUSB-typeA to Micro-Bの変換ケーブルを売っているのを見かけて、「あ、接続できるならできるんじゃね」と思ったのが艱難辛苦の始まりだった。

結論から書くと、Google ChromeブラウザのwebSerial APIを使うことで、パソコンなどに接続したUSB機器の読み書きが行えるようになる。USBメモリであったり、USBで接続しているキーボードやマウスであったりするのだが、それがブラウザ、つまりJavascriptでのちょっとした実装だけでブラウザにデータ取得できるしそのままデータをサーバー側で集計することもできのである。

いまのところ、うちのお店でも取り扱っている二酸化炭素センサーにおまけとしてURLを案内している。用途が用途だし、ボランティアで気まぐれに実装したものなので、うち以外から買ってもらった人も使ってもらってもかまわないので、ご自由につかってくださいって開発元(?の大学のセンセイ)にお渡ししたので、もしかしたらそのうち公式でも使えるようになるかもしれない。

二酸化炭素センサーはどうせならうちが扱っているやつをご購入いただけると、センサー精度的にもデータ・ストレージ拡張性とかもあるのでおすすめ。というかおすすめだから紅茶屋がわざわざ扱っているんだけど。

二酸化炭素ポケットCO2センサー Lite

item.rakuten.co.jp/hagurachaya/co2lite-627/

store.shopping.yahoo.co.jp/hagurachaya2/co2lite-627.html

USBがブラウザから操作できるというのは、組織のシステム管理者からすると悪夢のような話しではあるが、セキュリティと利便性はバーターであると考えると、その応用性の高さについては、技術者なら一考するべきなのではないかとおもう。Androidやraspberry pi、micro:bitのようなもの、はたまた今回のようなチップを積んだ二酸化炭素センサー、IOTをブラウザからあれこれ操作できるのは純粋にいろいろ便利。

webUSBを初めて知ったのはHTML5が勧告されたころであったろうか。とんでもない仕様が出てきたなとおもったが使う機会も予定もなかったためスルーしていた。

ミュージックハッカソンなるものがお気に入りで年1ぐらい参加していたのだが、3年めぐらいのときだろうか、あるときウェブミュージックハッカソンなるものに参加した。たしか会場は六本木のGoogleさんだったとおもう。4~5年ぐらい前だろうか?その時の即席チームで作ったのは、webカメラで捉えた映像からステップ・シーケンサー的にタイルを読み取ってMIDI楽器から音を鳴らそうというものだった。

WEBカメラから取得した動画をキャプチャして色調で階調化しモザイクタイル化し、それを音階と音調にするところまでは自分が担当して作ったのだけど、音をどうやってならすん?ってなったときに、チームメンバーがMIDI楽器をつなげて制御してくれるのを作ってくれた。そのとき使われた技術がweb USBの兄弟、web MIDIなるもので、そんな変態的なAPIがあるんかいな!?と顎が抜けたのを覚えている。USBでつないだローカルのMIDI楽器をブラウザ経由で操作できるのだ・・・。実際それで音がなったのでびっくりしたもんだ。
ミュージックハッカソンではヤマハのネットデュエットみたいなセッションをするためにどんだけ通信ディレイをなくせるかみたいなところに注力されがちだったけど、webRTCとかでブラウザ間通信で付属の楽器まで遠隔で操作できたら確かにそんな未来もあるかもしれない。って、まだそんな未来は来てないけどな。

まあ、そんなこんなで、webUSBの存在は知っていたので、データ取れたらラッキー程度の心持ちで、ケーブルを買って夜な夜な取り組みだしたわけである。

web USB
wicg.github.io/webusb/

で、あれこれ試したのだが、マウスやキーボードはwebUSBの環境をつくってやればコネクトできたのだが肝心の二酸化炭素センサーが見えない。

Micro-B to Type-Aのケーブルでパソコンと繋げても、ディバイスマネージャーからもなぜか接続が確認できない。ガジェット側のLEDランプはついているので接続はできているはずなのにと苦悶した。

Windows側、Microsoftの公式アドオンアプリに「usbview.exe」なるものがあると知り、いれてみる。みれない。mac air M1はtype-cなので、system_profiler SPUSBDataTypeやらls -l /dev/tty.* やらをやって・・・。あれ、見れる??はて?なんでTYPE-Aだと見れないんだと、ふと、ケーブルが入っていた袋をみる。

なんと、バッテリーデリバリー専用のケーブルでした・・・!!?
世の中こんな恐ろしいものがあるんですね。正直一連のあれで一番苦労したのはこれでした。

今更だけどtype-Aとかtype-b Micro-B、type-Cとかの基礎をお勉強した。

micro-B to Type-Aのケーブルなんて、考えたらモバイルバッテリー用とか他にも何本ももってたのによりにもよって新しく100円ショップで買ってきたケーブルでやり始めたのが大きな不運だった。
だが、これのおかげで完全に意地になった。

web USBでやろうとしたのだけど、windowsの汎用デバイスドライバが先に掴んでしまっていて、ドライバの書き換えなしには難しそうであったのでWeb Serial Apiに切り替えた。そしてWeb Serialの沼に落ちるのである。

Web Serial API
wicg.github.io/serial/

Web SerialはChrome version 80以上しか実装していないうえ、ごくごく最近まで手をいれられ続けているものなので、目下開発中な感じのApiだ。ちょっと検索しただけで死屍累々、スタックオーバーフロー四暗刻(何か技術的検索をしてstackoverflowの質問が検索結果上位4つ以上を埋めること)であった。

まず、つまずくのが

chrome://flags/
#enable-experimental-web-platform-features

とか

chrome://device-log

とか、見たことない画面への遭遇である。いや、まあここらへんはwebUSBでも必要だっけか。

そして、次につまづくのは、公式サンプルコードすら動かないというところだ。
ふふふ。笑える。

何故か?
port.open()のoptionの値が間違っているからだ。
そりゃスタックフロー四暗刻になるわと思いながら、正直、まあ、ここまでやろうと環境をつくれてる人は突破できるであろう程度の壁でしかない。リファレンスを読めばわかるので、もしかしたら、ScriptKiddy封じのためわざとそうしているのかもしれないので、ここでは詳細には触れずにキャメルやないかい!とだけ言っておく。

で、それで動くかっちゅうと、まだ動かんのですよ。
そもそも使えないブラックリストがあるとかってんで確認したりなんだり。まあ自分の場合、javascriptをよくわかっていないので、asyncやらawaitとかここらへんどうすんだべと悩んだり、名前空間つかえるのか!と実装しようとしてconstの名前空間はどうしたらいいんだろうとか、そういういらんことでつまづいたりしりした。vue.jsに手を出そうとしてこれがやりたいわけじゃねぇやとjQueryに戻ってきたりなんだり。

寄り道はしたけど、実際openしてデータストリームを受け取れるようになった後も、一行でほしいデータセットが3回ぐらいにわかれて送られてきたり、数行分おくられてきたりして、行終端がわからなかったりして、これbaudrateか??とか、javascript側からみると終端に\rしかいなくて、なんで???となったり、あれやこれや。

最近だとLite版とPro版でコマンドの実装がちょいと違って、wiresharkのお世話になった。
そう、wireshark、今USBの通信もキャプチャできるようになったんだって。便利だね。

まあ、そんなわけで、できるってわかればあっさりできちゃうこともあるよね。

他にも登ろうとした山

Androidの開発環境つくりかけてた

PCで正常系の環境再現したいなと素人ながらに考えて、何故かAndroid studioを入れた。
というのもGooglePlayからアプリを入れられるAndroid筐体で自由になるものが手元になく、仮想環境でつくろうと浅はかな知恵をしぼったのだ。だが、これもAMD系のCPUだと仮想環境が動かんのでなにやらBIOSから触らなきゃいけない嫌な感じであった。

そして、これがすこしできるようになってきたところで、登ろうとしている山の高さに気が付き、あれ、おれなにやってるんだろうと、くじける。

Android OTG デバイス給電

ひとにあったりするごとにAndroidの実機を借りて動かしてみたのだけど、最近のスマフォはUSB type-cになっていて、OTGの仕様が機種多様に山程あることにすこし躓いた。・・・これ普通のひと切り替えられないんじゃ説。

USB シリアル接続

触らさせてもらっていた実証実験用の実験機はUSBシリアルで設定をせねばならず、windowsやmacから行う必要があるものだった。まあ、黒い画面をひらいてシリアル通信ができるひとならできるだろうけど、ふつうの人には難しいとおもう。正直、商店街のおじさん達には無理なので自分で協力店を探して設定してまわったのだが、これがwindows exeになったからといって、キャリブレーションとかの意味をサポートなしでわかるひとどれくらいいるんだろうかと不安になったりしている。

流通している二酸化炭素センサー

なんかコロナ禍前は二酸化炭素がらみのセンサーを探すのに苦労してたのに、この数ヶ月で意味のわからん商品だらけになってて怖いです。

スタイリッシュなのが売れ行き好調なようです。まあモニタついていて安いしね。うちのは検索にひっかかりもしません。

とある製品を購入しました。人間の吐き出す吐息は2~3万ppmあるわけです。息を吹きかけても値がほとんど動かんので、ろうそくが消えるまで密閉空間にぶっこんでみたんですよ・・・。他のセンサーが2万とかを刻んでるところ、こわい結果になったのもあったりしました。おっかないですね。
国産って書かれてるのもあるけど、なんか、一年前はシンガポールから送られてきてたやつやないかい?というような気がしてるのもあったりします・・・、まあ、いろいろもやもや。おっかないですね。

他、webSerialの迷えるこひつじのためのURL

github.com/google/web-serial-polyfill/blob/master/demo.html
glitch.com/edit/#!/remix/web-serial-codelab-start


二酸化炭素センサーとコロナと農業


二酸化炭素センサーを仕入れて取り扱うことにした。商売としては、紅茶屋がそれを扱ったところであまり売れる気はしていないのだけど、商店街に導入したりして実証実験なんかしたりしてたので応援的な意味合いがつよい。つおぃ。

恒常的に対策が必要になり続けるであろうコロナウイルス対策として、換気は重要な対策になる。はず。密な空間では二酸化炭素濃度があがる。二酸化炭素濃度が高い空間は脳みそが働かなくなったりするので、二酸化炭素濃度に注目があつまればいいなと思ってる。

comment

世間では4000~8000円ぐらいでモニター付きも売っている二酸化炭素センサー。アンドロイドに繋いで使うセンサーガジェットで13、270円は、結構お高い部類。・・・。・・・大丈夫だろうか。ロットの関係で50台も仕入れちゃったので頑張らないとね。お願いします買ってください。あ、でも、もう少ししたら、液晶wifiつきの3万ぐらいのPro版も出ます。あ、でもLiteも買ってほしくて、あわわわ。

ちゃんとしたセンサーを積んでデータ・エクスポートできるやつは10万以上コースなので、それからみればだいぶ安いはず。(感覚がだいぶ麻痺してる)

コロナ前、スマートアグリ界隈でオランダ農業の現状をレポートしてもらって、あちらの農家は二酸化炭素を火力発電所とかから買い取ってるとか聞いた。日本のハウス農家さんも二酸化炭素濃度が高いと収量目に見えて違うので周りの農家にも勧めてるんだけど、みんな聞いてくれないんだみたいなぐちを聞いた。そんなわけで、スマートアグリ界隈のIOTまじで楽しそうと、少し踏み出したわけさ。市販の二酸化炭素センサーをあれこれ買ったり、ハードを作ってもらったり。

Arduino型試作機1号

このCO2センサは2波長(測定用、リファレンス用)なのでセンサー部分だけで結構お高い。SDカードにデータを吐き出すタイプ。三鷹ハードウエアカフェの代表の方に作っていただいた。まずはデータの観測をして意味のありそうな、データを集める用。

密閉空間にぶっこんで野菜の発芽量とか水耕栽培とかいろいろ試したのだけど、収穫量うんぬんの前に衣装ケースぐらいの装置で光量も一定じゃないからそもそも意味ありげなデータが取れなかった。重曹とか使ったりして簡易的な二酸化炭素発生装置をつくったりしたんだけど、考えたら二酸化炭素って水にも溶けるのよね。まあ、いろんな植物育てたりして試行錯誤。

それと平行して、水耕栽培とか農業IOTとかの既刊本を買ったりして勉強してたら、先行している団体がRaspberry Piを使ったオープンフレームワークとかオープンソフトウエアとかを公開されている結構しっかりした先行取り組みがあって、敵わないなというか、そのレベルにまでキャッチアップするのにすら何年もかかりそうだなと思ったりなんだり。

そうこうしているうちにコロナ騒動が始まってしまった。
クラスター感染が話題になったので、そんなの二酸化炭素でトレースできんじゃんと、ちょっと視線を変えて、町中の商店や塾、飲食店、クリーニング屋など、あちこちにも置かせてもらいあちこち測った。昨年の1月頃、うち本業(?)は紅茶の茶葉屋さんだし、商店街の役員もやってたりするので困ってる飲食店とかから相談が。

結構、二酸化炭素濃度が高いところもあれば、薪ストーブみたいなおしゃれなものを使っているのに全然高くないところとか様々だってのがわかった。ちなみに我が家のキッチンは酷くてガスコンロは使うわ、ガスストーブは使うわでそりゃ食後眠くなるわな濃度だった。

市販でやすそうな二酸化炭素センサーもちょい買ったりもした。
8000円の時計付きのPM2.5を測れる二酸化炭素も図れる時計みたいな某装置をアマゾンでぽちったらシンガポールから発送されてきた。メーカ名がそもそも謎で(同じ外観なのに違うメーカ名で複数登録されてたりする)製造元も謎。発送元の住所からたどったり。ちょっとあれこれ辿ったら、中国の深センに製造元っぽいところをみつけた。仕入れられないかなって思って、慣れない中国語でコンタクトとってみたんだけどコンタクトに失敗。

まあ、それも結果よかったかな?
1年ぐらいでモニターが薄くなるし、時計も日本だと怒られそうな精度だし、計測しているのも二酸化炭素なのか正直わからない。20,000ppmぐらいはあるはずの呼気を吹きかけても2ppm/秒づつ謎にカウントアップしていくなぞ仕組み。ループで実測値と比較して++かーーしているのかな。なんとなく500ppmとかなんとなく1500ppmとかぐらいはなんとなく環境値でなんとなく何故か揃ってる気もする。なんとなく換気をするとなんとなく下がるし。なんかすごい。換気の目安を図る程度なら実用には足ると思う。

換気程度に毎秒のppmをリニアに観測できるほどピーキーなセンサーである必要はないような気もするし、センサーだけで万円する赤外線吸収式も結露や湿度で値がとれなかったり、なんか変な値を拾っちゃうこともあるので液晶ついて一万円以下だったらお値段相応だとおもう。

日本でこれらを開発したり販売しようとすると、製造者責任法とか計量法とかPSE(電気用品安全法)とかいろいろある。もし中華バッテリーが原因で火災とかになったら販売店も偉いこっちゃになる。うちは仕入れて売っただけなんでとかはなかなか言えない。なのでそれら管理団体に相談したりして二の足三の足ふみふみしてしまった。ただのうちみたいなお店がハード販売にちょっとでも手をだすのはとてもリスキーなことだ。やるとしてもキットで売って組み立ては本人がとか、あれこれ思索したりもした。

そうこうしているうちにコロナ第二波、第三波で実務もてんやわんや。
そして年末コロナ緊急事態宣言。
仲間の飲食店もばたばた閉店し、休業し、そして近隣の飲食店でもコロナの人が出たりして保健所指導で二週間強制休業イベントなど多発。リアルに新型コロナの足音がするようになる。

そんな中、アンテナを貼ってたら電気通信大学の先生が二酸化炭素センサーを開発したとの報道があり。ちょっと近所で馴染みのある大学だったので、さっそくお問い合わせ。先生がうちのご近所にお住まいだったので、お話しがすすみ、試作機をうちの近所のお店に導入したりして、現在に至る。

わたしが使っているのはiPhoneなので、アンドロイドでガジェット接続とかしたことがなく、OTG接続で躓いたりして、これは・・・難しいぞとか思ったり。試作機は試作機でキャリブレーションとかにSerial通信とかが必要で、素人には無理だなと。俺がリアルに行けるお店とかでしかおけないなとか思ってたのだけど、100円ショップでUSB micro-B to type-Aのコネクターが売っているのを見つけて、「・・・あれ、アンドロイドじゃなくてwebUSBとか使えばパソコンにぶっ刺してうごかせんじゃね?」と試行錯誤してみたら、結果、PCでもデータが取れるようになりましたとさ。導入の敷居が下がりそうなのでいっちょ仕入れて売ったろうに至ったわけです。どうも世界でも、まだあんまやってるひとがいないwebUSBやwebSerialの技術的なお話しはまた今度。

ご購入の際には、楽天かヤフーかアマゾンのはぐら茶屋ショップからお願いします。
item.rakuten.co.jp/hagurachaya/co2lite-627/
だいじなことなので2回め!!