趣味の統計

心理統計のはなし(偏差への偏愛ともいう)。Web上に散らばっている「アンケート」へのつっこみ。その他。

テキストエディタ話のつづき

テキストエディタを探している話を書いた。現状、使っているのは、前回も紹介した CotEtidot である。いろいろ足りないと思う点はあるものの、まあ、いきなり Pages で書くのもなあ、とも思っているので、それなりに重宝している。

で、 CotEditor についての続きの話なんだが。プログラミング用のエディターとして使うには少々使いにくいことが判明した。

私はおもに、 Javascript + p5.js という言語で、統計学のための学習教材を、完全に趣味で作っている。したがって、使用する言語は HTML、CSSJavascript の3つである。それはどうでもいいのだが、こうしたコードを書くときにどうしても使えて欲しいのが、タイピングの補完機能である。

補完機能ってなあに、ということをそれなりに書いておくと、たとえば Javascript から HTML 上のボタンの動作を設定するときに、こんな長いコマンドを書くことがある。

document.querySelector('#IDNAME').addEventListener('click', ()=>{ ... })

とか。(たぶんあっていると思うんだが...)
どうして今、「たぶんあっていると...」不安になっているかというと、全部自分でタイプしているから。コードを書くときには、自分で全部タイプなんかしない。どうしてかというと、「doc」までタイプすると、「doc」ではじまるキーワードを候補として並べてくれるから、そこから選べばいい。次に、「.que」までタイプすると、「que」ではじまるキーワードをやっぱり候補として出してくれるので、そこから選べばいい。楽ちん。というか、長いキーワードを打ち間違える心配がなくて超便利。

この補完機能が、CotEditor では不十分なんだな。いや、使えないことはない。Option + ESC だったかな、そんな感じのキー操作で補完してくれることはくれる。

しかーし。Option + ESC って、めちゃ押しにくい。いままで使っていたエディタなら、TABキー一発で候補が出たのに、指2本使って操作するのめんどい。あと、関数名をアウトラインに出してくれるのはありがたいんだが、上に書いたような「document.」からはじまる「関数っぽい」ものは出してくれないし、何より、ブロックごとにたためる機能がない。これは痛い。

というわけで、コード書きに使うのは VS Code に変更。仮想Windows環境まで作って Notepad++ を使う気には慣れないので、当面これを使います。もっといいのが見つからないかなあ、とは思うのですが。

テキストエディタを探して

いいテキストエディタmacOSで動作する)はないだろうか。

Windowsを使っていたときには、テキストエディタを2種類+1種類使っていた。
ちょっと紹介してみよう。

(1) Notepad++

notepad-plus-plus.org

このエディタは、主に、自分が管理しているWebサイトのHTMLファイル、そこで動作させるJavascriptファイル、CSSファイル、Rのスクリプトなどを編集するのに使っていた。当然だが、それぞれの言語に合わせてキーワードなどを色分けしてくれるし、中かっこで囲まれた部分({ ... }みたいな)を折りたたむこともできた。

だから、Javascriptファイルを書いていて、もう編集しなくて良い関数を、関数名だけ見えるようにして折りたたんだり、折りたたんだ拍子に意図しない範囲までたたまれてしまって、そのことがきっかけでカッコが対応していないことに気づいたり、まあいろいろと助かった。

残念ながらアウトラインの編集はできなかったが、折りたたみの機能がよくできていたので困らなかった。何より動作が軽いのがよかった。しかし、最大の問題点は、対応OSがWindowsであることだ。macOSで使えない。残念だ。

(2) 秀丸エディタ

hide.maruo.co.jp

このエディタは、MS-DOS時代からずっと開発が続けられていて、相当長いこと使っておられるユーザもいらっしゃるはず。私はWindows10になってから導入し、あれこれ記事を読んだすえに、マークダウンっぽい動作をさせることができ、数年間愛用してきた。

