2007年10月31日

最近のデアゴスティーニは創刊号特別価格でも高い気がする

もしかしたら俺の研究にもブートストラップ使えるんじゃね?

と思ったので、もう少し詳しくブートストラップ法の勉強をしようとグーグル先生に問いかけてみる。

すると、「Rでブートストラップ法」なんて俺様にピッタリなタイトルのページが上がっているではないか。早速くりkk…

……

SEOもほどほどにしておかないといけないな…

posted by Rion778 at 23:16 | Comment(0) | TrackBack(0) | diary | このブログの読者になる | 更新情報をチェックする
2007年10月24日

Rでブートストラップ法

知人曰く、

「ブートストラップ法を教えれ」

無茶を言うな。名前を聞いたことしかないわ。

と思いつつ、知らないでいるのも何なので少しだけ調べてみた。

とりあえず一日調べた感じだと、「標本集団からのリサンプリングを繰り返すことにより母集団の性質を推定する」方法らしい。 これだけだと何のことやらわからないかもしれない。

というわけで、僕の勉強を兼ねて少し丁寧に見ていこう。

1.母集団の性質を推定する

たとえば、何らかのデータについて「平均値」という性質を知りたいとしよう。もしも存在する全てのデータ(これを母集団と呼ぶ) を得ることが可能であれば、単純に全てのデータをデータの個数で割れば「平均値」は得られる。

しかし、そのようなケースはほとんどない。例えば、地球上の全てのカラスの体長を知ることができるだろうか?また、 実験で得られたデータを考えても、過去に行われた実験、さらに未来に行われるであろう実験についてまでデータを得られるだろうか? 母集団は未知なのが普通なのだ。

そこで通常は可能な範囲でデータを(ふつう無作為に)集めることになる。こうして集められたデータ、つまり母集団の一部であるが、 これを標本集団、または単に標本と呼ぶ。

じゃあ、標本集団のデータの平均を取れば母集団の「平均値」が分かる…という訳にはいかない。 ランダムに採取されたデータは当然ばらつくのだから、 標本集団から母集団の真の性質を知ることは不可能である

そこで、通常は標本集団を用いて母集団の性質を「推定」する。

例えば「平均値」については、母集団が平均値μ、分散σ2のなんらかの分布をしている場合、 そこから抽出された大きさnの標本集団は「平均値」が平均値μ、 分散σ2/nの正規分布に従うということが知られている。分散が小さければ良い推定値となるので、 大きさnを増やせば、つまりたくさんのサンプルを採れば母集団の平均値の良い推定が得られる。まあ当たり前といえば当たり前。

要するに、母集団の分布の仕方(正規分布に限らない)が明らかであれば、 標本集団の平均値の分布の仕方も分かるということである。 そして、そのほかの性質(分散、標準偏差、 中央値etc...)についても標本集団より推定ができる。

(2007.11.08追記:ごめん、ウソ。俺が馬鹿だった。正しくは、平均値は正規分布し、分散比はF分布し、 期待値からの外れ具合はカイ二乗分布する…といったように、求めたい統計量に対し、何か確率分布を過程できるならそいつの推定は簡単ですよ、 というような感じです。そのほかいろいろ修正しました)

ちなみに、今の例だと母集団の分散が分からなければ標本集団の平均値の分散も分からないではないか、 というツッコミが入るかもしれない。しかし、 母集団の分散(母分散という)の代わりに標本より計算される分散(不偏分散という)を用いた場合、 t分布と呼ばれる正規分布に良く似た分布(実際、nを増やせば正規分布に近づく)をするということも知られているので、 やはり母集団の平均(母平均)を推定することは可能なのである。詳しくは専門の解説書を参考に。

2.ブートストラップ法

求めたい統計量の分布の仕方が明らかであれば標本集団より母集団の性質を知ることができる。

しかし、分布を仮定できない統計量というのも少なからず存在する。2種のデータの中央値の差だとか、平均値の比だとか (僕が不勉強なだけですでにこれらの確率分布も知られているのかもしれないけど)、そんなデータがどんな分布をするのかを考えるのは難しい。

