R言語付属のデータセットをアルファベット順(大文字優先)で眺めてます。今回のデータセット名は lh。luteinizing hormoneの頭文字みたいです。私にはまったく知識のない分野であります。正直、サッパリわかりませぬよう。そして頼りの処理例もなし。どうしたらよいの?テキトーに「処理」してみました。いいのかそんなことで。
※「データのお砂場」投稿順Indexはこちら
今回データセットの解説ページ
解説ページが以下に。血液サンプル中のluteinizing hormone(黄体ホルモン)とのことであります。
Luteinizing Hormone in Blood Samples
上記解説ページは極めて質素です。わかることは以下のみ。
-
- 誰とはわからぬ人間の女性の血液サンプルから得られた時系列データである
- サンプリング周期は10分毎で48サンプルの時系列データである
わたしは、黄体ホルモン、耳にしたことはあれどその意味を知らず。ネットで以下のページを読んでみましたです。あすか製薬株式会社様
分かりやすいページだと思うのですが、読んだからといって「わかった」わけでないです。Rで今回データを処理するにはサッパリだな。
まずは生データ
上記の解説ページの情報から、だいたい想像がつきますが生データのロード結果が以下に。
ついでに時系列プロットもしてみました。縦軸の単位すら不明。単位がわかったからといってどうなるというものでもないっすけど。
時系列データ、どうする
過去、時系列データというと、季節変動とか長期のトレンドとかに分離できるよなデータが多かったです。そのときのやり方そのままを、本 lh にも適用してみました。見事にエラーとなります。当たり前か。
なんといってもSTLのSはシーズンのSです。時系列データが年月日的な時系列に紐づいているなり、決まった測定サンプル数毎に周期性があるのであれば計算できるハズ。しかし今回のものはハシボーですな。時系列プロットみてもサンプル数毎の明確な周期性などわかりませぬ。
そこでこんどは、自己相関 ccf をとってみました。測定サンプル数毎の明らかな周期などあるのか?ccfの結果が以下に。
ううむ、CCFもダメそうですな。
ええい、ということでスペクトルをとってみることにいたしました。まずは以下で。
spec.pgram(lh)
グラフはこんな感じ。けっこうガタガタだけれども 0.1 (サンプリング周期を1Hzとして正規化した0.1Hzということで解釈してよいのかね。知らんけど。)付近に山が。
ガタガタのスペクトルを「スムース」にするのに「よくやられている」パラメータを指定してみると(意味わかんないケド)
spec.pgram(lh, spans=c(3,3))
グラフは以下のよう。なだらかになるといい感じがしてくるです。気のせいか?
ピークがあらわれるのは、0.1、つまりは 10サンプル毎くらいの周期の成分が「卓越」しとる、ということでしょうか。生プロットの波形をみるとそんな感じがしないでもないです。10サンプル=100分間であります。黄体ホルモンってそんな短い周期で大きく変動するものなのね?ホントか?