趣味の統計

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

3色のミニトマト

「クレア」という品種?の、3色のミニトマトを買ってきました。

どう見ても、オレンジ色だけが大きいように見えます。重さを測ってみましょう。

tomato_red    <- c(5,6,7,6,7,6,5,5,6,5,6,5,6,6,5)
tomato_yellow <- c(7,6,7,6,6,6,7,5,5)
tomato_orange <- c(10,9,11,8,9,9,10,11)

データフレームにまとめて、箱ひげ図を描きましょう。

tomato <- data.frame(
  weight = c(tomato_red, tomato_yellow, tomato_orange),
  color  = c(rep("R", length(tomato_red)), rep("Y", length(tomato_yellow)), rep("O", length(tomato_orange)))
)
tomato$color <- as.factor(tomato$color)
boxplot(tomato$weight ~ tomato$color)

おお、どう見ても「O」(オレンジ色)だけ重そうです。重さの平均値を調べると、オレンジは 9.625、レッドは 5.733、イエローは 6.111でした。

私が買ってきたパックを、出荷されているすべての同じ3色のトマトからの無作為標本だと仮定すると、母集団においても重さに違いがあるのかを予測できます。

result <- aov(weight ~ color, data=tomato)
summary(result)
TukeyHSD(result)

結果はこうなりました。

> summary(result)
            Df Sum Sq Mean Sq F value   Pr(>F)    
color        2  85.18   42.59    62.7 2.95e-11 ***
Residuals   29  19.70    0.68                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> TukeyHSD(result)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = weight ~ color, data = tomato)

$color
          diff        lwr       upr     p adj
R-O -3.8916667 -4.7827365 -3.000597 0.0000000
Y-O -3.5138889 -4.5028897 -2.524888 0.0000000
Y-R  0.3777778 -0.4803999  1.235955 0.5294898

0.1%水準で有意差ありという結果で、多重比較(Tukey)でも、オレンジだけ有意に重いという結果でした。

html と css 学習の成果なのだ

少し前から、javascript につづいて、 html と css の学習も進めてきた。使ったのはこれ。

www.hanmoto.com

ちなみに javascript も同じ著者のこれ。

www.hanmoto.com

javascript の書き方を検索していたら、「このページレイアウト前にも見たなあ」と思って著者を調べてみたら、「ダブル受賞」というワードに引っかかって読み始めた。podcast もやっている。

さて、学習の成果は、以前からやっている「アニメーションによる統計学習」サイトの再構成で発揮されつつあるのだけど、アニメーションを書き換えたり、全体の構成を考えたりしていて、なかなか進まず。

やっとそれらしいものができてきたので、とりあえず1つだけ公開。ただし、このアドレスは仮のものです。いずれ全体を整理します。

almondfish.starfree.jp

といいながら、ブログに引用されるときの画像とか紹介文とかがちゃんと設定されていないことにたった今気づく。あらら。

stylesheet なのだ

朝から bookdown をいじっている。

HTMLやePubにどうやって自分で書式設定を組み込むかという話で、
2.7 Custom blocks | bookdown: Authoring Books and Technical Documents with R Markdown
を見ると、R Markdown の解説を見ろと書いてある。

というわけで、
9.6 Custom blocks (*) | R Markdown Cookbook
を読むと、スタイルシートを設定する方法がかなり丁寧に書いてあって、ブロックを角丸の罫線で囲って、左端にアイコンを設定するところまでコードがある。これこれ。こういうのが欲しかった。

というわけで YAML を編集して試す。HTMLのほうは、

bookdown::gitbook:
  css: mystyle.css

と書けばOKなんだけど、 ePub のほうは変化なし。

気を取り直して
3.3 E-Books | bookdown: Authoring Books and Technical Documents with R Markdown
を見ると、「css:」じゃなくて「stylesheet:」とするらしい。というわけで、

bookdown::epub_book: 
    stylesheet: mystyle.css

とすると成功。やったじゃん!

というわけで、かなり多くなってしまった脚注を、本文に枠が込みで入れ込む作業をします。そのほうが読者の負担が少ないと思うし!

bookdown 簡単だあ…

というわけで、bookdown した。

bookdown は、R のライブラリなので、基本、R と R Studio で実行する。

プロジェクトを作って、yml ファイルをネット記事見ながらほとんどコピペして、ファイル名だけは自分のに合わせて。

せっせとキーボード打ちまくっていた md ファイルを、チャプターごとに分解して Rmd ファイルにして、bookdown !すると、コーヒー2口くらい飲んでいる間に終わる。あら速い。

で、最初の html ファイルを開くと、ちゃんと本みたいになっている。(左側にTOCができていて、セクションごとにページが分かれていて、セクションごとに注がまとめられている。)すごーい。

画像もちゃんと入っている。Excelでせこせこ作ったかいがある。

あとは、間違っているところを修正して、まだ書いていないあとがきとかつければ、公開!できる。

ePub も同時に作成されるように設定しているので、ePub もできている。知らなかったけど、Chrome の拡張で ePub リーダーというのがあって、インストールすると ePub 開ける。図の表示サイズが自動的に決められてしまうのがいまいちだけど、まあ、それなりに本になっている。ただし注は「章」ごとにまとまるので、本文からやや遠い。がんばって読んでくれ。