1979年、スタンフォード大学のブラッドリー・エフロンは、確率分布にたよらず母集団の性質の推定量を得る「ブートストラップ法」 を発表した。ブートストラップという語には、ブーツの紐を引っ張り、自分で自分を持ち上げる、つまり「自力で」というような意味合いがある。 コンピュータを起動するときの「ブート」も「ブートストラップ」より来ている。

ブートストラップ法では、標本集団より重複を許したリサンプリングを多数回繰り返し、 そうして得られた新たな標本集団(これをブートストラップ集団と呼ぶ)より母集団の性質を推定する。

3.Rを使ってやってみる

実際にやってみるのが一番わかりやすいと思うので、Rを使って実際に簡単なブートストラップ法をやってみよう。ちなみに、 ブートストラップ法には確率分布を仮定するパラメトリック・ブートストラップ法と、確率分布を仮定しないノンパラメトリック・ ブートストラップ法があるが、ここではノンパラメトリック・ブートストラップ法を行っている。

まず、標本集団を用意する。変な分布をしているもののほうが面白いと思うので、次のようなデータを使ってみる。

x <- c(1,1,1,1,1,1,1,1,10,10,10,1,1,1,10,10,10,1,1,1)

データ数は20。このデータの母集団の平均値を推定しよう(なお、平均値の誤差は正規分布することが分かっているので、 本来ブートストラップ法を用いる必要は無い)。

最初に、ブートストラップ標本平均のデータを入れる入れ物を作っておく。

my.boot <- numeric(0) #my.bootという名前の入れ物

そしてリサンプリング。2000回ほどやってみよう。

for(i in 1:2000){           #iが2000になるまでiを1ずつ増やしながら繰り返し
 y <- sample(x,20,replace=T)#重複を許してxより20個リサンプリング
 my.boot[i] <- mean(y)    #リサンプリングの平均をmy.bootのi番目へ代入
 }

これで、2000個のブートストラップ標本平均データがbootstrapという入れ物に入った。あとは区間推定をするだけ。 ブートストラップ法による信頼区間にはいくつか種類があるが、ここでは一番簡単なパーセンタイル法による信頼区間を求める。

パーセンタイル法は、ブートストラップ標本の推定量(今回は平均)の集合を大きさ順に並べたとき、 100×α%の位置を信頼区間とするというシンプルな方法。Rでは、 クォンタイル点を求めるための関数quantileに引数を与えることで、何%の順位のデータでも得ることができる。 さきほど得られたブートストラップ標本平均のデータより、2.5%点と97.5%点のデータを求める(要するに、 95%信頼区間を求める)には、次のようにする。

quantile(my.boot,p=c(0.025,0.975)) #2.5%点、97.5%点の計算→95%信頼区間の推定

そうすると、次のように結果が得られる。

 2.5% 97.5% 
1.9   5.5 

これがブートストラップ法により推定された平均値の信頼区間である。

以上で説明はおしまい。Rにはブートストラップ法のためのパッケージがいくつかあるので、興味のある方、もっと難しいことをしたい方、 もっと楽をしたい方は是非参照のこと。

参考文献

 

posted by Rion778 at 22:19 | Comment(1) | TrackBack(0) | 勉強ノート | このブログの読者になる | 更新情報をチェックする
2007年10月21日

Googleが白かろうが黒かろうが

黒いGoogleが出現!サンフランシスコの節電キャンペーン(Google Mania)

黒いGoogleを使って節電しようぜ!っていうサンフランシスコのキャンペーン。しかし、 Google側は黒いGoogleには節電効果はないと説明する。

We applaud the spirit of the idea, but our own analysis as well as that of others shows that making the Google homepage black will not reduce energy consumption. To the contrary, on flat-panel monitors (already estimated to be 75% of the market), displaying black may actually increase energy usage.
引用元:Is black the new green?(Official Google Blog)

それどころか、市場の75%を占める薄型ディスプレイの場合ではむしろエネルギー消費を増大させると。

少し前にも同じ話を聞いたような…

そう思って本棚を漁ってたらNature(No.7152)のNEWSの横に小さく載ってるのを見つけた。

