Top

個別鵯記

Latest update on 2018年3月7日 (水) at 15:42:47.

目次

【第531回】 R研究集会(2013年11月30日)

往路
7:30に出発し,9:15頃に統数研到着。今日は夕方までずっとR研究集会。内容はtweetでメモし,後でここにまとめる……というつもりで,昼までは鬼のようにtweetしていたが,#rjpusersで検索しても自分のtweetだけ表示されないという不思議な現象に遭遇し,午後はtweetではなくテキストファイルでメモをとった。
復路
中央特快で東京駅に着いたのが18:30頃で,弁当を買ってから18:50発のぞみ59号に乗車。E席をとっていて,D席が空席なので快適だ。以下,とったメモを簡単にまとめてみる。
R研究集会メモ(1)
合崎英男さんによる「RによるBest-Worst Scaling」。support.BWSというパッケージを開発しCRANで公開されている。maximum difference scalingという言い方もあるそうだ。BWSはコンジョイント分析などでも使われる,複数の項目からの選択の手法。(例)澤田ら(2010)国産牛の飼料自給率向上の利点に対する消費者評価 *国際価格,安定供給,エサ安心,環境負荷,CO2削減,低価格の6項目から実験計画により5項目を取り出す。最も重視する項目と重視しない項目のペアを選んで貰うことを繰り返す。他にもcorrosdesとかDoE.baseとかsurvivalといったパッケージを要する。最近だとmlogitというパッケージを使うと離散選択モデルが使える。crossdesパッケージはBIBD (釣り合い型不完備計画)向け。例として紹介されたのは,support.BWSパッケージのexampleのres2のデータをただの記号ではなく野菜名に変えたもの。(質疑から)BWSは個々の項目を評定するのに比べ,「みんないい」とか「みんな中間」といった回答になりにくいので,相対的重要性を判定しやすい。強制順位付けに比べるとBestとWorstだけ答える方が答えやすい。スライドは研究集会サイトに公開予定。
R研究集会メモ(2)
第2報告は中間さんと中野先生の報告で,ハイパフォーマンスコンピューティングのためのRhpcパッケージの紹介。統数研のスーパーコンピュータで使えるような並列計算のためのパッケージとして開発中。snow(Rで書かれているので若干非効率),Rmpi(MPIのAPIへのアクセスなのでRとの対応がいまいち), multicoreのような既存パッケージは一長一短。multicoreはSimon Urbanekが開発し,LinuxとWindowsで動く(でもスーパーコンピュータでは使えないということ?)。snow並みに使いやすく,かつ制限の無いパッケージとしてRhpc開発に着手した。並列計算の説明を丁寧にしてくださっていて,細かいところはわからないが,何となくイメージは掴めた……ような……掴めないような。Rhpc_lapplyLB()関数でロードバランスをとりつつ実行させるとか。プロセスをworkerとして複数並列で動かす感じ。RhpcBLASctlという派生パッケージはwindowsでも使えるし,CRANにも登録済み。たしかにinstall.packages()できた。Rmpiは2GBを超えるデータを扱えないが,Rhpcは大きなデータも小分けして扱える。snowのclusterExportは順次workerを1対1通信で呼ぶのでworkerが多いとリニアに遅延発生,RhpcはMPIの集団通信なのでworkerが増えても大丈夫。RhpcはMPIにかなり依存。まだ開発途上で,統数研内の中間さんのサイトから入手可能。そのうちCRANにも登録予定(だが,WindowsとかMacOSに対応させるのが難しい? ので悩み中らしい)。
R研究集会メモ(3)
第3報告は奥村さんで,TeX Liveと美文書第6版とRについて。 昨日のDuncan Murdockさんの話ともつながりありそう。日々やっているネ申退治(?)というか,Reproducible Researchのために実践している話。『美文書』はだいたい3年ごとに改訂。そのときの最新の知識を詰め込んでいる。pTeXに限ってもずいぶん変わっている。pTeX+ε-TeX拡張+upTeX拡張(内部ユニコード)他にもたくさん。これまではpTeXは世界では知られていなかったが,TeX Liveに入ったので世界に広まった。upTeXもTeX Liveに入ったので,ソースをUTF-8で書けば変な文字(半角カナとか丸数字とか)も扱える。 \documentclass[uplatex]{jsarticle}のようにプリアンブルに書き,uptexでコンパイルする(12月1日追記:uplatexを呼ぶ)。注意としては,ウムラウトをキレイに出力するためにはおまじないが必要だったりする。けれども,XeTeXよりキレイ(一般に)。グラフィックエンジンについては,元のpicture環境は低レベル。TikZが驚異的。マニュアルが726ページ。美文書ではTikZの章が11ページにまとめてある。RからTikZに出したい(TeXの本文と同じフォントでの作図)→tikzDeviceが現在使えないが,knitrの作者たちが復活試み中。ベータ版が公開されている(12月1日追記:devtoolsパッケージをインストールすると使えるようになるinstall_github()関数で,"yihui/tikzDevice"を指定する。インストール時にgccを呼ぶので,Windows版の場合,Rtoolsをインストールしておかないとインストールできないかもしれない)。マイナスがハイフンになってしまうとか,色指定がrgbでされるとかいったところ,若干手作業で修正が必要。
R研究集会メモ(4)
第4報告者,中谷さんはCVMのためのパッケージDChoice。ラマンチャのuser!2013で発表された内容とのこと。ちょうど昨日リスク論の講義をしてきて,CVMも解説したばかりなので,細かいところが気になった(WTPに特化した説明だったが,WTAには敢えて触れないのか? とか,直接数字を聞き取る方法と,候補額を提示してWTPとして同意するか否かを聞くのと,どっちがいいのか? とか)。Whitehead, 1995の例。水質改善に関するWTP,提示額に対してYes/Noを聞き取る方法。Yesの人には倍額も聞く。Noの人には半額を聞くという二段階。二段階二肢選択法というそうだ。分析はパラメトリックモデル/ノンパラメトリックモデルがある。パラメトリックのとき,一段階データは二値選択モデル(logit/probit),二段階データは区間打ち切りデータに対応する尤度関数が必要。尤度関数が面倒なのでパッケージ化。ノンパラの場合,WTPを寿命のように考え,生存分析。KMT推定量とSK推定量でどちらがいいか論争あるが,両方計算できるパッケージを作った。DCchoice。二肢選択型CVMに特化したもの。既存研究で利用されたデータをexampleに含んでいる。DCchoiceのインストールは,レポジトリとしてR-Forge,bioconductor,CRANの3つを指定しなくてはいけない。DCchoiceはR-Forgeにあり,bioconductorにしか入っていないパッケージintervalに依存しているため。ロジスティック回帰で得られたパラメータを使って平均値,中央値とその信頼区間を求める関数も定義済み。krCI(?)またはブートストラップで実行できる。(質疑から)被害総額を求める際に,この方法で求める単価が中央値がいいのか平均値がいいのかは決まっていない(らしい)。
R研究集会メモ(5)
午前中最後の発表は,東京大学小池さん,野村さんによる「Rによる確率過程の統計解析」 yuimaパッケージ(東京大学吉田教授,ミラノ大学Iacus教授が中心となって開発され,最先端の理論が日々実装されている)を利用。主な関数4つ
  • simulate:確率微分方程式のシミュレーション(パスを離散近似で生成)
  • qmle:確率微分方程式のパラメータ推定
  • asymptotic_term:解の汎関数の期待値を漸近展開により計算
  • cce:二系列の非同期観測データ間の共分散を推定