自分であれこれ設定しないといけないところは、なんというか、玄人好みの感じがするのだが、わたしは、行頭文字でレベル1〜3の見出しを設定すると、その行に背景色がつくように設定し、アウトラインも一段下がるように設定して使っていた。卒業論文の下書きもこのエディタで書いたので、そういう意味でも思い出深い。

そして優れているのは、ブロックごとに(つまり、特定の見出し3とその下の本文、というブロック)、本文を折りたたむこともできるし、アウトライン部分から、ブロックごと別の場所に移動することもできる。要するに、アウトラインエディタとしても使えるのだ。これはすごい。

この機能のおかげで、最初のKindle本の原稿を、ブログの記事を元に書いたが、登校日で検索して見出し文字を設定するとか(これでアウトラインに記事見出しが並ぶ)、不要な記事をまとめて削除するとか(アウトラインの見出しを選択して削除すればかんたん)、記事の順番を入れ替えて(アウトラインをドラッグするとこれもかんたん)、内容ごとに大きなまとまりをつくるとか(レベルを1つ挙げて見出しを挿入すれば良い)、まあ捗った。

もちろん、文章を書き直す作業がそのあと数ヶ月続いたのだが、この編集機能の力強さがなければ、全体を見通して書き直す作業に行き着く前に、力尽きていたかもしれない。ありがたい。

しかあーーし。このソフトも基本的にはWindows対応である。macOSのなかにWindows環境を作ると動作するなどと書かれているが、いやあ、それはやらないかなあ。なんとなく。

(3) VS Code

おなじみのアレである。ダウンロードサイトのリンク必要?

これはいまでも使っている。というか、Notepad++が使えないことと、GitやGithubと連携する必要があることから、VS Codeを使っている。なんてったって、Gitのコマンドを打たなくたって(git cloneは打つんだけど)、addしてcommitしてpushするまでこれだけでできるんだから、楽なことこのうえない。ブロックごとにたためるし、アウトラインは使えないっぽいけど、細かいこと気にしないなら優秀だし。

といっても、macOS対応の、アウトラインをぐりぐり触れるエディタはないのかあ〜〜!
絶賛募集中です。

(4) CorEditor

というわけで、現在はCotEditorというのを使ってます。この先ずっと使うかどうかはわからないけれど、拡張子が.txtのままでも、マークダウンファイルだよ、と指定すると、アウトラインを描いてくれる。でも、ドラッグしてもアウトラインが動かないのが残念。

あと、日本語入力周りは、Windowsふうのキー操作に設定して使っているけど、標準機能以外に、使いやすいのがあるのかなあ、と思案中。Googleのがいいらしいという噂をきいたけど。まだ思案中です。

というわけで、macOSでうごく、CotEditorよりも私好みの(ここが一番ハードル高いかも)エディタはありませんか?

Rosettaって何者?

本当にどうでもいいことから書き始めるのだけど、前回の記事の最後に、MBAはMacBookAirのことですよ〜と冗談混じりに書いた。このはてなブログは、書き終わった記事の一部の語に自動的にリンクが貼られる仕様になっていて、MBAにも下線が引かれていた。クリックしてみると、こんなことが書いてある。

そうそう、経営学修士。これが書きたかった。ところで2行目に書いてあることは何なのでしょう。私のように「MBAはMacBookAirのことですよ〜」とか言っている人がそれなりにいるということなのかなあ。それはそれで面白いのだが、「賢い相手ほど通じないので〜」以下、余計なお世話でもある。はい、閑話休題

R Studioをインストールしたときに、何やらメッセージが出て、それは要するに「Rosetta」をインストールしないとちゃんと動かないよ、という意味らしかった。その時に検索したページでは、Rosettaのインストールが必要なアプリは、起動した時にダイアログが出るから、クリックすればOKだよ!とか書いてあるのだが、R Studioはそういうのは出ない。で、無視してやるとちゃんとR Studioとして動く。なんなん、これ? というモヤモヤ感を残したまま、その日は終わったのでした。