74 watts is the power needed to display a full-screen version of the Google homepage on a conventional cathode-ray monitor.

一般的なCRTモニターでGoogleをフルスクリーン表示させると74ワットの電力が必要であると。

3,000 megawatt-hours is the energy that would be saved worldwide each year if everyones switched to blakle.com, a new website that allows users to be Google-powered serches from a dark page that uses only 59 watts.

でも、blackle.com (背景を黒にカスタムしたGoogle)を使えば59ワットの消費電力で済むので、 もしみんながこれを使ったら年間3000メガワット時も電力が節約できるよ!と。

ちなみに「3000メガワット時」の根拠が分からなかったけど、 「クエリ(2億/日)×10秒×(74-59)ワット×一年」ということらしい<Link>。

や、そんな単純な計算が成立すんのか、と思うところ、記事(の引用)は次のように続く。

25% is the proportion of computers worldwide that still use cahode-ray monitors. This figure is declining all the time, prompting cynics to argue that 'dark searching' is merely a gimmick.

25%の人間はいまだにCRTを使っている。でもこの数字は減少し続けていて、皮肉屋さんは「暗い検索」 なんてイカサマだ、と言ってるよ。と。

結局はGoogleの説明と同じで、 どいつもこいつも液晶モニターを使ってる時分じゃ画面が黒かろうが白かろうがあまり意味が無い、という結論に。

まあ、CRTモニターなんて少数派だよな…

posted by Rion778 at 12:18 | Comment(0) | TrackBack(1) | news | このブログの読者になる | 更新情報をチェックする
2007年10月20日

月末の金曜日にはよくあること

たまには早く寝ようと思ったら、なんとなく見ていた朝生がひどいことになっていて結局3時過ぎまで見てしまった。 大まかな内容は以下を参考に。

スポーツ見るもの語る者〜フモフモコラム:大相撲新名言: 「相撲界ではリンチのときはビール瓶で叩く!」(龍虎)

はじめは戸塚さんが(悪い意味で)自分の役回りを完璧にこなしているおかげで議論が続いている感があった。

ああ、しかし気がつけば龍虎さんの失言に次ぐ失言。 しまいにはモンゴル人のジャーナリストまで龍虎さんの使い方をマスターする始末。

いつに無くガッツさんが賢く見えた日でした。

posted by Rion778 at 17:38 | Comment(0) | TrackBack(0) | diary | このブログの読者になる | 更新情報をチェックする
2007年10月14日

来年の手帳

もうそんな時期。

今のところ野帳にダイゴーのハンディピックのマンスリーを切り詰めたものをはさんでいるけど、 ちょっと細かい用事まで書き込むとスペースが足りない。

だから来年は一日のスペースが十分にあるものにしようかと。デイリーで、マンスリーのページもついてるようなやつ。ほぼ日みたいな。

しかし、ほぼ日「みたいな」のというと選択肢は結局ほぼ日しかない。

無印がほぼ「ほぼ日」 なブツを売り出しているけれどネットストアにはまだ無いし(ありました)、駅前まで出かける気力も無い。 それに無印の紙製品はどうも当たりに出くわさない。インクが簡単に裏抜けしたり、背表紙がはがれたり。1年も使うものだと思うとちっと不安。

モレスキンという手もあるけど、月が英語表記なのがどうも使いにくい。

いや、別にほぼ日でいいんだ。ほぼ日で。ただちょっと高い。今月はどうもお金が足りない。ガソリンも入れてしまったし。 といってうっかりしていると売切れてしまう。売り切れたら買えばよかったと思うに決まってる。だから結局は買うんだ。 買うんだけど踏み切れない。ああ、誰か俺の背中を押してくれ。

そういやこのまえ春風亭昇太の楽屋インタビューみたいのでほぼ日手帳使ってるのが映ってたけど、空白のページぱっかだった。 なんか好感を持ってしまった。

posted by Rion778 at 22:07 | Comment(0) | TrackBack(0) | diary | このブログの読者になる | 更新情報をチェックする
2007年10月13日

