Rpackage

googlevis でいろいろ触れるプロットを作る

この記事はR Advent Calendar 2018 の24日目の記事です。 R でプロットするときに、標準ではgraphics のなかにあるplot を使ってべたなプロットを作ると思うが、最近ではggplot なんかが流行っている。 最近、プロット上にマウスカーソルを持ってくるとデー…

第113回医師国家試験を項目反応理論で解析します(予告)、の予備実験

予備実験用の解答サンプルシートはこちら 第112回から適当に20問とってきたもの。 ↓ https://docs.google.com/forms/d/e/1FAIpQLSfiLVA-1m7NC5SMmyi0X1ftSYJzhWuOac6kr-WMR8gKgFLWVA/viewform shiny 上でその20問の項目反応理論(IRT) ↓ https://yfujii08.shi…

ようやくShinyを使ってインタラクティブにパラメータをいじって遊べるシミュレーターをweb上にあげることができた

Shinyというhtml 上でいろいろパラメータをいじったものを即座に計算して描出するインタラクティブでなんかすごいアプリがあったのだが、rmarkdown と同様に手をつけることなく放置していた。 せっかちな人はこちら → https://yfujii08.shinyapps.io/pkpdsim…

gganatogram を使って人体を描く

こんなのを見かけた。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/w…

W杯の試合観戦中にトイレはいついくべきか

こんなツイートを観測した。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter…

ランダムウォークで乱数を生成する

機械学習のTA なのに機械学習素人なので機械学習と統計の講義を聞いている。 多次元な確率分布から乱数をいい感じに取ってくる方法に、ランダムウォークを使う。 多次元な確率分布としては、単純に2次元正規分布、とする。二次元の正規分布は、x1 とx2 のそ…

グラフの検定

グラフの相同性とか統計量とかの話で、cug.test という検定を後輩から教えてもらった。 sna パッケージでできる。 グラフ隣接行列からランダムな隣接行列を作りまくって分布を作成して、p値を計算するらしい。 グラフとしてはこんな感じで 検定は以下のよう…

Grid Error Analysis

糖尿病の研究をしたいという知り合いから、Grid Error Analysis をしたいのだが、という相談を受けた。 ぶっちゃけ聞いたことがなかったが、要は糖尿病患者が自身で簡易血糖観測器を用いて測定した血糖と、本当の血糖の値が正しいかどうかを考えているだけ。…

帰無仮説検定で有意になった項目についてROC 解析をしてください

と査読で言われた。 状況設定としてはこんな感じである。いま、とある検査項目 (連続量)について、予後を予測するマーカーになるか検討したい。ここで、デザインとしてはとりあえず研究を立ち上げてみました、というような後ろ向き観察研究で、予後転帰が…

oscillation (振動)を検定する

