【그림 1】 Fraudit Main Screen
메뉴명 | 주요기능 |
---|---|
Set Project Folder | 프로젝트 폴더를 생성하고 프로젝트를 관리할 수 있도록 해줍니다. Fraudit을 처음 실행할 때 적어도 하나 이상의 프로젝트 폴더가 있어야 하므로 자동으로 생성하도록 요구합니다. |
New Table | 새로운 테이블을 생성하여 줍니다. 이 버튼을 누르면 Table Properties 상자가 보이면서 칼럼명과 데이터 형태, 포맷을 정하고, 테이블명을 입력할 수 있게 됩니다. 테이블을 저장하려면 Save 또는 Save As 버튼을 누릅니다. |
New Database Table | 데이터베이스에 연결할 수 있도록 마법사 기능을 제공합니다. ODBC, SQLite, MySQL, PostgreSQL, Oracle 데이터베이스와 연결할 수 있도록 해줍니다(향후 업그레이드시 데이터베이스의 종류가 추가될 예정). |
New Query | 데이터베이스에 연결한 후 query 명령을 할 수 있도록 해줍니다. |
New Script | Python 스크립트를 작성할 수 있는 에디터를 생성합니다. 이 에디터를 통하여 작성한 스크립트를 확장자 .py로 저장하여 실행시킬 수 있습니다. |
Open | Fraudit Table을 엽니다. |
Import | Excel, CSV 등의 파일을 불러와서 Fraudit Table로 변환해 줍니다. |
Filter | Filter 기능을 제공합니다. Filter는 와일드카드와 Python의 정규식이 모두 사용가능합니다. |
Sort | Sort는 정렬을 해주는 기능으로 여기서는 Full Sort를 해줍니다. 즉, 여러개의 칼럼에서 조건을 동시에 걸 수 있게 해줍니다. |
Transpose | 테이블의 칼럼과 레코드의 방향을 바꾸어 줍니다. Excel의 행렬 바꾸기 기능과 유사한 기능입니다. |
Row | 테이블의 Row를 삽입(insert)하거나 아래에 추가(append) 또는 삭제(delete)합니다. |
Save | 테이블을 저장합니다. |
Save As | 테이블을 다른 이름으로 저장합니다. 다른 이름으로 저장하게 되면 다음에 불러올 때 테이블명이 저장된 다른 이름으로 변경됩니다. |
Export | 테이블을 Excel 또는 CSV 파일로 Export(내보내기) 합니다. |
Copy Table | 선택한 테이블을 복사(copy) 한다. |
Rename Table | 선택한 테이블명을 변경합니다. 다만, 이 테이블명은 탭상에서만 변경이 되고 파일 상으로는 변경전 테이블이 그대로 존재하게 됩니다(즉, ad-hoc분석을 위해서 테이블명을 일시적으로 변경하는 것입니다). 따라서, 이 기능은 특별한 경우가 아니면 자주 사용하는 것을 권장하지 않습니다. 테이블명을 변경하게 되면 변경후 테이블과 변경전의 테이블이 탭상에 동시에 존재하게 됩니다. 변경후 테이블에서 작업을 저장하게 되면 그 내용이 변경을 반영하기 위해서는 테이블명을 변경한 후의 테이블을 저장하면 변경전의 테이블에 저장됩니다. |
Close Table | 선택한 테이블을 닫습니다. 하드디스크에서 삭제하는 것은 아닙니다. |
Delete Table | 선택한 테이블을 하드디스크에서 삭제합니다. 따라서 이 기능은 신중하게 실행하여야 합니다. |
Table Properties | 선택한 테이블의 칼럼명, 데이터 형식, 포맷, 산식 등을 정할 수 있으며 칼럼의 표시 순서를 변경할 수 있습니다. |
Page Setup | 인쇄할 페이지를 세팅합니다. |
Printing Review | 인쇄 미리보기 기능입니다. |
Preference | 일반 기본 설정을 변경할 수 있습니다. 필요에 따라 커스텀마이징도 가능합니다. |
메뉴명 | 주요기능 |
---|---|
Find and Replace | 특정 value, string 등을 검색하여 주고 이를 일괄적으로 변경해주는 기능입니다. |
Find Next | Find and Replace 메뉴를 실행한 후에 해당 value, string 등을 순서대로 찾아주는 기능입니다. |
Go To Row | 특정 Row로 바로 이동하는 기능입니다. |
Copy | 특정 셀, 칼럼, 레코드를 복사하는 기능입니다. |
Paste | 복사한 값을 붙여넣기 하는 기능입니다. |
Clear Script Output | Script Output의 내용을 지우는 기능입니다. |
Clear History | History의 내용을 지우는 기능입니다. |
메뉴명 | 주요기능 |
---|---|
Select | 특정 조건에 해당하는 레코드를 선택하여 별도의 테이블로 구성해줍니다. 분석하기 전에 테이블을 필터링하고 테이블에서 찾는 것이 유용합니다. |
Join | 2개의 테이블에 대하여 조건을 설정하여 함께 결합할 수 있습니다. Join 기능은 데이터베이스 query joining보다는 느리지만 훨씬 더 강력하고 유연합니다. 예를 들어 값이 일치하는 위치에 단순히 연결하는 것이 아니라, fuzzy text 일치 및 사용자 정의 표현에 기초하여 테이블을 결합할 수 있습니다. 사용자 지정 식에서는 사용자가 원하는 방식으로 테이블을 결합할 수 있습니다. |
Stratify | 특정 칼럼을 계층화하여 그룹핑하여 별도의 하위 테이블의 목록으로 구분할 수 있습니다. 예를 들어 영업 거래 테이블을 각 영업 사원별로 별도의 테이블로 구분할 수 있습니다. |
Summarize | 요약(Summarize)을 통해 합계, 평균, 표준 편차, 개수 등의 요약 기능을 사용하여 계층화된 테이블을 다시 조합할 수 있습니다. 요약(Summarize)은 해당 기간 동안 구매자당 총 구매액을 계산하거나, 가장 많이 사용되는 벤더를 찾는 데 유용합니다. 요약(Summarize)은 구조화된 쿼리 언어의 GROUPBy와 유사합니다. |
Pivot Table | Excel의 피벗 테이블 기능과 유사한 기능을 제공합니다. |
Upload Table To Database | Fraudit 테이블을 데이터베이스에 직접 업로드 시킬 수 있게 해줍니다. |
메뉴명 | 주요기능 |
---|---|
Descriptives | 테이블의 데이터 세트에 대하여 개수, 표준편차, 최대값, 최소값, 합계와 같은 기본적인 통계결과를 보여줍니다. |
Benford Analysis | Benford 법칙을 사용하여 column 값이 자연스러운지 아닌지를 평가할 수 있습니다. 자세한 것은 Benford Analysis 장에서 설명하기로 합니다. |
Digital Analysis | 분석이 필요한 칼럼에 대하여 아래와 같은 분석 칼럼을 옆에 추가한다.
|
Find |
|
Outliers |
레코드 세트에서 이상 징후를 검색할 수 있습니다.
|
Trend |
|
메뉴명 | 주요기능 |
---|---|
Monetary Unit Sampling | 화폐단위 샘플링의 Plan(계획), Extract(샘플추출), Evaluation(샘플링 결과 평가) 기능을 제공합니다. |
메뉴명 | 주요기능 |
---|---|
Expression builder | 각종 수식 및 Fraudit 내장함수를 검색할 수 있으며 이를 통하여 새로운 산 식을 넣을 수 있는 기능입니다. |
Journal Analysis | 각종 회계프로그램의 분개장을 토대로 8가지의 Journal Entry Test를 할 수 있으며, 현금흐름표(직접법)를 자동으로 작성해 주는 기능입니다. |
Deep(Machine) Learning | 딥러닝, 머신러닝 기법을 사용할 수 있는 기능이다. 현재 버전에서는 XGBoost 기법과 Deep Neural Network 기능을 제공합니다. |
【표 1 】Fraudit에서 지원하는 데이터 타입(Type)
Type | 예 |
---|---|
String | 직원 이름과 같은 일련의 텍스트 문자 (예: "홍길동") |
Integer | 4 또는 -22와 같은 정수(소수 점 이하는 될 수 없지만 음수일 수 있음) |
Decimal Number | 28.9047과 같이 소수 점 이하인 숫자 |
Date Time | 특정 날짜 및 시간 |
True/False | 속성이 true 또는 false인 경우 사용 |
String | Type 변환 | Format |
---|---|---|
YYYY-MM-DD | DateTime | %Y-%m-%d |
YYYY/MM/DD | DateTime | %Y/%m/%d |
MM-DD-YYYY | DateTime | %Y%m%d |
MM-DD-YYYY | DateTime | %m-%d-%Y |
【표 22】Fraudit에서 지원하는 DateTime 간 산식 지원
date1 | date2 | 산식 | 결과 |
---|---|---|---|
DateTime | DateTime | String | |
2018-03-04 23:00:00 | 2018-03-01 00:00:00 | date1 – date2 | 3 days, 23:00:00 |
2018-03-01 00:00:00 | 2018-03-04 00:00:00 | date1 – date2 | 주1) -4 days, 1:00:00 |
주1) 언뜻 보면 이해가 안갈 수 있지만 이 결과의 의미는 –4 days에서 1시간을 뺀다는 의미로 실질적으로는 –3 days, 23:00:00을 의미하는 것입니다.
date1 | d3 | 산식 | 결과 |
---|---|---|---|
DateTime | Integer | DateTime | |
2018-03-04 23:00:00 | 1 | date1 + d3 | 2018-03-05 23:00:00 |
2018-03-01 00:00:00 | 1 | date1 + d3 | 2018-03-02 00:00:00 |
date1 | 계산칼럼 | 결과 |
---|---|---|
DateTime | Integer | |
2018-12-01 | DateToNum(date1) | 1543590000 |
date1 | 계산칼럼 | 결과 |
---|---|---|
Integer | DateTime | |
1543590000 | NumToDate(date1) | 2018-12-01 |
【File 메뉴의 Sort 메뉴을 이용하는 방법】
【테이블의 칼럼에서 오른쪽 클릭으로 Sort하는 방법】
【Excel 파일 불러오기】
【CSV 파일 불러오기】
Expression | Literal | Example |
---|---|---|
> | Greater Than | WorldCup > 1957 |
< | Less Than | GoalScored < 40 |
>= | Greater Than or Equal to | GamesPlayed >= 35 |
<= | Less Than or Equal to | AvgGameGoals <= 2.8 |
== | Equal to | Expulsion == 5 |
!= | Not Equal to | GoldenGoals != 0 |
Expression | Example |
---|---|
and | (WorldCup > 1957 and GoalScored < 40) |
or | (GoalScored < 40 or GoalScored >= 50) |
and not | (GamesPlayed >= 35 and not GamesPalyed > = 55) |
or not | (AvgGameGoals <= 2.8 or not AvgGameGoals > 3.1) |
Multiple column | PenaltyGolas + Expulsions < 9 |
PenaltyGolas < Expulsions | |
GoalScored / AvgGameGoals > GamesPalyed |
【표 】 Benford 법칙에 따른 첫째 단위(1~9)와 둘째 단위(0~9)가 나올 확률
숫자 | Benford_둘째 단위 | Benford_둘째 단위 |
---|---|---|
0 | 0.11968 | |
1 | 0.30103 | 0.11389 |
2 | 0.17609 | 0.10882 |
3 | 0.12494 | 0.10433 |
4 | 0.09691 | 0.10031 |
5 | 0.07918 | 0.09668 |
6 | 0.06695 | 0.09337 |
7 | 0.05799 | 0.09035 |
8 | 0.05115 | 0.08757 |
9 | 0.04576 | 0.08500 |
1.00000 | 1.00000 |
【표 】 Benford 법칙에 따른 앞에서 두 단위가 나올 확률
index | Col1 | Cumsum_Col1 | 산식 |
---|---|---|---|
0 | 5 | 0 | 5-5 = 0 |
1 | 3 | -2 | 0 + (3-5) = -2 |
2 | 4 | -1 | -2 + (4-3) = -1 |
3 | 8 | 3 | -1 + (8-4) = 3 |
index | Col_1 | 기울기 | 기울기 | 기울기 | |
---|---|---|---|---|---|
0 | 1 | ||||
1 | 3 | 2 2(3-1)÷1(1-0) | |||
2 | 6 | 3 3(6-3)÷1(2-1) | |||
3 | 10 | 4 4(10-6)÷1(3-2) | |||
4 | 16 | 6 6(16-10)÷1(4-3) |
index | Col_1 | 기울기 | 기울기 | 기울기 | |
---|---|---|---|---|---|
0 | 1 | ||||
1 | 3 | 2 2(3-1)÷1(1-0) | |||
2 | 6 | 2.5 5(6-1)÷2(2-0) | 3 3(6-3)÷1(2-1) | ||
3 | 10 | 3 9(10-1)÷3(3-0) | 3.5 7(10-3)÷2(3-1) | 4 4(10-6)÷1(3-2) | |
4 | 16 | 3.75 15(16-1)÷4(4-0) | 4.333 13(16-3)÷3(4-1) | 5 10(16-6)÷2(4-2) | 6 6(16-10)÷1(4-3) |
장부금액 | 누적금액 | Interval | |
---|---|---|---|
1 | $5,000 | $5,000 | |
2 | $7,000 | $12,000 | 10,000 |
3 | $850,000 | $862,000 | 825,630 |
4 | $1,100,000 | $1,962,000 | 1,641,260 |
장부금액 | 감사결과 금액 | 과대(과소)표시 금액 | |
---|---|---|---|
1 | $1,650.00 | $572.55 | $1,077.45 |
2 | $1,200.00 | $900.00 | $300.00 |
3 | $975.00 | $159.90 | $815.10 |
4 | $700.00 | $770.00 | ($70.00) |
변수 | 설명 |
---|---|
Attr5 | [(cash + short-term securities + receivables - short-term liabilities) / (operating expenses - depreciation)] * 365 |
Attr9 | sales / total assets |
Attr13 | (gross profit + depreciation) / sales |
Attr15 | (total liabilities * 365) / (gross profit + depreciation) |
Attr22 | profit on operating activities / total assets |
Attr25 | (equity - share capital) / total assets |
Attr27 | profit on operating activities / financial expenses |
Attr31 | (gross profit + interest) / sales |
Attr36 | total sales / total assets |
Attr40 | (current assets - inventory - receivables) / short-term liabilities |
Attr42 | profit on operating activities / sales |
Attr48 | EBITDA (profit on operating activities - depreciation) / total assets |
Attr52 | (short-term liabilities * 365) / cost of products sold) |
Attr58 | total costs /total sales |
Class | 0은 정상, 1은 부도(단, 이는 명목변수로 string 처리하여야 한다) |
변수 | 설명 |
---|---|
채권회수기간지수 (DSRI) | 매출채권의 급격한 증가는 경쟁심화에 따른 신용매출 기준의 완화의 결과 일 수도 있고 가공매출을 통한 이익조작의 결과일수도 있다. 2개 년도에 걸쳐 매출채권과 매출액의 비율을 비교하는 이 지수의 급격한 증가는 매출액과 이익이 과대계상될 가능성과 정(+)의 관계가 있는 것으로 추정한다 |
매출총이익지수 (GMI) | 채권회수기간지수와는 달리 매출총이익지수는 전년도 매출총이익률을 당년도 매출총이익률로 나누어 계산한다. 따라서 이 지수가 1보다 크면 전기 대비 당기 수익성이 악화되었음을 의미한다. 영업악화가 예상되는 기업이 이익조작을 할 가능성이 더 높다면 이 지수와 이익조작확률사이에 정의 관계가 있을 것으로 추정한다 |
자산품질지수 (AQI) | 자산품질은 총자산 중 유형자산을 제외한 고정자산의 비율로서 측정한다. 이 지수는 미래효익의 불확실성이 상대적으로 높은, 달리 말해 실현가능성 위험 (realization risk) 이 높은 자산의 변화를 총체적으로 반영하고자 한다. 이 지수가 1보다 크다는 것은 기업이 보다 많은 지출을 자본화한데 기인할 수 있다. 따라서 이익조작확률과 이지수 간에 정의 관계가 있을 것으로 추정한다. |
매출성장성지수 (SGI) | 이 지수는 고성장 기업일수록 원활한 자본조달을 위해 이익목표치를 달성하기 위하여 회계분식을 할 가능성이 높다는 점에서 출발한다. 또한 고성장 시기에는 내부통제와 보고기능이 제조, 판매기능에 비해 상대적으로 덜 중시됨으로써 이익조작이 내부에서 견제되지 않을 가능성이 있다(Loebbeckeet al. 1989). 또한 고성장 기업의 성장률이 둔화되기 시작하면서 주가가 하락할 때 경영자가 성장세 둔화 우려를 불식시키기 위해 이익을 조작할 우려가 높다(Fridson 1993). 따라서 이 지수와 이익조작확률사이에 정의 관계가 있을 것으로 추정한다 |
감가상각지수 (DEPI) | 이 지수가 1보다 크면 자산 감가상각 속도가 완화되었음을 의미한다. 이는 예상 내용년수를 증가시키거나 보고이익을 증가시키는 회계처리방법을 채택했을 가능성이 높다고 해석할 수 있다. 따라서 이 지수와 이익조작확률 간에 정의 관계가 존재할 것으로 추정한다. |
판매관리비지수 (SGAI) | 대부분의 관리비가 고정비인 점을 감안하면 매출액 대비 판매관리비의 급격한 증가는 비경상적 판매노력의 투입이나 원가통제능력의 상실과 같은 부정적 상황의 결과일 수 있다. 따라서 이 지수와 이익조작확률 사이에 정의 관계를 발견할 것으로 추정한다. |
레버리지지수 (LVGI) | 부채계약의 위반을 피하기 위한 이익조작 유인을 반영하고자 총부채비율을 통해 레버리지의 변화를 측정한다. 이 지수와 이익조작확률 간에 정의 관계가 존재할 것으로 추정한다. |
총발생액비율 (TATA) | 총발생액은 순이익의 변화에서 영업활동현금흐름의 변화를 차감하여 계산하며 이를 총자산으로 나눈 총발생액비율을 통해 현금과 보고이익과의 괴리를 측정한다. 총발생액비율이 높을 수록 이익조작확률이 높을 것으로 기대한다. |