【読了】Pythonではじめる会計データサイエンス
本書の対象読者
・大手企業の経理部員
・監査法人対応をしている
第1章 会計データサイエンスの準備
会計データサイエンスとは
・会計データを使って課題解決する
・分析結果をビジネスにフィードバックする
・3要素:数学/IT/ビジネス
例
当期の人件費を推測する
仕訳の段階では起票時刻・区分・摘要欄・顧客属性などの管理会計的・ビジネス的な情報と紐付いているが、財務諸表の段階では財務会計的な情報しか残らなくなる
第2章 Python入門
Google Colaboratory
Pythonにはデータサイエンス用のライブラリがたくさんある
NumPy
・数値計算、乱数生成、行列計算
・C言語で実装されている(データ型がある)
pandas
・2次元データ(DataFrame)の処理
・データの前処理
・抽出、結合、集約
・変換
Matplotlib
・2次元グラフの描画
・EDA(探索的データ分析)の手段としてデータの特徴を可視化する
scikit-learn
・機械学習
機械学習アルゴリズムの分類
・教師あり学習
・分類:ロジスティック回帰、SVM、k-近傍法、決定木
・回帰:線型回帰、多項式回帰、ラッソ回帰、リッジ回帰、SVR
・教師なし学習
・クラスタリング:k-means法、階層型クラスタリング
・次元削減:主成分分析(PCA)
keras
ニューラルネットワーク
精度のみを追求した予測モデルの構築作業は簡単になってきている
第3章 数学入門
主要な確率分布の会計的な意味
二項分布:B(n,p)
・一定確率pで成功する試行が、n回中k回成功する確率
・内部統制のサンプルサイズを算定する時に使う
ポアソン分布:Po(λ)
・ある期間に平均λ回起こる現象がk回起こる確率
・二項分布は、np=λ(一定)と置き、n→∞、p→0の時、ポアソン分布に近似できる
・母集団の予想逸脱率が十分に小さく、サンプルサイズが十分に大きい場合において、金額単位サンプリング時のサンプルサイズを算定する時に使う
正規分布:N(μ,σ^2)
・誤差は正規分布に従うと仮定されることが多い
指数分布
・低い確率で起こるランダムな事象が、次に発生するまでの時間間隔が従う分布
ガンマ分布
・指数分布を一般化したもの
・金額単位サンプリングのサンプルサイズを算定する時に使う
ベータ分布
・ベイズ推定時の事前分布として使う
グラフ
ヒストグラム
・ボックスプロット(箱ひげ図)
・バイオリンプロット(バイオリン図):カーネル密度推定(KDE)を使って、ヒストグラムをなめらかにしたもの(区間数による見た目の変化を緩やかにする)
複数変数間の分析
散布図
・投資金額と事業利益(投資利益率)の関係
要約
・共分散S_xy、相関係数r
・次元削減
推論
仮説検定
・片側検定:監査サンプリングテストに使われている
・両側検定:母数が目標値と等しいか?製造した製品の性能が一定範囲の目標値に収まるか?
A/Bテスト
・データ分析の実務でRCTを実施する方法
第4章 監査で使われる統計的サンプリングツールを実装しよう
(監査におけるサンプリング/統計的サンプリングの手法/実装 ほか)
内部統制監査の時に請求書を25件サンプリングするのは何故なのか?
財務諸表監査の時に残高確認状は25件ではなくていいのか?
Pythonを使うことで、データ加工の手続をスクリプト化でき再現性を維持できる(Excelには難しい)
試査の種類
・特定項目抽出
・サンプリング
・統計的サンプリング
・非統計的サンプリング
サンプリングによる試査のステップ
①母集団を特定する
②サンプルサイズを決定する
③サンプルを抽出する
④抽出したサンプルをテストする(原始証票との突合など)
⑤母集団の特性を評価する
・サンプルサイズ(標本集団における要素数):sample size
・サンプル数(抽出した標本集団の数):a number of samples
属性サンプリング(内部統制)
サンプルサイズを算出するためのパラメータ
・許容逸脱率pt:監査人が許容可能な当該コントロールからの逸脱率
・予想逸脱率pe:母集団に存在すると予想されるコントロールからの逸脱率
・予想逸脱数ke:サンプルサイズn×予想逸脱率pe
・有意水準α:帰無仮説を棄却する基準として使う確率、信頼度=1-α
仮説
・帰無仮説H0:予想逸脱率=許容逸脱率
・対立仮説H1:予想逸脱率<許容逸脱率
サンプルサイズ算定関数の実装法(期待件数法?)
・サンプルサイズ=1から開始して、「帰無仮説に基づく二項分布」の累積分布関数(cdf)を算出して、αを下回るまでサンプルサイズを1ずつ増やしていく
・例①:以下の場合、必要サンプルサイズは29件になる
・許容逸脱率pt=0.1
・予想逸脱率pe=0
・予想逸脱数ke=0
・有意水準α=0.05
・例②:以下の場合、必要サンプルサイズは25件になる(82号「日常反復継続する取引について、統計上の二項分布を前提とする」場合)
・許容逸脱率pt=0.09
・予想逸脱率pe=0?
・予想逸脱数ke=0?
・有意水準α=0.1
仮説の検証
・抽出したサンプルをテストして、逸脱数をカウントする
・「帰無仮説に基づく二項分布」を図示して、逸脱数に対する確率がα未満かどうか確認する
・α未満になった場合、「逸脱率になる確率が低すぎる」=「分布の前提としていた帰無仮説が誤っている可能性が高い」と判断して、帰無仮説を棄却する
金額単位サンプリング(財務諸表監査)
前提条件
・母集団金額N:760,890,000円
・許容虚偽表示金額(重要性の基準値)pm:40,000,000円
・予想虚偽表示金額:0円
・有意水準:5%
サンプリングのステップ
①サンプルサイズの算定:前提条件の場合、57件
②母集団の並び替え:系統的抽出法においてもランダムサンプリングを行うため
③母集団をサンプリング区間にグループ化(系統的抽出法):金額単位=母集団金額/サンプルサイズ
④サンプルの抽出:各サンプリング区間における先頭要素をサンプルとして使う
例
サンプル証票ID|サンプル証票名|証票金額|累積金額|所属するサンプリング区間|サンプルに該当するか
第5章 会計データの特徴を理解して将来の売上を予測しよう
(時系列データ分析/将来の売上の予測/会計データとビジネスデータの複合 ほか)
・時系列データには季節性変動がある
・効果的な分析を行うためには、会計データとビジネスデータの保存に工夫が必要
仕訳データの特徴
・構成要素
・勘定科目:ラベル
・補助科目:ラベル
・計上部門:ラベル
・金額:数値(勘定科目の増減値)
・消費税額:数値
・消費税区分:ラベル
・計上日:日付時刻(帰属する会計年度を示す日時)
・摘要:テキスト
・勘定科目ごとに計上される金額は1つのみ(点推定や期待値)、見積もりの要素がなければ、金額の測定誤差はほぼない
・見積もりの要素がある場合、本来、金額は予測分布を成しているはずである(しかし、実際の財務諸表上では、不確実性は注記のテキストデータとして開示されるのみである)
・取引は1日に何件発生するかまちまちで、発生タイミングが密な時間帯も疎な時間帯もある(点過程データ)が、仕訳データは等間隔(日次)で記録されたデータ(時系列データ)である
時系列データの特徴
・時系列データは、自己回帰型モデルとして考えると、以下の構成要素に分解できる
※自己回帰型:時点の違うデータと相関を持つという前提に基づく。つまり、コロナなどの突発的な変動は考慮できない。
・季節変動:同一サイクルで繰り返される固定的な変動
・傾向変動(トレンド):季節変動を除去するとわかる長期的な増加/減少
・不規則変動:上記の要素では説明のつかない変動
・自己回帰型モデルの種類
・ARモデル(自己回帰):Autoregressive
・MAモデル(移動平均):Moving Average
・Iモデル(和分モデル):Integrated
・ARMAモデル(自己回帰移動平均):AR+MA
・ARIMAモデル(自己回帰和分移動平均):AR+I+MA
・SARIMAモデル(季節変動自己回帰和分移動平均):Seasonal AR+I+MA
・ARCHモデル(不均一分散性自己回帰モデル):Autoregressive Conditional Heteroscedasticity):ファイナンス領域でボラティリティ変動などを表現するために使う
会計データには、例えば売上に結び付かなかった営業活動の情報が載らないため、売上数値だけを見ていても、営業活動を改善する洞察は得られないことが多い
そのため、売上を出すためにどれだけの費用をかけたのか、どんな活動をしたのか、顧客、商品、などのビジネスデータを関連づけて管理しておく必要がある
第6章 会計データを使って機械学習に挑戦しよう
(機械学習の概要/機械学習の実践/会計データを用いた機械学習における課題 ほか)
k平均法(教師なし学習)によるクラスタリング
・原価計算における製品グループの分類:利益率や原価差異などを軸として散布図を描く
k近傍法(教師あり学習)による分類
会計データを用いた機械学習における課題
会計データは観測頻度が低いので、機械学習で精度が出しにくい
会計データは公開されにくい
ビジネスにデータサイエンスを適用するためのステップ
①ビジネスの理解:課題は何なのか?(課金ユーザを増やしたい)
②生データの収集
③データ分析基盤の構築:クラウドで構築可能
④モデルの構築:分析方法の選定
⑤モデルの評価:実務に適用してフィードバックを得る
第7章 会計データの異常検知をしよう
(異常検知の問題設計/異常検知の実践/教師データを用いた異常検知/潜在的な規則性による異常検知 ほか)
異常検知の例
・クレカの不正利用検知
・工場における異常音検知
・医療における症状変化の検知
異常検知は、分析手法ではなく、応用形態である
例えば、回帰分析は予測にも異常検知にも使える
異常検知問題の区分
①正常データと異常データのどちらも定義可能:教師あり学習(ただし、不正を含む財務諸表はそもそも少ないため、正常データに偏ってしまう)
②正常データのみを定義可能:典型的な異常検知
③異常データのみを定義可能:仕訳テストなど(不正な仕訳の兆候が明らかになっている)
正常データを定義する方法
・業務知識に基づいて、正常データの範囲を定義する:例えば、過去の実績データは正常データであると見なす
・ニューラルネットワークを使って正常データの特徴量を自動で発見する
仕訳テストにおける虚偽仕訳の特定
①虚偽が疑われるパターンに該当する仕訳(異常仕訳)を検知する:虚偽の仕訳を具体的に定義することは困難であるため
②異常仕訳に対して仕訳の根拠(原始帳票)と突合する
機械学習による異常検知のために学習データが不足している場合
・手元にあるデータでなんとかする:業務知識に基づいてパラメータを決めてしまう
・類似の大規模データを使って学習してから、本命のデータで学習する(転移学習、ファインチューニング)
第8章 データサイエンスを意思決定に活用しよう
(投資意思決定の分析と課題/モンテカルロ・シミュレーションの概要/ベイズ統計による不確実性のモデリング/自己回帰モデルによる在庫予測/ロジスティック回帰モデルによる貸倒予測/生存時間モデルによる将来キャッシュフローの予測 ほか)
ベイズ統計モデリングが活用できる
観測値やデータに関する業務知識によって、パラメータの分布を推定し、観測値の不確実性を絞ることができる
MCシミュレーションによる投資意思決定
投資の意思決定には、伝統的にNPV法が利用されてきた
しかし、NPV法では、事前に想定した固定的なシナリオ(キャッシュフロー)しか検討できないという限界がある
そこで、モンテカルロシミュレーションにより、乱数を用いてシナリオを大量に作成し、シナリオ群に対する「キャッシュフロー分布」を計算する方法が注目されている
ベイズ統計の活用
MCシミュレーションは、CFの観測値が正規分布に従うことを前提としている
ベイズ統計を使うことにより、この前提を外すことができる(予測分布を計算できる)
ベイズ推論では、観測データに基づいて、パラメータの事後分布を算出する
ただし、事後分布の厳密な計算は難しいため、MCMC法で数値計算(近似)する
自己回帰モデルに基づく出荷数量の時系列予測
ロジスティック回帰モデルに基づく売掛金の貸倒予測
モデルの評価
・定性評価:モデル自体の設計が、データの生成過程の知識を忠実に反映しているか?
・定量評価:モデル性能を比較する基準としても使える、ROCカーブのAUCなど
どんなに単純なタスクでも、要求精度が100%の場合は、機械学習は導入しにくい
(誤判定が発生した場合の責任を整理したり、誤判定による損失リスクに対応する必要があるため)
機械学習の判定結果を人間がレビューする等の対策が必要になる
一方で、要求精度がある程度であれば、複雑なタスクでも機械学習は導入しやすい
例えば、機械翻訳は、ある程度の精度なら、人間が解釈可能なため、実用化されている
生存時間モデルに基づくサブスクサービスの将来CF予測
・カプランマイヤープロットで、ユーザ離脱イベントの発生時間を可視化
・ワイブル分布で、離脱ユーザ数の推移を可視化
・生存時間パス×月単価により、LTV(生涯価値、lifetime value)を算出
・サブスクユーザの属性パターンごとにLTVを予測
不動産賃貸事業の例
リスク対応の例
・空室リスク:物件価値を向上させたり、サブリース契約によりリスク移転する(自身でリースするよりも賃料収入は減るが、一定額の賃料保証を得られる)
・賃料不払いリスク:入居者に与信審査を設ける
・物件の損耗リスク:敷金を預かる
・火災リスク:火災保険に加入する
第9章 データ分析基盤を構築しよう
(会計データ・仕訳データの特徴/データ分析基盤とは/会計データ分析基盤/組織への適用方法 ほか)
データ分析基盤
データの集約、加工、活用を一気通貫で行うための基盤
財管一致
よくある課題
・情報の粒度が荒い
・非財務情報が管理されてない:商談イベント、契約締結イベント、ECサイトへのアクセスイベント、顧客属性、など
・部門の壁がある
・データ収集に時間がかかる
・サイロ化:同じ分析をいろんな部署で独自にやっている
制度会計への対応
・請求したら売上、入金したら債権消込という訳ではなく、会計基準(収益認識基準など)に基づいて適切に期間配分しなおす処理が必要
・複数の取引が集約されて1本の仕訳が作成される(取引データから仕訳データに変換される過程で情報損失が起こる)
データ分析基盤の構成要素
・データソース:業務システムのDB、オープンAPI、Excelファイルなど
↓ETLツール:Glue(AWS)、CloudDataFusion(GCP)
・データレイク:S3(AWS)、Google CloudStorage(GCP)
↓ワークフローエンジン(データクレンジング、メジャー算出、スタースキーマ化)
・DWH:Redshift(AWS)、BigQuery(GCP)、全社的に一元化(SSOT、Single Source of Trust)された分析用データベース製品
↓
・データマート:使用部門ごとに作成する(他部門への影響を気にする必要なし)、使用部門で使いやすいように高速化する
※理想的には、会計システムは、経理部門に特化したデータマートとして位置付けるべき
導入の順番は、
①データマート:ユースケース(例:ダッシュボードに表示するデータを格納したい)を実現するため
②データレイク:データソースからデータを収集するため
③DWH:①と②のギャップを埋めるために、データを前処理(クレンジング&指標算出)して格納しておく
決算財務報告プロセスにおけるデータフロー
・会計システムと連携されている業務システム
・会計システムと連携されていない業務システム(スプレッドシートなども含む)
↓仕訳データに変換(システム/マニュアル)
・会計システム
↓
・財務諸表
・経営分析資料:ただし、会計システムの格納データだけでは分析に不十分な場合もある
完
この記事が気に入ったらサポートをしてみませんか?