で、次の日です。Gitをインストールしました。インストールはちゃんと終わったはずなのに、ターミナルから「git」と打ち込んでも動かない。メッセージは(ああ、こういう時のためにちゃんとメッセージをスクショするなりして残しておくのだった!!!)、何かよくわからないが、「CPUのタイプが違うんですけど〜」みたいな感じだった。もちろん英語なんだけど。

で、前日と同じようなページを検索して、ターミナルからコマンドを打ち込んで「Rosetta」をインストールしようとするのだけど、なぜかうまくいかない。いらいら。

ところが、落ち着いてよく見直してみると、ターミナルが示しているメッセージは、「インストールしていいなら、Aをタイプしてリターンキーを押せ」であることに気づいた。私はこのメッセージの(もちろん英語なんだが)「Aをタイプして」の部分を完全に読み飛ばしていたのだった。ありゃりゃ。

はい、「A」をタイプします。リターンキーを押します。あらら。本当だ、ちゃんとインストールが完了したというメッセージに変わった。「git --version」を打ってみる。動いた!

という、まあ、初心者みたいなドジなことをしていたのでありました。さっき、この記事を書くために検索し直したら、こんなページが見つかった。

www.eng-blog.com

これみると、Rosettaがちゃんとインストールされているかどうかを調べる方法も書かれているので、やってみた。戻り値は1でした。ふう。

というわけで、のろのろとではありますが、だんだん使い慣れてきている。あ、そういえばこの記事は初めてMBA(注:経営学修士ではない!)で書いた。書いているうちに感じたのだが、カーソルの動き方が遅い。日本語入力は便利なのか不便なのかよくわからん。あとから調整してみることにしよう。

新しい我が家の仲間MBAについて

我が家においでになったMacBookAir。

いちおう書いておくと、2024年モデルである。わたしのPCの使い方を知っているなら、ほぼ100%の確率で「オーバースペックww」と書かれるところだろうが、なに、気にすることはない。あと5年もすれば、「え? まだM3なん? 古っ!」となるに決まっている。


本体はあとからにして、これがすべての付属品類。充電用のタップとコードが必須なのはいいのだが、このコードの質感がとてもよい。いわゆる、プラスチック的な手触り感ではなく、布地的な手触り感がある。細かいことだが、おお!と思う。
あと、どうでもいいことだが、附属しているアップルのシール(?)は何に使っているのだろう? 鞄とかにはるのか? こういうところは解せぬ。


そして本体である。この写真を見て、wwwwと思うのが実は正しいのだろう。リンゴマークは、画面を開けた時に自分の正面に座っている人にアピールするためにあるのであって(本当かどうかしらないが)、自分が見るためにあるのではない(たぶん)。今使っているPanaのPCだって、画面を閉じるとPanasonicは逆立ちして見えている。正面に座ってしまった人に向けて、「オレ、Mac使ってるんだぜ」と見せびらかすためには(別に見せびらかさなくてもよいが)、正しくはこの向きでマシンに向き合うべきである。

そうすると、めでたく画面を開くことができる。
じゃーん!
例の音がする。でも、基本、黙っててほしいので、後から設定することにしよう。

で、WiFiがつながるようにすると、さっそくアップデートがかかる。しばらく待つと、もういちど言語の設定からはじまって、Touch IDの設定をし、クロームをダウンロードして以前から使っているIDでログインすると、もういつものページが開ける。うん、便利になったものだ。
IDとパスワードさえ入力できれば、マシンが変わってもいつものページが見られる。GoogleAppleのIDは大事にしよう。
あと、Windowsから必要なファイルを移動させて、必要なアプリケーションを入れて、徐々に操作に慣れていきたいと思うのです。

と、いうことは、PanaのPCからブログを書くのもこれで最後かもしれない。ま、読んでいるほうはどっちで書いているかわからないだろうから、どうでもいいのだけどね。

参考までに書いておくと、MBAとは、MacBookAirのことである。似たような略語があったと思うので、勘違いされそうなので。念のため。

Macbook Air を買ったのだ

数日前から、いま使っているWindowsマシンの調子が悪かった。