この記事は 今年読んだ一番好きな論文2017 Advent Calendar 2017 の2日目が空いているということにこの記事を書いてから気づいて、1000円相当の参加賞があることに目がくらんで加筆修正した記事です。2017年で一番好きかというとそうでm(ここで文章が途絶え…

Python っぽい感じでうまくクラスの概念を使ってR を書きたい

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者: 斎藤康毅出版社/メーカー: オライリージャパン発売日: 2016/09/24メディア: 単行本(ソフトカバー)この商品を含むブログ (18件) を見る写経しながらR で書き換えつつやってみ…

高次元データを次元削減したうえでクラスターを真面目に検出する

読んだ。 ClusterSignificance: a bioconductor package facilitating statistical analysis of class cluster separations in dimensionality reduced data Bioinformatics. 2017 Oct 1;33(19):3126-3128. オミックス解析などをすると複数パラメータの高次…

OmicCircos

読んだ。 Cancer Inform. 2014 Jan 16;13:13-20. オミックス研究では、各染色体でのCNVや遺伝子発現状態、各種統計量の定量値や分布などをずらずらっと描きたいが、横に長く描くといけてないと誰かが思ったのだろうか、丸く描くやり方がある。 これをcircos …

matlab のjet カラーを使いたい

R でいい感じのグラデーションを作ろうと思ったらたいていrainbow を使うのだが、rainbow を使うと先頭が赤、末尾が紫なので色が同系統で混同する。 matlab のjet.colors が赤〜青のグラデーションなのでよさそう、と紹介されたのだが、matlab にしかはいっ…

violinplot の上半分だけ欲しい

5000兆円ではなく、violinplot の上半分だけほしい。 上も下も同じ形なので、どちらかがあればよい。そうすれば、stan の事後分布とかにもいい感じで使える。 たぶんggplot2 にはよさそうなものがありそうだが、vioplot パッケージを流用して使おうと思った…

勾配法による最適化

ある関数があって、最小化もしくは最大化したい。これらは正負を入れ替えればよいでの最小化を考える。 いま、適当に という関数があったとする。これの最小値とそのときのの組を求めたい。 2変数なので3次元に図示するとこんな感じである。最小値はひとつ定…

ボクセルデータから形を構成する

蛍光イメージング動画があって、そこから細胞の3次元の形を再構成したい。 手順としては、 蛍光イメージの取得:他力本願 2Dでのセグメンテーション:他力本願、大津法 セグメンテーションされた領域の抽出:openCV セグメンテーションされた領域内で欠けて…

Bias-Variance decomposition

機械学習などで予測モデルを立てたときに絶対に突っ込まれるのが「それ他のデータセットでも言えんの?」ということで、モデルの性能を評価しないといけない。一般的には手持ちのデータからモデルを作って、それとは別のデータに対してそのモデルが有用かとい…

ベイジアンネットワーク

読んだ。 Bioinformatics. 2016 Dec 21. pii: btw807. ベイジアンネットワークをやるbnstruct というパッケージを作りましたという話。 ベイジアンネットワークをやるならbnlearn が有名だが、bnstruct は欠損値があってもできるとのこと。 Bayesian Network…

Computational single cell analysis

いくつか読んだ。 FCM やsingle cell trinscriptome などの一細胞解析で、多次元行列データが得られるが、それを機械的に解析する手法をいくつかまとめて読んだ。 R で実装されているものは頑張ってみたかったが、bioconductor でインストールしてもlibrary(…

Rmd でreveal.js のhtml スライドプレゼンテーション

Japan.R 2016 が終わりました。参加された方々はお疲れ様でした。 発表者不在というなんとも謎なLT をしたやつがいたらしいですが、Rmd でRpresentation を作って自動プレゼンするやり方について。 自動プレゼン自体はppt にも実装されています。リハーサル…

Biclustering

読んだ。 Bioinformatics. 2016 Oct 6. Nucleic Acids Res. 2009 Aug;37(15):e101. Biclustering をするQUBIC という手法をR で実装しました。クッソ速いです、とのこと。 そもそもbiclustering とはなにかというと、ヒートマップクラスタリングをするときに…

iCluster: オミックスデータの統合

読んだ。 Bioinformatics(2009)25(22):2906-2912. コピーナンバー(CNV)、発現データ(mRNA)、メチル化などのオミックスデータで、症例数 に対してパラメータ数 のデータ行列が複数ある。 各々の実験を勝手にやるのは、それはそれでいいが、CNV、発現、メチル…

minimal Hypergeometric (mHG)

読んだ。 Cell. 2016 Sep 8;166(6):1500-1511.e9 TIL (Tumor infiltrating lymphocyte) の発現解析をして、Activate/Dysfunction の順位付けをしている。 その中でminimal hypergeometric というものがあった。 Gene Ontology 解析ではannotation が有意に出…

Distatis: 距離行列が複数あるときに元のデータの関係性を推定する

読んだ。 Proceedings of the IEEE Computer Society: International Conference on Computer Vision and Pattern Recognition. 2005. pp. 42–47. Food Quality and Preference, 2007, 18, 627–640. 複数の距離行列が与えられたとき、元のデータの関係をMDS …

援助交際してそうなアニメキャラランキング2016をstanで考える

注意:本解析の結果と、実際に声優がそうであるかはまったく関係がありません。 援助交際してそうなアニメキャラランキング2015をstanで考えたことがあったのだが、2016年度版も集計されたので解析してみる。 2015年は以前にもやったが、2016年度分はスレを…

球面調和関数をR でやる

球面調和関数をrPython でやっていたが、R だけで完結するほうが、rPython に投げてやりとりするより圧倒的に高速かつ安定なので、頑張ってR でやった。 ゴールとしては、 となる係数 を求めることだが、これはルジャンドル陪関数が直交するという性質を利用…

Precision and Recall

機械学習の分野で分類性能の評価に適合率と再現率というものがある。 医学分野での分類には、たいてい病気/非病気のラベルの分類にはReceiver Operating Characteristic (ROC) 曲線と曲線下面積AUC を使うが、情報系ではPrecision-Recall curve (PRC) とF1 …

リストの中に行列があってそれをくっつけてテンソルっぽくしたい

こんな感じで、リストの中に行と列の数が等しい行列があったとする。長さは簡単のため2にしている。 a <- mapply(function(z) matrix(z, 2), list(1:6, -(1:6)), SIMPLIFY=FALSE) [[1]] [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 [[2]] [,1] [,2] [,3] [1,] -1 …

Spike-and-slab

読んだ Nat Genet. 2016 Aug 1. 様々なデータを取ってきて、遺伝子との相関があるかを解析するわけだが、サンプルの人数、組織、遺伝子の3次元をサンプル×要素(component やfactor と呼ぶ)と要素×遺伝子の行列に分解することで、テンソル分解してデータの構…