DSおもちゃ箱 (original) (raw)

こんにちは、木の芽味噌です。

今回も、少しマイナーなデータ可視化手法についてのお話です。

今回ご紹介するのは、遺伝子発現データの分析でたびたび登場する『MA plot』になります。

遺伝子発現データ云々は置いておいて、MAプロットは一言でいうと、「共変量の平均的な大きさを考慮して2標本を比較するためのプロット」になります。

さっそく、どんなプロットかご紹介しましょう。

MAプロットは、多次元の共変量(遺伝子)を持つ2標本から計算される「M値」と「A値」を散布図で表現した、以下のようなプロットです。

ここで、M値とA値はそれぞれ以下のような意味を持ちます。

M値(対数変動):2標本の変数のログ比

 \displaystyle
M_i = \log_2 (b_i/a_i) = \log_2(b_i) - \log_2(a_i)

A値(平均発現量):2標本の変数のログをとった平均

 \displaystyle
A_i = 1/2 * \lbrace \log_2 (a_i) + \log_2(b_i) \rbrace

『発現量』という言葉や、底が2の対数をとった上で差や平均を計算するのは、バイオインフォマティクスにおける慣習ですが、このプロットで確認したいのはズバリ、「2標本に差があるかどうか」。

2標本に差がない場合、縦軸、M値は0の周辺に集まり、差がある場合は上下どちらか、あるいは両方にばらつきます。

ただしこの時、平均的に小さな共変量は、片方の標本の2倍、3倍といった値をとりやすいため、大きな共変量に比べて上下にばらつきやすく、MAプロットではそのことを考慮するために横軸、A値を参照します。

例えば対照群とコントロール群の比較において、A値が大きいにも関わらず、M値が大きい/小さい共変量がある場合には、それらの共変量がコントロール群を代表する共変量であるというような示唆を得ることができるのです。

いかがでしたか?

先述のとおり、MAプロットはもともと遺伝子発現データの分析で利用される可視化手法ですが、例えば株価の分析において、2つの異なる時間帯や市場間での株価の変動量と平均価格をプロットすることで、異常な変動を持つ銘柄を特定する、といった使い方をしてみても面白そうです。

今回もかなりニッチな手法を紹介しましたが、何かの役に立つことがあればうれしいです。

それでは、また!

こんにちは、木の芽味噌です。

今回は、少しマイナーなデータ可視化手法に関するトピックです。

タイトルにある『Lexis diagram』とは、2次元の生存時間データを概観するためのプロットです。

2次元の生存時間とはどういうことか、この後説明していきますね。

前置き

生存時間データというと、

などなど、ある起点から、イベントが発生するまでの時間に関するデータです。

このデータの一番の特徴と言えば、何らかの理由でイベントが観測されなかった、『打ち切り』の存在。

打ち切りデータは、本来はそれより後の時点でイベントが起きたはずなので、正しく観測された完全データと区別して考える必要があります。

なので、生存時間は、まずは下のようなプロットで概観することが多いです。

上のプロットで、●はイベントが観測された完全データ、×は何らかの理由で観測されなかった打ち切りデータを表します。

ここから本題!

生存時間解析は通常、1つの時間軸だけを分析の対象にしていますが、 実際問題、2つの生存時間を同時に分析したい場合も考えられます。

どういう事かと言うと、以下のような場合。

  1. 会社ができてから倒産するまでの時間 vvv を分析したい
  2. 同時に、会社の業績ピークから倒産するまでの時間 uuu も分析したい

上の例において、会社 iii が倒産するまでの2つの時間 viv_iviuiu_iui の間に、以下のような関係が成り立ちます。 v_i = u_i + b_i$$ この時、$b_i$ は会社ができてから業績ピークを迎えるまでの時間を表します。

こうした、2つの軸をもつ生存時間を同時に解析したい時の可視化に便利なのが、『Lexis diagram』になります。

Lexis diagramは、

以下のようなプロットです。

いかがでしょう。

Lexis diagramを、各時間軸に沿って見れば、どういった時点でイベントが多く発生しているか、一目でわかります。

また、$v_i = u_i + b_i$の関係も明快ですね。

この2次元の生存時間データをどう分析するかというのは、長くなるのでいずれ別の機会に紹介できればと思います。

それでは、また!

こんにちは、木の芽味噌です。

今回のトピックは、**統計学機械学習に関係のある慣用句やことわざ**です。

日常のふとしたタイミングで使いたくなるような、データサイエンスまわりの小粋な言い回しを思いつく限り集めてみました。

例えば、こんな感じ。

データは新しい石油である

現代において、新しい資源に匹敵するほど価値が高いとされるデータ。数年前からメディアでもよく言われており、界隈ではあまりにも有名なフレーズですね。

どんどん行きましょう!次も、非常に有名なフレーズです。

ガバッジイン、ガバッジアウト

質の悪いデータを使えば、結果も質が悪くなるという意味。データがあればなんでもいいわけじゃなくて、品質も重要です。

モデリングまわりだとこんな言葉もありますね。

全てのモデルは間違っているが、一部は有用である