具体的には、WiFiが勝手に切れたりつながったりする。スリープ状態から復帰すると「機内モードON」になっていて、なんで勝手にWiFiを切るんだよ~といいつつスイッチを(物理的なスイッチを)入れ直す。すると、WiFiがつながる。

というような状態を何日か繰り返した後で、もっと激しく不調になりだした。

どういう感じかというと、PCを使っていると(当然WiFiをつなげているのだが)、とつぜん「機内モードON」になり、このやろう、と思っていると、数秒後に「機内モードOFF」になってつながる。なんだこのやろう!と思っていると、「機内モードON」「機内モードOFF」を数秒おきに繰り返す。さすがに腹が立つ。

で、そういう状況が続く日もあれば、わりと安定してつながっている日もある。横で使っているiPadも、同じWiFiを使っているが、こんなふうに頻繁に切れたりつながったりはしないので、要するにPCのアンテナのほうが問題なのだろうな、と理解した数日後、ぱったりとつながらなくなった。

というわけで、今はLANケーブルでルーターとつないでいるという状態。

なんでだよお、と思って振り返ってみると、どうやらPCに食べ物の汁が飛んだことは今までにも何回かあったので、それが筐体の隙間から内部に侵入して、、、、というようなことを考えた。真相はわからないが、とりあえずWiFiアンテナは死んでいる。それだけは確かである。

アンテナが死んで何が困るかというと、まず小さな困りごとは、LANケーブルをつないでないとネットが使えないことだ。ケーブルがつながっていることを忘れてPCを動かし、その拍子にコーヒーをこぼし、、、、という悲劇はごめんである。地味に気を遣う。

もっと大きな困りごとは、Bluetoothまで使えないことである。このPCでzoomにつなげるときは、Bluetooth接続でネックスピーカーを使ってきた。当然だが使えない。こっちもケーブルで、というわけにはいかないので、もう、どうしようもない。

というわけで、先日から興味津々だったMacbook Airに乗り換えることにした。

何年使ったのだろう、このPC。放送大学で卒業研究やっていた頃には使っていたので、そろそろ8年はたっている感じがする。よく頑張ってくれたね。放送大学の論文は2つともこれで書いた。集めた論文PDFはみんなローカルディスクにはいっている。そろそろ捨ててもいいか。読みたくなったらほとんどのものはネットから入手できるし、読みたくなるかどうかは完全に謎だし。

というわけで、ほぼ完全にWindowsから撤退します。もうしばらく、データの整理とかで使うけどね。
65歳からのMacbook 生活を、つづっていこうと思っております。

あ、そういえば、マックブックというのは、「Macbook」?それとも「MacBook」?あるいは「macbook」?どれが正式な表記なのかなあ。アマゾンの購入履歴から確認したら「MacBook」らしい。

ぷるぷる君は何処にいるのか

確率変数は何処にいるのか

確率変数のキャラクターとして、ぷるぷる君をつくり、彼らの生態を「ぷるぷる君の日常」として書き始めたのですが、2章と、3章の途中まで来て、ちょっと行き詰っています。というより、この調子で正規分布カイ二乗分布を書く気になっていません。

いったい、彼らの「生態」的なことを、かなりマンガチックに描写するのか、あるいは、Rをつかって、けっこう真面目にシミュレーションをするのか、数式をどれくらい出していくのか、について、何も統一感がない。

で、試しに正規分布ぷるぷる君の章を、彼ら(ぷるぷる君)にインタビューしてみる、という意匠で書き始めてみたが、これはこれで面白いものの、これだけで押していくにはつらい。インタビューしてみました、という挿話(コラム、あるいはコント的なエピソード)があるのは面白いかもしれない。

そこで思いついたのが、「ぷるぷる君は何処にいるのか」というアイデア

インタビュアー:ぷるぷる君は、ふだん、どこにいらっしゃるのですか?

さて、何と答えましょうか。

ぷるぷる君は私たちである?

