データ型・schema・provenance
このトピックを終えると
データを読む前に列のデータ型と単位を確認し、一行の意味をschemaに記録できます。外部データのaccession、ダウンロード経路、version、使用条件をprovenanceに残し、公開アクセスと自由な再配布を区別できます。
出発点:ファイルを開けば解析できるか
CSVファイルが開き先頭行が見えても、解析準備は終わりません。列名の意味、数値が測定値かコードか、一行が独立単位か反復測定かを確認します。データファイルは計算の入力ですが、研究質問と測定過程をすべて説明するものではありません。
sample_id、condition、value、date の表を考えます。value の単位、date が測定日か処理日か、sample_id が生物学的単位か単なるファイル行番号かが不明なら、統計計算は始められません。
schema:データの契約書
schemaは、データ構造と各fieldの意味を記録する契約です。
| field | データ型 | 意味 | 単位/許容値 | 欠測規則 |
|---|---|---|---|---|
sample_id | string | 解析単位識別子 | 事前定義ID | 空なら中断 |
condition | category | 比較条件 | A, B | 別コードなし |
value | float | 測定結果 | 文書に記した単位 | NA |
measured_at | datetime | 測定時点 | ISO 8601 | timezoneを記録 |
データ型は装飾ではありません。数値に見えるIDを連続変数として使えば、名前に大きさと順序を与える誤りになります。日付を文字列のままにすれば、時間順序や区間計算を誤ることがあります。データ型・単位・許容値・欠測表現をデータとともに固定します。
provenance:値はどこから来たか
Provenanceは、値が生成・収集・変換・保存された経路を追跡する記録です。外部repositoryから取得した場合は、少なくともaccession、原ページ、ダウンロード日時、file hash、変換段階、引用情報を残します。GEOとENCODEの公式案内も、accessionと出典引用を識別可能な記録の一部として扱います。
この記録はデータが「本物」であることを自動的に保証しません。どの入力を使い、どの変換を経たかを他者が再検討できるようにします。raw count を正規化値に変えたなら、変換codeと入力・出力fileを一緒に記録します。
権利とアクセス条件を分ける
公開webpageから取得できても、public domainまたは自由な再配布を意味しません。accessionはデータの識別子であり、licenseは使用条件です。同じfieldとして扱いません。
access: どこで確認できるかlicense: どの条件で使用できるかredistribution: file自体を再配布できるかattribution: 誰とどのprojectを表示すべきかprivacy/ethics: 教育用再利用に追加制限があるか
権利状態を確認できなければ、元fileをcontentに含めず、accessionと公式アクセス手順だけを案内します。idea・factとexpressionの区別は独立したcontent作成に役立ちますが、個別利用の法律判断を代替しません。
schemaとprovenanceを一緒に書く
一つのデータセットの最小manifestは、次のように構成できます。
dataset_id: example-001
source_type: synthetic | repository
accession: none | verified accession
source_url: canonical page
downloaded_at: ISO 8601
file_sha256: verified hash
schema_version: 1.0.0
transformations: []
license_status: verified | pending | restricted
redistribution_status: allowed | link_only | prohibited | unknown合成データではaccessionがないことも記録します。原本がないという意味ではなく、独自の生成規則、seed、生成code、出力schemaがprovenanceになります。外部データではsource URLだけを残すのではなく、使ったfileとversionを特定します。
研究質問に戻って解釈する
schemaとprovenanceを書けば、値がどの単位で、いつ測定され、どの変換を経たかを追跡できるため、解析結果の意味をたどれます。しかし完全なprovenanceが測定品質や研究質問の妥当性を自動的に証明するわけではありません。
反対に、出典と単位のない数値は計算できても解釈範囲が狭くなります。解析前にデータを受け入れない判断は、単に面倒な手続きではなく、結果がどの入力に依存するかを明らかにする方法です。
分析前に通す点検表
analysis_unitはcurriculumと研究質問の単位に合うか?- outcomeのデータ型・単位・測定時点は文書と表で一致するか?
- 全IDは一意性規則またはgroup構造を説明するか?
- カテゴリ値の表記差(
A,a,condition_A)はないか? - 欠測codeと除外規則は元manifestに残るか?
- 変換前後fileと実行環境を再び見つけられるか?
この点検は、データが完全かどうかを判定する手続きではありません。少なくとも、どの前提を確認し、どの前提を確認できなかったかを記録する手続きです。未確認項目は pending とし、解析結果への確信を強める表現を使いません。
provenanceを分析文に結ぶ
最終報告書でprovenanceを別の事務的な付録だけにとどめず、「この結果はどのデータから計算されたか」という問いに答えられるようにします。dataset_id、schema_version、transformations、file_sha256を結果manifestに結べば、同名fileが変わったとき旧結果と新結果を区別できます。
反対に、ダウンロード日だけを記録し、hashや変換段階を省けば、同じURLから異なるfileを取得したかどうかを確認しにくくなります。reproducibilityはseed一つで完成するのではなく、入力・環境・変換・出力をともに追跡できるときに近づきます。
よくある失敗と点検法
- filenameをaccessionやlicenseと誤解しません。
- 数値に見えるIDを測定値として使いません。
NA、空文字列、0を同じ欠測表現にまとめません。- 元本を上書きして変換前後を追跡不能にしません。
- 公開アクセス可能性を再配布許可として書きません。
要点
- schemaは行・列・データ型・単位・欠測を説明するデータ契約です。
- provenanceはデータの出典と変換経路を追跡する記録です。
- accession、license、redistribution、attributionは異なるfieldです。
- 合成データにも生成規則とversionを記録します。
- 権利または出典が不明なら元本を含めず公式アクセス経路だけを残せます。
次のトピックへ
次の記事ではデータの中心・散布・分布を詳しく可視化します。schemaと単位の確認後に品質点検を解釈できます。
参考資料
- NCBI GEO: https://www.ncbi.nlm.nih.gov/geo/info/
- ENCODE citing guidance: https://www.encodeproject.org/help/citing-encode/
- U.S. Copyright Office FAQ: https://www.copyright.gov/help/faq/faq-protect.html
- Creative Commons licenses: https://creativecommons.org/share-your-work/cclicenses/
本稿のschemaとmanifest例はBioStatPyが独立して作成した教育用構成です。