そうだ。あと、表組みがうまくいっていない。書き方がちがうんだろう、きっと。

でも、ちゃんとできそうな気がしてきたので、苦労が報われつつある感じ。本の中身はおいといて。(おい)

md ファイルを書く

ブログに書いてきたことを電子出版にまとめようとしている。KDP(Kindle Direct Publishing)というサービスを使う予定。アカウントはもう作っているので、あとは原稿があればいつでもOK。

で、原稿なんだけど、Wordで書いてPDFに変換すればいいらしい。

しかーし。
ここまで来たら意地でもWordなんか使いたくない。(謎の自己主張)

というわけで、mdファイルで原稿を書いて、bookdownを使ってePubを作ることを画策中。初めて見るような単語が並んでいるけど、とりあえずmdについて。

mdは、markdown
基本テキストファイルなので、エディタで書けるのがよい。で、

  • 見出しは「#」からはじめるよ
  • 「##」「###」と数がふえると、中見出し、小見出しみたいにレベルが下がる

HTMLの見出しタグに似てます。あと、

箇条書きは「- 」で書きはじめるとか、引用は「> 」で書きはじめるとか。
画像やリンクを入れるときは「![リンクしたい文字列](リンク先アドレス)」みたいにする。どっかで見た? そう。「はてな記法」もよく似ている。記号が微妙にことなるのが何とも言えないけどね。

で、Atom とかのエディタで開くと、ちゃんと見出しは見出しらしく、箇条書きや箇条書きになってプレビューしてくれる。

というのがmd。しかし、Atom は、編集画面とプレビュー画面が同期してスクロールしてくれない(みたい)。なにか設定があるのだろうか? いいエディターがあればいいなあ、と思っている、キーボード打ちまくりの日々。

キーボードと仲良しの毎日

ひたすらキーボードを打っています。

「シグマくん」カテゴリで書いてきた記事を、本にしようと思っていて、というか、もともと本にするための下書きとして書き溜めてきて。

いちおう書きたいことを一通り吐き出したかなあと思ったのが3月中旬。それから1か月。ひたすらキーボードを打っています。

やったことは。

1. ブログをすべてエクスポートした。(特定のカテゴリだけエクスポートしたかったができないようだった。Proならできるのか?)
2. テキストエディタで開く。記事タイトル部分を検索して見出しの記号をつけて、見通しをよくした。使っているのは秀丸
3. 「シグマくん」カテゴリと、そのほか本に使えそうな記事を残してほかの記事を削除する。余分なリンクとか片っ端から削除する。
4. まとまりごとに大見出しをつけて構造をつくる。

ここまでは一日で十分だった。問題はここから。

たぶん10万字を超えていたと思うのだけど、ブログで書いているから当然、重複していたり、どうでもいいことを間にはさんでいたり、いろいろなので、結局、

5. 最初から読み直して、たぶん7割以上を書き直す。キーボード打ちまくり。
6. 仮想データの設定とか考え直して、仮想データを使っている部分は当然書き直す。キーボード打ちまくり。
7. 書きたかったことだけど、全体の構成を考えて、やむなく最後の1章と、途中の章の半分くらいを削除。
8. データを使って説明する図が大量に必要な都合上、Excelで図を描く。キーボード打ちまくり。そして、マウスぐりぐりしまくり。
9. 全体5章のうち、第3章まで、図をつくって注を書きながら本文の修正が終わり。いまのところ6万7000文字くらい。ん? 増えてる。

というわけでキーボードと仲良しの日々。
天気良いぞ。いいのか。キーボードと仲良しで、いいのか?

正規分布の再生性2

アニメーションによる統計学

今回は第3章の2「確率変数の期待値と分散」に示されている、正規分布の加法性のシミュレーションの後半です。同じパラメータの正規分布に従う、相互に独立な確率変数の平均も、正規分布に従います。このとき、分散がn分の1になる、という点が重要です。多くの人に調査をして平均値をとると、その平均値は母平均に近い値になっている確率がぐっと高くなることの理論的な背景になる理論だからです。
シミュレーションが実行できるサイトはこちらです。
file:///C:/Users/Motofumi%20Kozakai/Desktop/p5.js/z2-dist/reproduct03.html

シミュレーション

シミュレーションでは、指定された平均と標準偏差をもつ正規分布にしたがう確率変数を4つ用意し、それぞれ乱数を発生させ、プロットします。そして、それらの平均を計算して、それもプロットしていきます。
最後にヒストグラムを表示します。変数4つの平均なので、理論上は、分散は4分の1、標準偏差は2分の1になります。
こんな感じの結果になります。

上の4本のヘアラインプロットは、平均0,標準偏差3の正規分布にしたがう乱数です。ヒストグラムを見ると、ほぼ指定通りの分布になっています。
下のヘアラインプロットは、4つの確率変数の平均です。上の4本と比べると、中央付近の色が濃くなっていて、平均値あたりにより密集していること、絶対値が5を超えるあたりにはほとんどラインが見られず、分散が小さくなっていることが視覚的にもわかります。