モデルは所詮モデル。現実を完全に再現することはできないが、それでも役に立つ場合があるということ。統計・機械学習モデルの基本的な思想です。

モデルでいうと、こんな言葉もよく耳にします。

オッカムの剃刀

データサイエンスに限らず、哲学や科学の分野で広く引用される言葉です。シンプル・イズ・ザ・ベスト。データサイエンスの文面では、過度に複雑なモデルよりも、単純で説明力のあるモデルを優先するべきだという意味で使われます。

あわてもののアルファ、ぼんやりもののベータ

これは慣用句というより、語呂合わせ?覚えておけば統計学の仮説検定における第一種の過誤(αエラー)と第二種の過誤(βエラー)で混乱することはなくなりますね!

風が吹いたら桶屋が儲かる

日本の一般的な慣用句ですが、統計学で因果関係の話をするときに、よく引き合いに出されます。

次が最後になります。

データは嘘をつかないが、嘘つきはデータを使う

ひどい言われようですが、データを扱う身として胸に刻んでおきたい言葉ですね。

以上、いかがでしたか?他にもまだまだたくさんあると思うので、思いついたタイミングで適宜追加していきます。

お気に入りの言葉があればぜひ教えてください。

それでは、また!

こんにちは、木の芽味噌です。

VAE、Flow、GAN、Diffusionなど、巷を騒がせる生成モデルの数々...。

彼らの多岐にわたる応用範囲のうち、今もっともHOTなもののひとつが、『画像生成』です。

早い話、「こんなイラスト描いて」と注文すれば、AIがそれらしい画像を作ってくれるよ、というもの。

今回は、このブログのアイコン(↓)を、画像生成AIに作ってもらおう!という話です。

画像生成系AIサービスって、無料で使えるものもいろいろあるのですが、今回は有名どころ『Stable Diffusion』を利用させてもらいます。

Stable Diffusionといえば、2022年8月に無償で公開されたばかりの描画AIです。

作成した画像の権利がユーザーにあり、商用利用も可能なのがいいですよね。

Stable Diffusionをブラウザで遊べる『DreamStudio』もあるのですが、登録が面倒なので、サクッと遊べるHugging Face上のデモで試していきます。

huggingface.co

Stable Diffusionの使い方は簡単で、中央にあるボックスに英語で文章を入力し、Generate Imageを押すだけです。

このブログのアイコンを作ってもらおうということで、ひとまず

"Illustration of a toy box full of data science topics."

を入力して画像生成を行ってみようと思います。

かなり抽象的な入力ですが、果たしてうまくいくのか......。

10秒ほど待機すると...

出ました!

入っているのがデータサイエンスのトピックかはわかりませんが、なんだかアーティスティックでいい感じ。

テキスト等を変更してやり直すこともできますが、こういうのは一期一会。

ただアイコンとしては背景が少し暗いので、画像編集ソフトで手直しして...

完成!!

少し絵が細かい気もしますが、しばらくはこのアイコンにお世話になろうと思います。

忘れずに設定して...

うん。またこのブログに、少し愛着がわきました。

画像生成系のAIを使ったのは、実は今回が初めてなのですが、個人的にはすごく楽しかったので、また何かの機会に遊びたいなと思います。

それでは、また!

こんにちは、木の芽味噌です。

今回は最近Steamで見つけたゲームの紹介です。

その名も

『Graphwar』!!

store.steampowered.com

こちら、数学の関数を使って敵を撃つ「頭脳シューティングゲーム」になります。

ゲーム画面はこんな感じ(↓)

Graphwarのゲーム画面

Graphwarの遊び方はシンプル!

  1. プレイヤーはターンごとに、与えられた制限時間内に何らかの関数を入力します。
  2. 関数は自分のキャラクターを通るように平行移動された上で(y=f(x)ならy=f(x)+c)、グラフに出力されます。
  3. グラフ中に散在する黒いオブジェクトを搔い潜りつつ(あるいは壊しながら)、先に敵のキャラクターを撃ち抜いたプレイヤーの勝利!!

………面白い!!

使用できる関数も三角関数はもちろん、指数/対数関数や絶対値関数など多様で、高校数学の良い教材になりそうです(?)

複雑な関数で相手を撃ち抜いて悦に入ったり、時には短い制限時間に急かされて、貴重なターンを無駄にしてしまったり。

『Graphwar』は、非常にスリリングな知的格闘技と言えます。

さらに、1階/2階微分した関数を入力する高難易度モードもあり、やりこみ要素も満点です。

理系ならハマること間違いなし!控えめに言って神ゲーです。(しかも無料!)

昨今のコロナ禍で、リモート飲み会のお供といえば『ワードウルフ』や『おえかきの森』が定番でしたが、『Graphwar』も新たな選択肢に入るのではないでしょうか??

理系のお友達を誘って是非!遊んでみてください!

それでは、また!

はじめまして。木の芽味噌と申します。

新人データサイエンティストをしています。

このブログでは、私がデータサイエンスとその周辺の界隈で

面白いと思ったトピックの紹介

を低頻度で行っていきます。

よかったら読者様になっていただけると嬉しいです。

これからどうぞよろしくお願いします!