Latest update on 2023年12月19日 (火) at 18:30:55.
【第1508回】 日帰りでR研究集会参加(2023年12月16日)
- 4:30起床。適当に朝食を済ませてJRで新大阪に出て、6:15発の新幹線で東京へ向かっている。
- たぶん最初に日本Rユーザ会という位置づけで始まった統計数理研究所のR研究集会に出席するため。COVID-19のメモのため、主に作図を中心に書いてきたRコードをまとめて振り返ってみるという主旨で喋る予定。
- 品川近くなってやっとプレゼンファイルが完成した。東京駅から中央線に乗ったが、最初に乗った快速が途中で青梅特快に抜かれることがわかったので、新宿で降りてサンドイッチを買ってから、青梅特快に乗り換えた。
- 9:55頃に統計数理研究所のセミナー室に到着。去年はオンライン参加したのだった。以下適当なメモ。
- 10:00からR研究集会開始。1題目は安川さんによる「Rによる行列分解」。行列分解は教師なし学習の1つとして捉えられている。非負行列分解(NMF)、CUR分解、Archetypal Analysis(Cutler and Breiman 1994)などがある。今日のメインは行列を凸結合で近似するという、この最後のもの。NMFはNMFパッケージとRcppMLというパッケージで実装されている。CUR分解はデータ行列の行・列を用いて低次元の行列で明示的な低次元近似を行う。PCAなどの代替として提案。rCURパッケージとして実装されている。archetypesパッケージとして実装されているAAは、極端な観測値(アーキタイプ)の凸結合として行列を近似する。アーキタイプに基礎づけられたデータ構造がある場合に有用。元のアイディアはオゾン予測から来ている。Cutler (2010) Remembering Leo Breiman, The Annals of Applied Statistics, 4(4): 1621-1633.はCutlerの博士論文で、Breimanのコンサルタント時代のアイディアが元。翌日のオゾン予測のために、各日を「極端な」または「典型的な」の混合として表現。ほとんどの日は極端な日の中間に位置する。クラスター分析や主成分分析の代用を想定。交互最小二乗アルゴリズム。AとZを交互に最適化。凸包が求められる(データを含む外側の点がいくつか求められる)。テキスト分析で、アーキタイプのhinton plotをして語の重みを可視化した(hinton plotはパッケージに入っていなかったので自作したとのこと)。
- 2題目は総務省統計研究研修所の和田さんで、ご自身がパッケージメインテナをされている、多変量外れ値検出パッケージRMSD(シングルコア版。使えるデータが小さいが速い)とRMSDp(並列化版)について。実際の統計調査データは正規分布は仮定できないため、楕円体分布族を使うというアイディア。現状は単変量でのレンジチェックが実務の中心。多変量でないと検出できない外れ値は残りがち(比を取るなどして単変量でもある程度できるが)。多変量は困難で実データでの正解がわからないなど普及しない理由はある。EUではEUREDIT projectがあり、カナダ統計局が使っていた方法を改良した方法が提案された(2003)。和田さんは2010年にこれらをRに実装し性能比較をした。robustbaseパッケージのstarsCYGというデータをみると、カナダ版の重み付けよりEUREDITの方がかなり性能が良いことはわかる。問題は計算負荷が高いこと。ランダム直交基底を計算するのはメモリを食うので、最初の開発時は最大11変数までしか32bit版Rでは計算できなかった。メモリ節約のために、(1)forループの処理を並列化するため、foreachとdoPararellを使った。Windowsで開発したが、MacでもLinuxでも動いた。(2)射影からウェイトを計算するところまで並列処理、最後だけまとめる。直交基底だけで12.5GBになる20変数でも検出可能になった。乱数を使っているので、再現性が必要な場合はsdというパラメータに任意の数値を与える必要がある(set.seed()をやっておくのではダメなのか?)。Ellipsesパッケージだと二次元正規分布の楕円しか描けないので、楕円を描く関数も自作したとのこと。他の手法と比較した論文も書いている。
- 3題目は樋口さん。Singularity仮想化でバイオデータ解析、というタイトル。SingularityはDockerのようなものだがrootが不要なためセキュリティ的に有利。さまざまなスパコンがSingularity環境をサポートしている。ヒトゲノムデータや腸内細菌データは個人情報なので、閉鎖環境で解析せねばならない。しかし閉鎖環境だとデータベース導入が困難。そこで手元の(Closedな)Linux環境でSingularityイメージを構築しスパコンに転送して解析させるというのが、Singularity仮想化の利点。LLM(大規模言語モデル)(注:LLMをまったく知らなかったので検索した。リンク先はGigazineの記事)も一部入っている。その中でもJupyter Labをベースにするのは、RやPythonが使えること、webブラウザがあれば使えることが大きい。Dockerイメージを作れば、そこからsingularityイメージが作れる(Linuxのシェルスクリプトでsudoしていたので、ローカルではroot権限必要なのだな)。実行するときはsingularity run *.sifという形。seuratパッケージはRのシングルセル解析パッケージで、空間トランスクリプトーム解析やRNA velocityを扱える。Jupyterではbiocondaのr-seuratでインストールするのが確実。R Studioを使わない理由は? という質問があり、環境を丸ごと持って行ってバッチジョブで使いたいからとのこと。
- 昼飯前最後となる4題目は川崎さんで、Cal Poly Shiny Appsの日本語化と統計教育・アウトリーチ活動という話。California Polytechnique State Universityの統計学部が開発・公開している、統計教育を目的としたウェブアプリ群(回帰、統計的推測、等々を含む)がCal Poly Shiny Apps。開発者のJimmy Doi教授が2016年に統計数理研究所に初来所して知った。2022年11月に日本語化を打診し快諾された。表か裏の最長連続回数、カオスゲーム:2次元、ベンフォードの法則など、既に日本語化して使えるようになっている(大っぴらに公開はしていないが)。2022年11月8日に岡山の津山高校で1年生対象にシミュレーションを使った推測とパターン発見という出張講義(アウトリーチ活動として)をしたのがきっかけ。USAでは大学初年度の統計教育で大々的にSimulation Based Inferenceが導入・推進されている。Shiny Appsになる前、元々はISIのアプレットだった。Shinyは統計数理研究所が教育目的でライセンス契約しているのでこうした出前講義にも使える。
- 昼休み。自販機で売られている飲料が安くて驚いた。
- 午後の部に突入。5題目は地道さんによるRによる財務データの匿名化:NEEDS財務データを利用した合成疑似データの生成、というタイトル。財務データをデータベース単位で契約・購入するには価格のバリアがある。ネットからのリアルタイムデータ入手は安定的でなく再現性に疑問。地道・村上(2008)では株価データをスクレイピングできたが、現在は難しい。そこで、現実データに似通った疑似データがあれば、ある程度の分析を行い検証できる。チャンスがあってデータを購入できれば、本物のデータで検証できる。データの匿名化(anonymization)は情報サニタイズの1つ。名前がなくても、個人の特性を特定できる数個の変数があれば匿名化にならない。撹乱的手法(ノイズ付加など)と非撹乱的手法がある。数学的定義は星野(2010)。変換である。有用性を保存しつつ匿名性を著しく増加させる場合、合成データは現実解。調査票情報からデータの分布モデルを推定し、その分布から確率標本を抽出すると、合成的匿名化ができる。Rubin (1993)による多重補定(または多重補完)が始まり。Rパッケージにはsimpopやsynthpopがあるが、これらは現実のミクロデータから直接合成データを作るパッケージなので日本の現行法上使えない。たどり着いたアイディアが、母集団全体のデータを取ってしまって、そこからサンプリングすれば良いのではということ。東京証券取引所の全データをSKWADとして学内向けシステム化(NEEDS、Osiris、Orbisを含む)。NEEDS財務データは日本の上場企業の財務諸表を含むデータが入っている。needs2021consというデータベースに接続し、SQLで抽出し、csvに書き出し、前処理して再びcsvに書き出し、データ抽出して解析。売上高、従業員数、モノ、資産の間に生産関数が成り立てば良い疑似データといえそう。売上高は対数をとっても歪んでいる。対数をとった後で非対称t分布っぽい。AICが非対称正規分布を当てはめたときより小さくなる。これで非対称t分布のパラメータがわかるので、パラメトリックブートストラップ法でデータ生成。できた疑似データの性状を調べたら、元データとほとんど変わらなかった。今後どのようにオープン化するかについては法的、システム的な問題が山積している。quantmodは株価データは良いが日本企業の財務データはとれない。
- 次は自分の発表(リンク先はプレゼンに使ったpdf)。ちょっと喋りすぎたかも。谷村さんが質問してくださりありがたかった。
- 7題目は谷村さん。空間統計の話。2021年の市区町村別脳梗塞死亡データの分析。疾病の地域集積性。GAMが古典。次がMoran's Iなど。空間スキャン統計量が新しい。Martin Kulldoff (1997)が提唱。RパッケージはDClusterなど多数(Cran Task Viewsでは、"Disease mapping and areal data analysis"と題してまとめられている)。kを変えながら近隣リストを構築し、地域集積検出結果がどう変わるかを調べるのが感度分析。k=3にすると山口、富山、東北に多い。k=5にすると富山が消える。k=7にすると山口も消える。東北に多いが、関東や中部もあるように見える。距離圏内法は中心点(ポリゴンの幾何的中心点。人口重心の方が良いという批判もある)に基づき決められた距離内を近隣として検出する。10km、20km、30kmと距離を変えるとリンク数やノード数がかなり変わる。10kmだと群馬辺りの1ヶ所のみ。20km、30kmと変えるとクラスターが増える。正解がないのでベストな条件は不明。そこで近隣判定を境界の共有で判定する方法が提案された。Queen法(1地点でも境界を共有したら近隣と判定)だと、東海、関東、東北にクラスターがある。Queen法の問題は、島嶼部が孤立すること。ただし、背景が異なるなら隣の島さえつながらなくても良いかもしれない。飛び地も難しい問題。瀬戸内海は複雑。地図データの精度で隣接判定に失敗する場合も出る。描画は簡素化されることが多いが、隣接判定は高精度の地図データでやるべき。edit.nb()やdroplinks()などの操作的関数+手作業による点検・修正するしかない。それでも島嶼や飛び地は意味合いを考えなくてはいけないので、課題として残る。死因統計でメジャーな脳血管疾患というくくりでなく、脳梗塞にしたのは、くも膜下出血のように遺伝要因が強く影響するものよりも、梗塞に絞った方が環境要因の影響が強く出てクラスターになりやすいと想定しているのかと思って尋ねてみたが、とくにそういう意図はなく、偶々の用例であるとのことだった。
- 休憩を挟んで8題目は山川さんで、AIと空間統計学を利用した地球情報解析。地球情報データは離散的な値。例えば10mグリッドとか飛び飛びの観測点とか。空間補間必要。空間補間に機械学習とバリオグラムとクリギングの使用を検討した、という発表。クリギングはgstatパッケージを利用して連立方程式を解く。バリオグラムのパラメータ推定はOLS(gstatではmethod=6)またはGLSを使ったが、解の収束によって使い分けた。次の話はMLアルゴリズムの1つであるSVMによるパターン認識(これを使って細い線が非線形で引かれているそうだ)。問題はSVMにはhyperparameterがあり、それが機械学習ではいかんともしがたい。hyperparameterのチューニングとしてクリギングの結果を使ったという話。観測値を学習することによって空間補間すると、クリギング法と同等の空間補間が行える。SVMもクリギングもユークリッド空間への適用が前提。地球は球面なので非ユークリッドであるため注意が必要。空間的なフィルタも必要。地形のモデリングで平滑化したモデルは昔から伝統ある。侵食前の地形を示すと考えられる。クリギングは元の点はすべて通るが、機械学習はそうでないので結果が変わる。傾斜度解析に利用可能。傾斜度ヒストグラムのピーク分離とか。
- 次は阪大の鈴木さんでグラフィカルモデルとLiNGAMというタイトル。新書『確率的グラフィカルモデルとLiNGAM with R』(まだ売られていないが)の著者。BNSLパッケージ開発。パッケージには処理がブラックボックス化する弊害も。BNSLはPCアルゴリズムの実装。「完全グラフから枝を切っていく」PCアルゴリズムは、まず、すべてのノードを無向辺で結んだ完全グラフから出発し、変数間の条件付き独立性の検定を行い、有意に独立な事象間のエッジを取り除いていく、というものらしい。cranのbnlearnパッケージが最もよく使われている。日本の商用ではBayoLinkがよく使われている。BNSLではRcppを使って高速化しているが、時間がかかるとかノード数が限られているといった制約のため、ほぼ研究にしか使われていない。LiNGAMは順序付けに使う。
- いやあ、知らないことがたくさんあるなあ。この集会に参加すると毎回感じることだが。
- 次は福岡女子大の梅崎さんによる、SVMによる航空機到着順予測、という発表。気象の影響が大きい。先行研究は藤田(2017)「航空機対比較による東京国際空港到着順予測」。方法論はそれを踏襲し、今回は福岡空港でも使えるかの検証を意図。CARATS OPEN DATAの2018-2020を利用。地理空間データはsfパッケージで扱った。天気概況は予測性能向上には役に立たなかった。
- 最後の発表は服部さんでClassification of Chubu dialectsというタイトル。中部地方(新潟、長野、岐阜、山梨に加え、群馬、静岡、愛知、滋賀、北陸3県も含む)855人(うち202人女性)の50歳以上の移住経験のない人たちの言葉(文字での記録)をデータとして分析。いまのところ、19の語彙を取り出した。まず言葉(カタカナ)をIPAに変換。標準語と比較。音声的な距離をALINE距離として測定(ここがR)。1000回のブートストラップ。random forestの結果からみると、群馬、長野、静岡はうまく分類できていない。県境をまたいで共通した言葉を喋る人がいる? (むしろ廃藩置県で強制的に後付されたグループである「県」内の多様性が大きい気もする―長野県内の北信と南信の違いの方が南信と名古屋の違いより大きいのは当たり前というか―のと、ほとんど共通語を喋っている人もいそうだが)affinity propagationの分析では、岐阜弁や富山弁は東側には広がって行っていない。石川弁は富山にも広がっている。金沢弁は新潟や滋賀など広い。浜松方言は愛知、長野、山梨、群馬にも広がっている。東側全体に広がっている方言もある。中央アルプスの東西で分断? 各クラスターの典型的な点がマップされる。HDBSCANを使うとまた違った結果が見えて、アルプスの東西で違うのが見える。次は音声データの分析をしたい。
- 続いてLTが2件。1つは徳島県の今井さんによる「Rによる甘藷害虫のフェロモントラップ誘殺数を用いたベイズ統計モデリングによる発生消長の予測」。ヨトウガのメスの性フェロモンを使ってオスを誘殺。過去10年間の誘殺数データから発生消長を推定。予測は可能か? まず状態空間モデルを構築し、それを反映する観測数のモデルも立てた。trainingデータとvalidationデータに分けてベイズ推定。2021年に応用可能性を検証。高い値が出たが、その後は平年並みに収束していくと予測された。ただし平年よりやや高くなるという注意喚起をした。8月に入って台風や長雨の影響が出て平年並みになった。モデルは石田さんがアドバイスした。もう1つはbob3bob3によるqeMLパッケージの紹介。機械学習に統一的なインターフェイスを提供するラッパー。qeはquick and easy。one linerで機械学習を実行できるのが売り。Norman Matloffさんが開発。バリデーションは勝手にやってくれる。チューニングもできる(グリッドサーチだけだが)。まだ開発中らしい。
- 立川駅の近くの店で懇親会があり、いろいろと会話を楽しんだ。が、JR中央線の20:03立川発の特快に乗るため、お開きになる前に帰途に就いた。ハイボール2杯しか飲んでいないのだが、東京駅まではかなり酔いが残ったので、のぞみ95号に乗ってからは1時間ほど眠っていた。
- 帰宅したら日付が変わっていた。疲れたけれども、東京での朝から晩までの研究会でも日帰り出張ってできるものなんだなあ。
(list)
▼前【1507】(オンライン会議とか(2023年12月15日)
) ▲次【1509】(買い物の他は身体を休める日曜(2023年12月17日)
) ●Top
Notice to cite or link here | [TOP PAGE]