とりあえずの回答として、ぷるぷる君は私たちである、というのがあります。私たちは、別に、常に調査や実験の対象になっているわけではありませんが、尋ねられれば、そして、それに応答する気があれば、データを提供する主体になり得ます。「今の幸福度は?」「一日にどれくらい運動する?」「朝ごはんは食べた?」「家族は何人?」「睡眠は十分とれた感じがする?」などなど。心理学なのか基本的生活習慣チェックなのか微妙な質問ばかりですが、こういうデータを(その気になれば)提供することができる。

幸福度は、質問のしかたにもよるけど、まあ順序尺度か間隔尺度の変数でしょう。運動時間は連続変数にするか順序尺度にするか難しい。朝ごはんは、たぶん名義尺度ですね。という具合。

たとえば「今朝、朝ごはんを食べたか」に対して「はい/いいえ」で答えるとすると、これはベルヌーイ分布の確率変数の実現値を求めていることになります。私たちの答えは、(どっちでもない、みたいな答えをしたくなる人もいるだろうが、話を単純にするために、はい/いいえで答えてもらうことにして)、「はい=1」か「いいえ=0」のいずれかになります。

ちっともぷるぷるしない感じがしますが、朝ご飯をいつも必ず食べる人は、p=0.99 くらいのぷるぷる君で、決まっていない人は、たとえば p=0.42 くらいのぷるぷる君が、「今朝、朝ごはんを食べたか」と問われた瞬間に表れます。これが、「ぷるぷる君は私たち」としたときのイメージ。うーん。なんか違う気もするけど。

ぷるぷる君は無作為抽出者である?

無作為抽出者って、妙な言葉を作ってしまいましたが、要するに、母集団(われわれ)から、「誰に聞いてみようかなあ~、かみさまのゆーとおり!」みたいにして、きわめて適当にぴっぴっと選ぶ。そして、回答を得る。そうすると、「今朝朝ごはんを食べた」割合は、母集団全体では確定しているはずなので、その比率(恰好をつけてπとしよう)をパラメータにもつぷるぷる君が、「誰にしよっかなあ~」とやっている感じになります。

比率πは、確定していますから、そこから無作為に選ばれた標本(選ばれたわたしたち)の回答を集計した時、比率πのベルヌーイ分布に近づくと思われます。nが大きければかなり近く、そうでないときはそれなりに。

ぷるぷる君は母集団である?

ぷるぷる君は、要するに母集団であるという見方もできます。もちろん、ぷるぷるーるが「ベルヌーイ分布」なのか「正規分布」なのかは、質問によって変わるのかもしれません。「はい/いいえ」で回答を求めた瞬間に、「ベルヌーイ分布」が採用される。で、nを指定すると、ぷるぷる君から、n個の実現値が返ってくる。

ぷるぷる君が「誰にしようかな~」とやっている場合と、あまり違いがわからない? いや、違いがある。「誰にしようかなあ~」のぷるぷる君は、標本を選ぶ手がぷるぷるしているだけ、みたいな感じがするけど、母集団ぷるぷる君は、ぷるぷる君自身がぷるぷるしている。(ほんとか?)

わからん。

とはいえ、よくわからん。これが一番正直な書き方だな。

最初、わたしたちの肩に、ぷるぷる君が1人ずつ乗っているイメージを考えた。これはこれで意味がある。私たちは、「朝ごはんを食べたか」を、ある確率で「はい/いいえ」から選んで答えることができる。けど、これだと、ぷるぷる君の確率が一人ひとり異なることになってしまう。だから、このイメージのぷるぷる君は、「個人内変動」を表すには好都合かもしれない。

一方、母集団がぷるぷる君だとすると、パラメータπは母数(母比率)そのものである。パラメータが規定するぷるぷるーるにしたがって、実現値を生成する。でも、わたしたちは母数を知らされないので、生成された実現値から母数を推測している。

