試験シラバス
セクション1:データとデータ分析の基礎概念
出題数 → 9 問
データの定義と分類
1.1.1 – データの定義と分類
- データの定義と意思決定、ビジネス、日常生活における役割の説明
- データ、情報、知識の違い、および生データが処理・解釈によって意味をもつ仕組みの説明
- 生データを意思決定に活用できる洞察へと変換する流れの説明
1.1.2 – データの型と形式による分類
- 定量データ・定性データへの分類と識別
- 構造化データ、半構造化データ、非構造化データを実世界の例を用いて区別
データソース・収集方法・保存方法の説明
1.2.1 – データソースと収集方法の特定
- API、Webページ、データベース、IoT機器、調査、ログなどさまざまなデータソースの特定と説明
- 調査、インタビュー、観察、自動化システム、Webスクレイピングなどの代表的なデータ収集方法の説明
- 代表サンプリングの役割、および偏った・不完全なデータの影響に関する説明
- 定性・定量研究の各収集技術の長所・短所の比較
1.2.2 – データの保存と整理方法の説明
- データの形式(CSV、JSON、Excel、データベース)や保存システム(データレイク、ウェアハウス、リレーショナルデータベース)の説明
- メタデータの役割、データの型・構造・用途に応じたストレージソリューショの比較
- 構造・規模・用途に応じた最適なストレージオプションの評価
データのライフサイクルとその管理の説明
1.3.1 – データライフサイクルの説明
- データライフサイクルの各段階;収集、保存、処理、分析、可視化/レポート、アーカイブ、削除のリスト化と説明
- 各段階でのエラーが、結果や意思決定に与える影響の説明
- ライフサイクルの各段階に関連するツールや技術の特定
1.3.2 – ライフサイクル管理の価値と課題の検討
- 品質・セキュリティ・コンプライアンス保証における、ライフサイクル全体を管理する重要性の説明
- 大規模データ管理における課題と対応策(例:クライドストレージやデータパイプライン)の説明
データサイエンス・分析・解析の範囲理解
1.4.1 – データ分析・データアナリティクス・データサイエンスの違いの理解
- それぞれの定義と関係性の説明
- 実例を用いたそれぞれの範囲、使用ツール、目的の比較
- 各領域におけるプロフェッショナルの役割と責任の説明
- 各分野に該当する典型的なタスク(例:要約統計量と機械学習モデリング)の特定
1.4.2 – データアナリティクスのワークフロー
- アナリティクスの4大分類の説明:記述的・診断的・予測的・処方的
- 各種類のアナリティクスが答える質問と、ビジネス上の重要性の説明
- データアナリティクスの主要プロセスの説明:データ収集・事前処理・分析・レポート
- 各アナリティクスごとに、実際の現場でのシナリオ例を対応させる
データアナリティクスにおける倫理・法的配慮
1.5.1 – 重要な倫理原則と法的枠組み
- データ取り扱いにおける透明性、同意、プライバシー、公平性、責任の説明
- 主要な法規(GDPR、HIPAA、CCPA)の特定および責任あるデータ利用の指針の説明
- 匿名化や暗号化などの倫理的・公的準拠を支える手法の説明
セクション2:データ分析のためのPython基礎
出題数 → 13 問
変数とデータ型の操作
2.1.1 – 変数やデータ型の活用と基本演算の実施
- 代入演算子「=」で変数を定義・代入
- 数値の基本的な演算(加算・減算など)、文字列の操作(連結・繰り返し)を行う
- type() や instance() で変数の型を調べる
- 代表的なPythonデータ型(int、float、str、bool)の識別
Pythonのデータコレクションとシーケンスの活用
2.2.1 – リストの作成と操作
- インデックスやスライスでリスト要素にアクセス
- append()、insert()、pool()、remove()、sort()、reverse()、count()、index() などでリストを操作
- リスト内包表記を用いてデータ変換や抽出処理を行う
2.2.2 – タプルと集合の操作
- インデックスでタプル要素にアクセス
- タプルの不変性とリストの使い分けを説明
- 集合の作成、および add()、remove()、union()、intersection()、isdisjoint()、difference() などの集合を操作
- 集合による重複排除や要素確認を行う
2.2.3 – 辞書(dict)による保存・集約・検索
- キーと値で辞書を作成
- キーを用いた値の参照・更新・削除
- for...in構文やitems()メソッドを用いた、辞書内の要素(キーと値)のループ処理
- 辞書を用いた集計、検索、カテゴリ分け
- データを辞書のリストとして表現
2.2.4 – 文字列をシーケンスとして扱い、文字列メソッドを応用
- 文字列のインデックス・スライス・ループ処理
- startswith()、endswith()、find()、capitalize()、isdigit()、isalpha() などの文字列メソッドの利用
関数と例外処理
2.3.1 – 関数の定義と呼び出し
- def を用いた関数を作成し、引数(位置引数、キーワード引数、デフォルト引数)を渡す
- 戻り値に関する説明と、return を使わない場合は関数の戻り値としてNoneが返されることについて解説
- pass を関数本体に記述がない場合のプレースホルダーとして使用
2.3.2 – 関数におけるスコープと変数の動作の理解
- ローカル変数とグローバル変数の違いの区別
- 関数内における名前のシャドーイングと変数のスコープについて説明
- グローバル変数の適切な利用に関する理解
2.3.3 – try-except ブロックを用いたエラー処理
- TypeError、ValueError、IndexErrorなど、代表的な実行時エラーの特定
- try-except構文を用いた、スクリプトのクラッシュの防止
- デバッグ用に有用なエラー内容の print 出力またはログ記録
条件分岐とループによるプログラムフローの制御
2.4.1 – ブール論理と比較の活用
- 条件分岐における比較演算子および論理演算子の使用
- ブール式を用いたデータのフィルタリングや入力値の検証
2.4.2 – 条件分岐による処理の制御
- if、elif、else文を記述
- 欠損データ、外れ値、不正な入力値を検出
- 複雑な判断が必要な場合に、入れ子構造を活用
2.4.3 – 繰り返し処理の記述
- for文・while文の使用
- break、continue、else句のループにおける適切な使用
- 条件分岐と組み合わせた、繰り返し処理によるデータ操作
モジュールとパッケージの利用
2.5.1 – Python モジュールとパッケージのインポートと利用
- import、from…import、およびエイリアスを用いた組み込みモジュールのインポート
- math、random、statistics、collections、os、datetime などの標準ライブラリの使用
- csvモジュールを用いたCSVファイルの読み書き
- 組み込みパッケージとサードパーティパッケージの適切な使用の理解
2.5.2 – 外部ライブラリをデータ処理ワークフローに利用
- pipを用いた外部ライブラリ(例:numpy)のインストールおよびインポート
- numpyを用いた配列操作と数値分析
- 組み込みパッケージとサードパーティライブラリの違いの理解
セクション3:データの操作と基本的な分析
出題数 → 13 問
ファイルを用いたデータの読み書き
3.1.1 – Pythonの組み込み機能を用いたテキストファイルの読み書き
- open()、read()、readlines()、write()を用いたテキストファイルの取り扱い
- with文を用いたファイルの安全な取り扱い
- os.path.exists() を用いてファイルパスを扱い、ファイルの存在を確認
- ファイル関連エラーを try-except ブロックで処理
3.1.2 – csv モジュールを用いた CSV ファイルの読み書き
- csv.reader() を用いた CSV ファイルの読み込み
- csv.writer() を用いたデータの書き出し
- strip() や split(‘ , ‘) を用いた行の整形と解析
- f-strings を用いた整った出力形式の結果を書き出し
分析のためのデータクリーニングおよび整形
3.2.1 – 欠損値や無効なデータの処理・特定
- 条件分岐やリスト内包表記を用いた、欠損値や null に近い値の検出
- 論理チェックを用いた欠損値の置き換えまたは削除
- データ処理前の、無効な型・想定外のフォーマット・範囲外の値の確認
3.2.2 – 重複データの除去と値の正規化
- set()、辞書のキー、または内包表記を用いた重複の削除
- 最小値・最大値正規化を手動で行う
- enumerate 関数を用いてインデックスを付けて処理や変換を行う
3.2.3 – 文字列のクリーニングおよびフォーマット
- strip()、lower()、upper()、replace()、title()を用いたクリーニング
- 複数の文字列を連鎖した、多段階のクリーニング
3.2.4 – 分析/保存用途に応じたデータ変換・整形
- int()、float()、str()、bool() を用いたデータ型の変換
- f-strings を用いて数値をフォーマット
- split() と join() を用いた文字列の操作
- datetime.strptime() と strftime() を用いた日付の処理
基本解析・計算処理
3.3.1 – Pythonの組み込み関数による集計処理
- len()、sum()、min()、max()、round() を用いたデータの要約
- count() や辞書メソッドを用いた値のカウント
3.3.2 – 組み込みライブラリによる記述統計量の計算
- statistics.mean()、statistics.median()、statistics.stdev() の使用
- math.sqrt()、math.ceil()、math.floor() の使用
- collections.Counter() を用いた頻度のカウント
3.3.3 – Numpy による数値演算
- numpy.array()を用いた配列の作成
- numpy.mean()、numpy.median()、numpy.std()、numpy.sum()の使用
- numpy.arange() と numpy.linspace() を用いた数列の生成
3.3.4 – 条件付きメトリクスの計算(フィルタ・カテゴリ基準)
- if文やリスト内包表記を用いたメトリクスのフィルタリング
- カテゴリごとのグループ化および辞書やループを用いた集計と要約
- 複数の条件を組み合わせた、論理条件の使用
基本的な探索的データ分析(EDA)の実施
3.4.1 – ソートとフィルタを用いたパターンや傾向の特定
- sorted() や numpy.sort() を用いたデータの並べ替え
- filter()、リスト内包表記、論理条件を用いたデータのフィルタリング
3.4.2 – 固有値と頻度の特定
- set() や numpy.unique() を用いた異なる値の特定
- Counter を用いた頻度のカウント
3.4.3 – 簡単な相関チェックと外れ値の検出
- numpy.corrcoef() を用いた相関の計算
- 単純なルールや条件分岐を用いた外れ値の検出
- numpy のブーリアンインデックスを用いた外れ値のフィルタリング
- コードによる検索で見つかった異常値の解釈
セクション4:洞察の共有とレポート作成
出題数 → 5 問
データ可視化における基本原則の理解
4.1.1 – 一般的な可視化の種類と目的の認識
- 棒グラフ、折れ線グラフ、円グラフの特定
- 各タイプの適切な使用状況の説明
- 各可視化タイプの長所と短所について議論
4.1.2 – 単純なデータ可視化の解釈
- 基本的な可視化に示された傾向、比較、割合の説明
- 誤解を招く、または不明瞭な可視化の特定および改善方法の説明
- 可視化が意図した洞察をサポートしているか、混乱を招いていないかの評価
データストーリーテリングの基礎を適用
4.2.1 – データから得られた洞察の構造化と伝達
- 導入・洞察・結論の説明
- 根拠に基づく主要メッセージの提示
- 流れを作るつなぎやサインポストの使用
- 対象者の知識やニーズに応じたトーンや深さの調整
明確で簡潔な分析レポートの作成
4.3.1 – 分析結果の効果的な要約と整理
- 裏付けデータを用いて短くまとめる
- 問題、分析、洞察、推奨という論理的な構成の使用
- 見出し、箇条書き、可視化を用いて明確さと読みやすさを向上
プレゼンテーションにおける洞察の効果的な伝達
4.4.1 – 視覚・言語技術を用いたデータから得られる洞察の明確な伝達
- 洗練されたデザイン原則(ラベル、タイトル、色、フォントサイズ)の使用
- プレゼンテーションにおけるグラフや結果の明確な説明
- 可視化や数値結果の証拠を用いた質問への応答