powerdotでフォントサイズを変える

powerdotは優れたプレゼンクラスであるが、そのままの状態ではややフォントが小さい。

いちいち{\large ほげほげ}とやって文字の相対サイズを指定してやってもいいのだけれど、面倒な上、 全てに指定していては相対指定の意味が無い。

そこで、デフォルトフォントサイズを指定する。powerdotでは8pt、9pt、10pt、11pt、12pt、14pt、 17pt、20ptと幅広い指定が可能。プリアンブルで、

\documentclass[size=14pt]{powerdot}

といった具合に好きなサイズを指定してやればいい。14ポイントがスライド1枚に箇条書き6〜7行になるのでオススメ。

しかし、10pt、11pt、12pt以外のサイズを使用するにはCTANよりextsizesパッケージをダウンロードしてきてインストールする必要がある。 インストールといっても適切な場所に設置するだけ。

必要なのはsize14.cloやsize20.cloといったファイルなので、使いたいサイズに該当するものをダウンロードし、 サーチパスの通ってる場所(/usr/local/share/texmf/tex/latex/の下とか)においてやればいい。

posted by Rion778 at 21:28 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする

KaTeX+powerdotでパパッとプレゼンPDFを作成する設定

TeXでプレゼン powerdotを使おうを参考に(というか丸写しだけど)、次のバッチファイルを作成し、適当な場所へ置く。

rem YaTeX用のお仕事
set src=%1
platex %src%.tex
pdfclose --file %src%.pdf
dvipsk -Pdl -D 600  -f -z  %src% | bkmk2uni > %src%.ps
call ps2pdf -r600 -dNOPAUSE %src%.ps  %src%.pdf 
pdfopen --file %src%.pdf

次に/katexの中のkatex.lの80行目あたり、次の記述