ただし、母集団のイメージだけで押していくと、確率変数を足す、ということが説明しにくい。母集団がいくつもあるように勘違いされると困るので。ということは、わたしたちの、ある一面だけが、ぷるぷる君に投影されていて、投影される個体が常に入れ替わっているようなイメージ。母集団のすべてをぷるぷる君は把握していて、そのうちのいくつかを、くるくると投影し続けているのが、「ぷるぷる」という動きになって見えている。ただし、同じ母集団を把握しているぷるぷる君はクローンをいくつも持つことができて、それぞれ「独立に」母集団を投影する。よって、確率偏酢=ぷるぷる君を(たとえば2つ)足す、ということは、彼らがぷるぷると投影している母集団の中の個体情報(質問に対する答え、すなわち実現値の候補となる値)を、いちいち足していること。その「いちいち足された」実現値候補たちは、あたかも、もとの値とは異なる分布=ぷるぷるーるをもっているように見えてしまう。

と、いうことを伝えたいのだが、どうやって書けばよいだろうか。
とりあえずまったく、伝わっている感じがしないし、整理されていないし、そもそも書ききっていない感じがする。

ぷるぷる君の日常 家系図と基本用語

ぷるぷる君一族の家系図

基本用語

ぷるぷる君

確率変数。出身一族や所属組合によって、変身のしかたが違う。
変身のしかたをぷるぷるーるといい、これは出身一族や所属組合に独自のもの。
ぷるぷるーるを細かく規定するパラメータがあり、これも出身によって異なる。

仮の姿

実現値。ぷるぷる君はふだん、ぷるぷるーるに従ってどの値に変身しようかと考え、
つねにぷるぷるしているが、スナップショットを撮ると、仮の姿として数値だけが写る。
真の姿はつねにぷるぷるしていて、これをそのまま撮ることはできない。

変身記録:ぷるぷるリスト

確率分布にしたがう乱数。ぷるぷる君の仮の姿をいくつか集めたもの。
ぷるぷるーるはとても抽象的なので、どんなぷるぷるーるなのかを見る時には、
わりと長い変身記録(10000個分とか)を出してもらう。

出身別ぷるぷる君

ベルヌーイ家

由緒正しいぷるぷる君一家。2値の結果を返す確率変数で、
2値のうちどちらかの値に変身するときの確率をパラメータ(π)としてもつ

二項一族

ベルヌーイ家ぷるぷる君のクローンたちが集まる一族
パラメータが等しいクローンたちが複数集まってグループを構成する
ベルヌーイ家でさずかったパラメータπを第1のパラメータとして、
集まっている人数を第2のパラメータnとしてもつ。
nがある程度大きくなると、ガウス家ぷるぷる君と見間違えることがある。

ガウス家(正規家ともよばれる)

由緒正しいぷるぷる君一家で、実数を返す。
もっとも変身しやすい値のめやすをパラメータμとして、
変身しやすさの幅を決める値をパラメータσとしてもつ。
変身しやすさを表す関数を座標平面上に表すとベルカーブになる。

カイ二乗一族

正規分布の特殊形である標準正規分布を2乗して集めている収集家で、
ガウス家ぷるぷる君の2乗を何人集めたかをパラメータdfとしてもつ。
dfがある程度大きくなると、ガウス家ぷるぷる君と見間違えることがある。

t組合

標準正規分布カイ二乗一族を組み合わせて複合ぷるぷる君をつくる
カイ二乗一族を組み合わせるので、カイ二乗一族のパラメータdfをうけついでいる。
dfが大きくなるとガウス家ぷるぷる君と見た目がそっくりになっていく。
そもそも、ガウス家と似過ぎてないか?どこが違うん?と思われている

F組合

カイ二乗一族を2つ組み合わせて複合ぷるぷる君をつくる
2つのカイ二乗一族それぞれのdfをパラメータとしてもつ

アイテム

合計ガウン

ぷるぷる君を何人かあつめて合計ガウンをかぶせると、
一人ひとりの仮の姿ではなく、それらを合計した姿だけが見えるようになる。
合計ガウンを着せると、ぷるぷる幅が広くなることが知られている。

平均マント

ぷるぷる君を何人か集めて平均マントをかぶせると、
一人ひとりの仮の姿ではなく、それらを平均した姿だけが見えるようになる。
平均マントを着せると、ぷるぷる幅が狭くなることが知られている。