R研究集会メモ(6)
午後の報告は谷村さんから。Rによる多変量疾病地図。疾病地図:地域集積性を検出,リスク要因の仮説を立てる→空間統計を援用した空間疫学モデル。市区町村別年齢調整死亡率と社会経済指標をそのまま回帰モデルに投入するのは不適切。少数問題や空間構造を加味したモデルが必要(経験ベイズ平滑化疾病地図)。今日はどうやってグラフィカルに複数の疾病情報を載せるかという話。(例)Snowのコレラの疾病地図,2011年の人口10万対の結核死亡率を使ったコロプレス図(日本,都道府県別)=library(Nippon)を使った日本地図。色分けにはlibrary(RColorBrewer),階級区分はlibrary(classInt),都道府県並びは,通常JISコード順なので,気にしなくていい。しかしこれらは基本的に単変量。複数の変数は複数の地図にするのが普通。同時に見たいときどうする? というのが今日の話。いくつかの手がある。
  • 2つの指標を1つに統合
  • 形と色に別々の指標を割り当て→人口と結核死亡率なら色と円の大きさでプロットできる(比例シンボル図)
  • 異種の地図をオーバーレイ(同じパッケージでコロプレス図に比例シンボル図を重ねることもできる)
  • カルトグラム(地図の形を変数に応じて歪める。連続カルトグラム,非連続カルトグラム,円形カルトグラム)Rcartogramパッケージをomegahatからインストール(コードはかなり長くなる):人口に従ってカルトグラム,結核死亡率をコロプレス図にすると,東京のように人口の多いところが大きく表示されて,そこの色で東京の結核死亡率がどれくらいなのかわかる。円カルトグラムだと都道府県名を表示しないとどこがどこかわからなくなるのが欠点(これはまだRcartogramには実装されていない)。
  • チャート化:条件付きコロプレス図など。条件変数でスライスを作り,複数の地図を実現。maptoolsとlatticeで可能(例:人口密度で区分した老年化指数。日本人口ならNipponパッケージも使う)。
  • 複数の図をアニメ−ション:時系列に限らない。いろいろな連続量でスライスしてつなげることができる。風疹のアウトブレイクの例。
  • 彩色工夫:2つの系統の色の混合で2変量を表現maptoolsとhogeパッケージを使うとオーバーレイ法の色の合成が楽。αチャンネルを使って3色混合とか。変数が多くなったら,地図上にチャートを重ねるしかないかも。