(defvar dviprint-command-format "dviprt %s %f%t"
"*Command line string to print out current file.
Format string ~A will be replaced by the filename.  Do not forget to
specify the `from usage' and `to usage' with their option by format string
%f and %t.
See also documentation of dviprint-from-format and dviprint-to-format.")

を全てコメントアウト(行頭にセミコロン";"を付ける)し、代わりに次の一行を追加。

(defvar dviprint-command-format "d:/xyzzy/hoge.bat %s")

"d:/xyzzy/hoge.bat" の部分は、先ほど作成したバッチファイルへのパス。適宜変更のこと。

これで、dviprintを実行(C-c C-t l)すると、PDF作成まで一気にやってくれる。

posted by Rion778 at 13:54 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする
2007年10月10日

面倒ごとは早いうちに

「いやいや、全部書き直す必要は無いよ。ここだけどうにかすれば。」

そういってボスの指し示した箇所をどうにかするために、ただそれだけのために、結局全て書き直すことになるとは。

まあ、全部っつってもA4で高々6枚半のちょっとしたテキストと数式だったので、そんなに時間はかからなかった。昼から初めて20: 00近くまでかかっただけのこと。HAHAHA…

ところでこれで完璧なのだろうか?もう5回目くらいだ。これ手直しするの。

とりあえず今日学んだことは

  • 気体はめんどくさくてもモルで扱え
  • 数式はめんどくさくてもラベルを貼って参照しろ
  • 参考文献はめんどくさくてもBibTeXで管理しろ

後の面倒を避けるためには、いま面倒なことをしておけ、ということですね。

しかしWordやWriterでやると思ったら大変な作業だった。全部の数式のρをχに書き直すなんて作業、 数式エディタで作った数式に対してはどうやればいいんだろうか。数式の参照番号が全部一つずつずれた、参考文献を一つ増やさないといけない、 なんてことになったらどうすればいいんだろうか。

まあなんか上手い方法はあるだろうけど、そんなのをいちいち考えるのはめんどうだ。 万が一手作業しか方法が無かったら悲劇としか言いようが無い。

やっぱ論文、レポートの類を書くにあたってはLaTeXが使えなきゃ駄目だ。 ワープロソフトでぽちぽちやるなんて気合が入りすぎている。

posted by Rion778 at 22:50 | Comment(0) | TrackBack(0) | diary | このブログの読者になる | 更新情報をチェックする
2007年10月08日

暇なので

嘘。暇じゃない。ぜんぜん暇じゃないよ。

でもみんな楽しそうにやってるものだから、ついカッとなってやってしまった。反省はぜんぜんしていない。

posted by Rion778 at 15:35 | Comment(0) | TrackBack(0) | PC関連。HTMLとか,Linuxとか,Rとか | このブログの読者になる | 更新情報をチェックする

ご趣味は何でしょうか

髪を切ろう。プリンターを買ってこよう。ばーちゃんが電子辞書ほしいと言っていたので使ってないやつをあげてこよう。

そんな決意を胸に実家に帰ったものの、「ばーちゃんに電子辞書プレゼント&使い方レクチャー」以外何もせず戻ってきてしまった。 まあいいや。

ところで、実家までは車で2時間と少しかかるのだけれど、車の中では運転以外に何もすることが無いのでいつも色々なことを考える。

今日は「自己紹介」で何を言うべきかについて考えていた。別に自己紹介の予定は無いけど。

問題は「趣味」なんだ。フォーマルな場を除けば、自己紹介の時には必ずといって良いほど趣味が何なのか述べることを要求される。

こういうとき、僕はどう答えるべきか本当に困ってしまう。別に趣味が無いからというわけではない。パッと考えてみただけで、ギター、 パソコン、読書と、割と趣味っぽい習慣的行為をいくつか挙げることができる。

しかし、これらを言ってみた後の話題の発展を考えてみると、どれもこれもよろしくない。

例えば、「趣味はギターです」とか答えてみたとしよう。でも、そこから話題は発展し得ない。 ギターを弾いて時間をつぶすのは好きだけれど、別に好きなギタリストが居るわけでもなし、レパートリーがあるわけでもない。好きだけど、 興味が外へ向いていないから、知識が無い。知識が無いのだから、当然話題は広がらない。そしてまた、人に披露するほどの腕も無ければ、 その気もさらさらない。だから僕はギターが趣味だなんて言わない。言えない。

じゃあ、「趣味はパソコンです」とか答えてみたとしよう。でも、僕の知識は偏っている上に浅い。 HTMLやCSSをほんのりいじったり、簡単な計算をするプログラムを書いたりして喜んでいるだけなんだ。だから、自称 「パソコンに詳しい人」なんかとはおそらくほとんど会話が成立しない。それに、「パソコンに詳しい人」とでも思われたら最低だ。 だからこれも没。

一番普通っぽい「読書」を答えてみたとしよう。善良で賢明な人間なら事を察して話題を早々に打ち切ってくれるだろうが、 世の中は悪い人だらけなのですぐに「どんな本を読むの?」という質問が飛んでくる。これには困る。

大体、読む本に傾向が無い。特定の著者の本を何冊も買うことも少ない。ジャンルの傾向もパッと見た感じは無い。後ろの本棚を見ても、 「不思議の国のアリス」の隣に「理化学辞典」、その隣に「食虫植物」と並んでいる。一応ジャンル別に整理してるつもりなんだけど。

最近読んだ本は?と聞かれても困る。最近読んだor読んでいるorこれから読む用本棚を見てみると、物理の本、英語の本、数学の本、 歴史の本、論文の書き方の本、統計の本、炭の本、ドローイングソフトの本などなどがごちゃごちゃと並んでいて、一番新しいところには「楽典」 が並んでいる。もちろん、この中の半分は読んでない。

それで、ここから何を判断するのだと。どう話題を発展させるのだと。

いや、何も判断するな。何の話題も持ち出すな。そんなことをされたら困る。これらの分野に関する僕の知識は浅いし、 来月には別のほうへ興味が向いている。

大体、いま挙げたのはどれもこれも知識が浅いし、大して打ち込んでもいない。そんなものを趣味と呼んで良いのか。

でも他に言える趣味も無いので、結局「読書です」とか言ってしまい、その後の返答に困って微妙な空気を作り出してしまうのがオチ。

こういうことは考えるたびに憂鬱になるので、何か一つ他人に言える趣味を持とうと思うのだけれど、 そんな動機で始めてみたって長続きしない。

大体、趣味なんて大抵が他人に言えないようなもので、他人が聞いても楽しめないようなものではないのか。 そういう類の趣味なら挙げられるけど、他人に言えないのだからこういう場では役に立たない。

他人に趣味を訊ねる奴らは何を考えているのだろう。

他人に言える趣味を持っている奴らは何なのだろう。

posted by Rion778 at 00:26 | Comment(0) | TrackBack(0) | diary | このブログの読者になる | 更新情報をチェックする
2007年10月04日

ブドウ糖とカフェインが足りません。

多くのことは、それ自体では不可能事に見える。だが、視点を変えるだけで、可能事になりうる

──ハンニバル

いいアイデアを生むためには少し考えるだけではだめで、考えて考えて考えてやっと何かかけらが出てくる。

もう少し考えるとアイデアを実現する方法が出てきて、また考えると今度は問題が出てくる。 もう少し考えると問題を解決する方法を思いついて、さらに考えると…

以下繰り返し

そんな毎日。

簡単な算数をPCに計算させるべく日々Rでプログラムを書いているわけだけど、 四則演算に毛が生えたくらいのことしかできない技量なので時間がかかる。

そのくせ肝心の数式がどんどん変形していく。僕が適当に考えた数式なので基本的に欠陥品で、 考えるほどに問題が出てくる。よーく考えればとりあえず解決方法は思いつく。思いつくんだけど、なかなか実装できない。

今日はデータフレームからある列の値が最大の行を取り出す方法を知るためだけにかなりの時間を費やしてしまった。 本当にプログラミングがボトルネック。

次はある列の値が四分位値となるような行を取り出したいんだけど…さっぱりさっぱり。

これを機にもうちっとスキルを身に付けたいところ。

posted by Rion778 at 00:11 | Comment(0) | TrackBack(0) | diary | このブログの読者になる | 更新情報をチェックする
2007年10月01日

ノギス

ノギスの使い方を知らない人がいた。少し驚いてしまった。馬鹿にしているのではなく、 普通に驚いた。 相手に、というより、 「ノギスの使い方」が当たり前に共有されている知識、常識だと思い込んでいた自分に。

どう考えてみても、その人は不勉強からノギスの使い方を知らないのではなく、これまでの人生で一度も「ノギスの使い方」 という情報に接触してこなかったのだ。

そんなことあるものか。確か僕は学校で…

と考えてみると、僕は普通科の高校じゃなかったし、ノギスの読み方(正確には、 ノギス式の読み方をする直示天秤の読み方)を習ったのは専門科目だった。

中学の技術家庭科なんかで習う場合もあるのかもしれないが、サボっていた僕には良く分からない。というか、高校で教えるということは、 中学で教えない可能性が少なくともあるということだろう。

そして、僕が習ったのは専門科目でだったのだから、普通科なんかだと全く触れない可能性がある。

それでもなんとなく、ただなんとなくノギスの読み方なんてのは誰でも知っていて、物差しと同じくらい容易に使えてしかるべきものだ、 と思い込んでいた。

しかし、よくよく考えてみるとノギスの目盛りの読み方は結構特殊だ。実物を例示せずに説明しろ、と言われても、 万人に分かるように説明できる自信が無い。

それに僕だって大学に入るまでマイクロメーターの読み方は知らなかった。 それもたまたま読んだ本に載っていたから覚えただけのことであって、そうでなければ今まで知らなかったことだろう。

教育という枠を外れてしまうと、ある知識を知っているか否かは蓋然性の問題となってしまう。 勉強をしたって単に部分集合が大きくなっていくだけで、全ての知識を得ることなんてできない。基本的なことに思えても、 全くの偶然からその知識に接触しないということはありうる。

基本的なことだから常識だとは限らない。常識だから共有されているとは限らない。そしてそれは誰の責任でもない。

っていうか常識って何だ?

posted by Rion778 at 19:43 | Comment(2) | TrackBack(0) | 考え事 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。