(質疑から)Nipponパッケージは都道府県データのみ。
R研究集会メモ(7)
自分の発表。Hyndmanのdemography, forecastの他は,fmsbに定義した関数のみ利用して,HMDHFDからデータを貰い,人口のパラメタライズドモデルを当てはめてパラメータ推定し,それを時系列解析して今後50年のパラメータの変化を予測し,そこから将来の年齢別出生率,死亡率を構成し,センサスデータからコーホート要因法でウクライナの人口予測をした話(プレゼン資料改訂版)。(質疑で中谷さんコメント)Rsolnpを使うと局所最適に陥らないで初期値をいろいろ変えて最適化してくれる。収束も早い。→fit*()の中でoptim()を使っているところを置き換える? (ただ,fmsbを書き換えるのは,依存パッケージを作ることになるので避けたいかなあ)
R研究集会メモ(8)
中野さん(関西学院大)による,日刊新聞読者投稿欄の計量テキスト分析。新聞社がデータベース化しているので,容易に分析できる?? と思ったら,利用規程(リンク先は朝日新聞)があり,4.に分析してはいけないと書かれている。分析したい人は? 126000円/年とかで別途売っている(朝日新聞の場合)→購入した。朝日と読売の読者投稿欄(「声」と「気流」)を分析した。職業,名前,住所,年齢が載っているのが特徴。売られているテキストデータは,タグ付けされたテキストデータ。\ID\***から次の\ID\***までが1つの記事(朝日の「声」は1988年〜1990年は \A2\に「5面」,\T1\の末尾に「(声)」など決まったタグがある。1994年以降は\A2\が「オピニオン」となった。が,Rで自動的にフィールドが抜き出せた。読売の気流は\Y2\が気流,\T1\が[気流]と規則的だが,職業,名前,年齢,住所などの入り方が滅茶苦茶。気まぐれのように変わる。→フィールドの加工は手作業した。「声」総記事数52,346件。総投稿者数32,798(同姓同名の識別はせず)。最大72回出現する名前があった(年次につれて年齢が上がっているのでおそらく同一人物)。年齢6〜99歳,中央値50歳。職業は最多は主婦,次が無職,次が会社員(ただし自称)。3134種あった。「気流」総投稿者数20,826。最多投稿は92件。1歳〜102歳だったが,1歳は誤植。4歳も誤植だったことが確認できた。職業は朝日より主婦が多く教員が少ない。形態素解析:年齢などとの相関をみたりできる。頻出名詞上位100を比較すると,朝日100にあって読売100にない言葉はいろいろあるが,戦争もそう。「戦争」を含む記事数は4,211件。8月が断然多い。職業別比率,年代別比率も求めた。「戦争」関連語の変遷(声)は,2000年前後から急に「テロ」が増えたり,戦争責任は1990年頃まで多くてその後減ったり。「戦争」の語りは変化しているか?→△。WordCloudというパッケージがあって,それを使った。共起ネットワークの方がいい? →ぐちゃっとして見えない。が,間引く方法がある
R研究集会メモ(9)
藤野友和さん(福岡女子大;twitterアカウントはnonki1974。Rによるインタラクティブグラフ生成とその応用。目的:Multiple linked viewsをggplot2の出力により,Webブラウザ上で実現。コロプレス図も。GGobiがスタンドアロンソフトとしては有名。それっぽいものはできた。背景:福岡県における人口動態,死因別死亡数データ(市町村別,死因別,年齢階級別)の活用〜かなり莫大なデータ。福岡県保健環境研究所との共同研究であり,県や保健所職員の利用を想定している(去年報告した,rubyでサーバにコマンドを送り,svg出力しているもの。これをRでやることと,インタラクティブにすることが今回の目的。インタラクティブなコロプレス図:シェープファイル→タグ付け→gridSVGでSVGに変換→javascript追加。Export grid graphics as SVG。CairoによるSVG出力では構造は反映されない(図形情報のみ)。散布図におけるidentificationの例。grid.script(paste("var x=",toJSON(...),";",sep=""))。grid.getit()してgrid.garnish()してgrid.export()。grid,ggplot2,gridSVG,rjson,GGally,maptools,rgeosパッケージが必要。データはShapefileとCSVのみ。作成可能なグラフは,散布図,ヒストグラム,並行座標プロット,コロプレス図。wrisp.scat(x, y, data, name, tag, ...)。MLWのための散布図をSVG形式+JavaScriptで出力。地図をなぞるとその地区の折れ線に色が付くとか散布図に色が付くような事ができる。SVGなので,拡大縮小が自由にできるところが利点。(質疑から)ぜひパッケージ化してほしいという要望が出た。
R研究集会メモ(10)
次はef-primeの鈴木了太さん。もちろんR AnalyticFlowの話「データ解析のためのR GUIフロントエンド」。Javaで開発。RとはJRI経由で接続。BSDライセンス。自動バックアップ機能,復元機能,充実したチュートリアル,インストールの簡便さが売り。R AnalyticFlow 2.1を昨日リリース済みで,新機能は,オブジェクトの種類別表示,エディタ機能(形式を選択して貼り付けが便利),フォントサイズの変更ができるので,プレゼンテーションでもコードが見やすいこと。開発中のバージョン3の話(資料は非公開)が刺激的だった。仕様はまだfixじゃないそうだが,ドラッグドロップでデータファイルにリンクできるとか,テキストファイルはクリック一発自動判定して表形式表示(巨大データのときは部分表示。zipされていても中身も見える)とか,そこから入出力メニューがあって,実行すると実際にRに読めるとか,カラム選択もチェックしていくだけでOKとか。JMPに勝ったな。すべて,裏でRのコードが生成されて実行されている。グラフ作成とかモデリングとかもメニューから選んでできる。実行したもの全部が自動的にフローチャートになる。将来的には,マークダウンっぽいユーザ定義によるGUIの拡張までやりたい→Rcmdrに似てきた? 凝ったことをしたいときはjavaの知識も必要? 分析手法を選ぶと自動的にパッケージがダウンロードできるようにとか?
R研究集会メモ(11)
次は神田先生。もちろんEZRの話。メールでは何度もやりとりしていたが,失礼ながら思っていたより若くて驚いた(後で話したところ,駒場でぼくの1学年下とのこと)。神戸出身とのことで,釈迦に説法,チャカは鉄砲とか,エビデンスと海老ダンスとか,スライドが関西人だった。EBMと臨床研究の間でClinical Questionsを挟んで行ったり来たりする。臨床医に統計学が必要か? というと,国内の生物統計かの数は圧倒的に不足しているので,EBMの実践のために,臨床研究の実践のために,生物統計家と話すために最低限の知識は必要。ただ,統計学全般が必要なわけではなく,日常必要な手法は限られている。ソフトとして臨床医に一番使われているのは? StatView(2002年にSAS社に敵対買収され,消滅した)がユーザー最多。Stataはかなりポピュラー。7万円と高価。スクリプトを書く必要があり,かつ機能が足りない。SPSSは高すぎる。JMPは8万円。Rなら問題解決。でもマウスで操作できないと臨床医にとっては壁が高い(スクリプトは書けない)。開発の動機は,日本造血細胞移植学会WGでのニーズ。競合リスクをちゃんと扱える,生存解析に強いソフトが必要ということ,時間依存性変数への対応も必須であり,マウスでメニュー操作するだけで解析でき,解析ログを記録できることも必要。かつ無料であってほしい。そこで,Rcmdrに機能を加えることにした。機能追加しているうちに長大なコードになり,現在のスクリプトは13,934行ある。(質疑)フランス語で使いたいニーズがあるが,対応の可能性はある? Rcmdr自体は対応しているし,.poを訳せばいいので,フランス語がわかる人が開発協力してくれれば可能(というわけで,谷村先生の人脈で何とかなるのであろう)。survivalは突然返ってくるオブジェクト内の変数名や構造が変わるので,pluginからインストールする場合,バージョン不整合が起こらないように追随するのが大変。1.20からはpluginでインストールしても標準メニューが崩れなくなったとのこと。朗報。MacOS版でWindows版のような簡単な独自インストーラはできないのか? 尋ねたら,Macの達人が協力してくれれば可能ではないかというお答えだった。留学生などのマックユーザに使わせるのが楽になるので,将来対応されると良いなあと思う。
R研究集会メモ(12)
最後はLT大会(Japan.Rの前哨戦)として,5名の若手による報告。Japan.Rとは,日本各地のR勉強会の参加者が集まって開催される年一度の勉強会。今年で4回目。去年まではこの研究集会と同時開催だったが,両方出たいという人が多く,今年は12月7日(土)にYahoo六本木で,13:00〜開催。250人がもうほぼ埋まっているが,今日箕田さんに言えば何とかなるとのこと。以下概要。
  1. 箕田高志「商用ツールとRの連携」。Magic Quadrant(各DBベンダー,BIベンダー)箕田さんのTwitterアカウントは,aad34210。仕事はyahooのネット広告アナリスト。商用ツールベンダーはRを脅威に考えている? 例示:SAS/IMLでRと連携,MicrosrategyはBIツールの中では老舗。Rを取り込んでいる(パッケージ経由),TableauもRを連携させ,積極的に関数やグラフィクスで使えるようになっている,CognessとかBusinessObjectsはRとの連携はとくに言及無し,OracleはRを独自拡張したOracle R Enterpriseを無料で提供,TeradataはDWH最大手で,teradataRを提供しているがCRANには非公開(R3.0で使えないのでサポートサイト炎上),ネ申SQLServerはRとの連携は言及無し。連携は一部ベンダーで進行。今後拡大しそう。
  2. 田中ひでかずさん「SlidifyとrChartsの話」japan.R主催者。RMarkdownでスライドを作成する。Slidify:knitrベース。開発者はインド人。Rコードと実行結果を埋め込むことができる。LaTeXやMathMLの記法で数式を書ける。CRANには入っていない。githubからインストール。author()して,index.Rmdを頑張って編集するとひな形ができるので,あとは簡単。slidify('index.Rmd')とか。rChartsはJavaScriptの可視化ライブラリをRから操作するパッケージ。開発者はSlidifyと同じインド人。インタラクティブ。インストールはinstall_github('rCharts','ramnathv')とする。グラフはggplot2を使って作っている。データが大きいとrChartsは非実用的なので。
  3. 和田計也「Shinyサーバの話」 Twitterアカウントはwdkz。サイバー系企業勤務。Rのコーディングだけでブラウザ上で動く,javascriptで作ったようなインタラクティブなアプリが作れるのがShiny。ui.Rとserver.Rだけ書けばいい。Shiny-Serverを利用してサーバにデプロイするのが配布のいい方法。Twitterアカウントhoxo_mさん作成のOpenShinyを利用してユーザにShinyアプリを配布することもできる。ただしOpenShinyは.netを使っているのでWindowsマシン限定。複数ユーザの同時接続に弱いという致命的何か(落ちてしまう)。作者も問題は認識している。Node.js自体は大丈夫だが,そことRをつなぐところがネック。解決方法は複数Rを起動するとか(@mtknnktmさんがどこかできっと発表するとのこと),ロードバランサを噛ませて複数台のサーバでnode.jsとRのセットを動かす,等。nginxというApache HTTP serverのようなソフトがロードバランサ機能をもったhttpdを使う。開発元は,Shiny Server Proという商用をリリースする計画あり。値段はあと数週間で発表されるが,RStudioの会社が作っているので,かなり高い感じ。
  4. 「妹ができました〜僕とBotとRPubs〜」Twitterアカウントhoxo_mさん(Tokyo.Rのノリのタイトルだが内容は真面目とのこと)。某ECサイトでデータ分析をしている。RPubsRecentというbotの中の人。Easy web publishing from Rを狙ったのがRPubs。Rのソースコードと実行結果を簡単に投稿できて公開できる仕組み。Rに関する優良記事が多数投稿されている。トップページは人気エントリーなので,新着記事を流すbotを作った。@RPubsRecentをtwitterでフォローすればいい。@RPubsHotEntryは,@RPubsRecentで流れたtweetのうち,お気に入りを誰かがつけたエントリだけが流れるbot。なお,投稿言語の半分は英語だが,日本語の投稿も若干ある。
  5. 里洋平「2013年のTokyoRとデータサイエンス活用事例」。Twitterアカウントyokkuns。TokyoR主催者。データサイエンティスト養成読本執筆。TokyoRは,最初の頃は20人くらいだったが,最近は100人超。データサイエンティストブームが引き金。TokyoRの構成は,前半:初心者セッション,後半:応用セッション,LT:各人5分,懇親会(その会場でピザパーティ)となっている。これまでのプログラムでは,plyrパッケージで君も前処理スタという第30回の発表がお薦め。今月あったのが第35回。続いてyokkunsのデータ分析環境の話。Hadoopに各サービスのDBと行動ログを集約。R言語を徹底活用して分析/レポーティング。分析用サーバが2台:片方はRStudioサーバー,もう片方はR Batch Server。後者で定常業務。HDFS上のデータ取得や独自アルゴリズムをパッケージ化している。DrecomHdfsパッケージとか。EasyHTMLReport/Shinyで各種KPIをHTMLメールで配信。いろんな軸でドリルダウンしたいようなものはShiny。ユーザー・セグメンテーション:行動ログを用いてユーザーのセグメンテーション。各セグメントの行動特徴を主成分分析で確認し,クラスタリングで最適クラス多数を算出し,クラスタの行動特徴をハマっている順にならべてプロット。ユーザをよりハメたい。クラスタ変化=ユーザの成長。キーとなっている行動の変化を促進させる戦略。自動化とレポーティング:前週のクラスタと今週のクラスタのクロス集計などをメール配信。
帰宅
新神戸から地下鉄で湊川公園へ。22:11のバスに乗って,家に辿り着いたのは22:30過ぎだった。疲れた。

Read/Write COMMENTS

前【530】(講義をしてから立川へ(2013年11月29日) ) ▲次【532】(洗濯と買い物と講義準備の日曜(2013年12月1日) ) ●Top

Notice to cite or link here | [TOP PAGE]