library(dplyr)
Attaching package: ‘dplyr’
The following objects are masked from ‘package:stats’:
filter, lag
The following objects are masked from ‘package:base’:
intersect, setdiff, setequal, union
library(ggplot2)
library(tidyr)
# view dataset
View(accounting_analysis)
Part 1
# view data for single company
dsw_data<- accounting_analysis %>% filter(gvkey=="024171")
View(dsw_data)
Part 2
# Beneish Model
beneish<-accounting_analysis%>%group_by(gvkey)%>%
mutate(dsri=(rect/revt) / ( lag(rect)/lag(revt) ),
gmi=( (lag(revt)-lag(cogs)) /lag(revt) ) / ((revt-cogs)/revt) ,
aqi=( 1 - ((act+ppent)/at) ) / (1 - ((lag(act)+lag(ppent))/lag(at))),
sgi=revt / lag(revt) ,
depi=( lag(dp)/(lag(dp)+lag(ppent)) ) / (dp/(dp+ppent)),
sai = (xsga/revt) / (lag(xsga)/lag(revt)),
lvgi = ( (dltt+lct)/at ) / ( (lag(dltt)+lag(lct) )/lag(at)),
tata = (ib-oancf)/at,
check_dsri=is.nan(dsri),
check_dsri2=is.infinite(dsri),
check_aqi=is.nan(aqi),
check_aqi2=is.infinite(aqi),
check_sai=is.nan(sai),
check_sai2=is.infinite(sai))
beneish$dsri<- ifelse(beneish$check_dsri==TRUE | beneish$check_dsri2==TRUE, yes=1, no=beneish$dsri)
beneish$aqi<- ifelse(beneish$check_aqi==TRUE | beneish$check_aqi2==TRUE, yes=1, no=beneish$aqi)
beneish$sai<- ifelse(beneish$check_sai==TRUE | beneish$check_sai2==TRUE, yes=1, no=beneish$sai)
beneish2<-beneish%>%mutate(m_score=-4.84+.920*dsri+.528*gmi+.404*aqi+.892*sgi+.115*depi-.172*sai-.327*lvgi+4.679*tata,
probability_of_manipulation=pnorm(m_score)*100)
sorted_by_m<-beneish2%>%filter(year==2017)%>%drop_na(m_score)%>%arrange(desc(probability_of_manipulation))
View(sorted_by_m)
dsw_m_score<-beneish2%>%filter(gvkey=="024171" & year==2017)
View(dsw_m_score)
Part 3
# Red Flags
redflags<-accounting_analysis%>%
group_by(gvkey)%>%
mutate(ar_turnover=revt/rect,
days_inventory=invt/(cogs/365),
inventory_turnover=cogs/(invt/365),
days_receivables=rect/(revt/365),
LTasset_turnover=revt/ppent,
asset_turnover=revt/at,
total_accruals=(ib-oancf)/at)
#9 Total Accruals
redflags %>%filter(gvkey=="024171") %>%
ggplot(aes(x=year , y=total_accruals))+
geom_point() + geom_line()

#10 AR Turnover
redflags %>%filter(gvkey=="024171") %>%
ggplot(aes(x=year , y=ar_turnover))+
geom_point() + geom_line()

#11 Days Receivables
redflags %>%filter(gvkey=="024171") %>%
ggplot(aes(x=year , y=days_receivables))+
geom_point() + geom_line()

#12 Inventory Turnover
redflags %>%filter(gvkey=="024171") %>%
ggplot(aes(x=year , y=inventory_turnover))+
geom_point() + geom_line()

#13 Days Inventory
redflags %>%filter(gvkey=="024171") %>%
ggplot(aes(x=year , y=days_inventory))+
geom_point() + geom_line()

#14 Long Term Asset Turnover
redflags %>%filter(gvkey=="024171") %>%
ggplot(aes(x=year , y=LTasset_turnover))+
geom_point() + geom_line()

# In Class
inclassq<-redflags %>%filter(gvkey=="024171",year=="2017")
View(inclassq)
Part 4
# Operating Leases
lease<-accounting_analysis%>% mutate(
mrc6=mrcta/5,
mrc7=mrcta/5,
mrc8=mrcta/5,
mrc9=mrcta/5,
mrc10=mrcta/5,
pv_mrc1=mrc1/1.06,
pv_mrc2=mrc2/1.06^2,
pv_mrc3=mrc3/1.06^3,
pv_mrc4=mrc4/1.06^4,
pv_mrc5=mrc5/1.06^5,
pv_mrc6=mrc6/1.06^6,
pv_mrc7=mrc7/1.06^7,
pv_mrc8=mrc8/1.06^8,
pv_mrc9=mrc9/1.06^9,
pv_mrc10=mrc10/1.06^10,
total_pv=pv_mrc1+pv_mrc2+pv_mrc3+pv_mrc4+pv_mrc5+pv_mrc6+pv_mrc7+pv_mrc8+pv_mrc9+pv_mrc10,
totalassets_plus_leases=at+total_pv,
debt_plus_leases=dltt+dlc+total_pv,
liabilities_plus_leases=lt+total_pv,
change_in_assets=totalassets_plus_leases/at-1,
change_in_liabilities=liabilities_plus_leases/lt-1,
roa=ni/at,
roa_after=ni/totalassets_plus_leases,
asset_turnover=revt/at,
asset_turnover_after_leases=revt/totalassets_plus_leases,
debt_to_equity=(dltt+dlc)/ceq,
debt_to_equity_after=(liabilities_plus_leases/ceq))
sorted_by_change_in_liabilities<-lease%>%filter(year==2017)%>%arrange(desc(change_in_liabilities))
View(sorted_by_change_in_liabilities)
lease%>%filter(gvkey=="024171",year=="2017")
LS0tCnRpdGxlOiAiV2VlayA0IgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgpgYGB7cn0KbGlicmFyeShkcGx5cikKbGlicmFyeShnZ3Bsb3QyKQpsaWJyYXJ5KHRpZHlyKQpgYGAKCmBgYHtyfQojIHZpZXcgZGF0YXNldApWaWV3KGFjY291bnRpbmdfYW5hbHlzaXMpCmBgYAojUGFydCAxCmBgYHtyfQojIHZpZXcgZGF0YSBmb3Igc2luZ2xlIGNvbXBhbnkKZHN3X2RhdGE8LSBhY2NvdW50aW5nX2FuYWx5c2lzICU+JSBmaWx0ZXIoZ3ZrZXk9PSIwMjQxNzEiKQpWaWV3KGRzd19kYXRhKQpgYGAKI1BhcnQgMgpgYGB7cn0KIyBCZW5laXNoIE1vZGVsCmJlbmVpc2g8LWFjY291bnRpbmdfYW5hbHlzaXMlPiVncm91cF9ieShndmtleSklPiUKICBtdXRhdGUoZHNyaT0ocmVjdC9yZXZ0KSAvICggbGFnKHJlY3QpL2xhZyhyZXZ0KSApLAogICAgICAgICBnbWk9KCAobGFnKHJldnQpLWxhZyhjb2dzKSkgL2xhZyhyZXZ0KSApIC8gKChyZXZ0LWNvZ3MpL3JldnQpICwKICAgICAgICAgYXFpPSggMSAtICgoYWN0K3BwZW50KS9hdCkgKSAvICgxIC0gKChsYWcoYWN0KStsYWcocHBlbnQpKS9sYWcoYXQpKSksCiAgICAgICAgIHNnaT1yZXZ0IC8gbGFnKHJldnQpICwKICAgICAgICAgZGVwaT0oIGxhZyhkcCkvKGxhZyhkcCkrbGFnKHBwZW50KSkgKSAvIChkcC8oZHArcHBlbnQpKSwKICAgICAgICAgc2FpID0gKHhzZ2EvcmV2dCkgLyAobGFnKHhzZ2EpL2xhZyhyZXZ0KSksCiAgICAgICAgIGx2Z2kgPSAoIChkbHR0K2xjdCkvYXQgKSAvICggKGxhZyhkbHR0KStsYWcobGN0KSApL2xhZyhhdCkpLAogICAgICAgICB0YXRhID0gKGliLW9hbmNmKS9hdCwKICAgICAgICAgY2hlY2tfZHNyaT1pcy5uYW4oZHNyaSksCiAgICAgICAgIGNoZWNrX2RzcmkyPWlzLmluZmluaXRlKGRzcmkpLAogICAgICAgICBjaGVja19hcWk9aXMubmFuKGFxaSksCiAgICAgICAgIGNoZWNrX2FxaTI9aXMuaW5maW5pdGUoYXFpKSwKICAgICAgICAgY2hlY2tfc2FpPWlzLm5hbihzYWkpLAogICAgICAgICBjaGVja19zYWkyPWlzLmluZmluaXRlKHNhaSkpCgpiZW5laXNoJGRzcmk8LSBpZmVsc2UoYmVuZWlzaCRjaGVja19kc3JpPT1UUlVFIHwgYmVuZWlzaCRjaGVja19kc3JpMj09VFJVRSwgeWVzPTEsIG5vPWJlbmVpc2gkZHNyaSkKYmVuZWlzaCRhcWk8LSBpZmVsc2UoYmVuZWlzaCRjaGVja19hcWk9PVRSVUUgfCBiZW5laXNoJGNoZWNrX2FxaTI9PVRSVUUsIHllcz0xLCBubz1iZW5laXNoJGFxaSkKYmVuZWlzaCRzYWk8LSBpZmVsc2UoYmVuZWlzaCRjaGVja19zYWk9PVRSVUUgfCBiZW5laXNoJGNoZWNrX3NhaTI9PVRSVUUsIHllcz0xLCBubz1iZW5laXNoJHNhaSkKCmJlbmVpc2gyPC1iZW5laXNoJT4lbXV0YXRlKG1fc2NvcmU9LTQuODQrLjkyMCpkc3JpKy41MjgqZ21pKy40MDQqYXFpKy44OTIqc2dpKy4xMTUqZGVwaS0uMTcyKnNhaS0uMzI3Kmx2Z2krNC42NzkqdGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvYmFiaWxpdHlfb2ZfbWFuaXB1bGF0aW9uPXBub3JtKG1fc2NvcmUpKjEwMCkKCnNvcnRlZF9ieV9tPC1iZW5laXNoMiU+JWZpbHRlcih5ZWFyPT0yMDE3KSU+JWRyb3BfbmEobV9zY29yZSklPiVhcnJhbmdlKGRlc2MocHJvYmFiaWxpdHlfb2ZfbWFuaXB1bGF0aW9uKSkKVmlldyhzb3J0ZWRfYnlfbSkKCmRzd19tX3Njb3JlPC1iZW5laXNoMiU+JWZpbHRlcihndmtleT09IjAyNDE3MSIgJiB5ZWFyPT0yMDE3KQpWaWV3KGRzd19tX3Njb3JlKQpgYGAKI1BhcnQgMwpgYGB7cn0KIyBSZWQgRmxhZ3MKcmVkZmxhZ3M8LWFjY291bnRpbmdfYW5hbHlzaXMlPiUKICBncm91cF9ieShndmtleSklPiUgCiAgbXV0YXRlKGFyX3R1cm5vdmVyPXJldnQvcmVjdCwKICAgICAgICAgZGF5c19pbnZlbnRvcnk9aW52dC8oY29ncy8zNjUpLAogICAgICAgICBpbnZlbnRvcnlfdHVybm92ZXI9Y29ncy8oaW52dC8zNjUpLAogICAgICAgICBkYXlzX3JlY2VpdmFibGVzPXJlY3QvKHJldnQvMzY1KSwKICAgICAgICAgTFRhc3NldF90dXJub3Zlcj1yZXZ0L3BwZW50LAogICAgICAgICBhc3NldF90dXJub3Zlcj1yZXZ0L2F0LAogICAgICAgICB0b3RhbF9hY2NydWFscz0oaWItb2FuY2YpL2F0KQpgYGAKCmBgYHtyfQojOSBUb3RhbCBBY2NydWFscwpyZWRmbGFncyAlPiVmaWx0ZXIoZ3ZrZXk9PSIwMjQxNzEiKSAlPiUgCiAgZ2dwbG90KGFlcyh4PXllYXIgLCB5PXRvdGFsX2FjY3J1YWxzKSkrCiAgZ2VvbV9wb2ludCgpICsgZ2VvbV9saW5lKCkKYGBgCgpgYGB7cn0KIzEwIEFSIFR1cm5vdmVyCnJlZGZsYWdzICU+JWZpbHRlcihndmtleT09IjAyNDE3MSIpICU+JSAKICBnZ3Bsb3QoYWVzKHg9eWVhciAsIHk9YXJfdHVybm92ZXIpKSsKICBnZW9tX3BvaW50KCkgKyBnZW9tX2xpbmUoKQpgYGAKCmBgYHtyfQojMTEgRGF5cyBSZWNlaXZhYmxlcwpyZWRmbGFncyAlPiVmaWx0ZXIoZ3ZrZXk9PSIwMjQxNzEiKSAlPiUgCiAgZ2dwbG90KGFlcyh4PXllYXIgLCB5PWRheXNfcmVjZWl2YWJsZXMpKSsKICBnZW9tX3BvaW50KCkgKyBnZW9tX2xpbmUoKQpgYGAKCmBgYHtyfQojMTIgSW52ZW50b3J5IFR1cm5vdmVyCnJlZGZsYWdzICU+JWZpbHRlcihndmtleT09IjAyNDE3MSIpICU+JSAKICBnZ3Bsb3QoYWVzKHg9eWVhciAsIHk9aW52ZW50b3J5X3R1cm5vdmVyKSkrCiAgZ2VvbV9wb2ludCgpICsgZ2VvbV9saW5lKCkKYGBgCgpgYGB7cn0KIzEzIERheXMgSW52ZW50b3J5CnJlZGZsYWdzICU+JWZpbHRlcihndmtleT09IjAyNDE3MSIpICU+JSAKICBnZ3Bsb3QoYWVzKHg9eWVhciAsIHk9ZGF5c19pbnZlbnRvcnkpKSsKICBnZW9tX3BvaW50KCkgKyBnZW9tX2xpbmUoKQpgYGAKCmBgYHtyfQojMTQgTG9uZyBUZXJtIEFzc2V0IFR1cm5vdmVyCnJlZGZsYWdzICU+JWZpbHRlcihndmtleT09IjAyNDE3MSIpICU+JSAKICBnZ3Bsb3QoYWVzKHg9eWVhciAsIHk9TFRhc3NldF90dXJub3ZlcikpKwogIGdlb21fcG9pbnQoKSArIGdlb21fbGluZSgpCmBgYAoKYGBge3J9CiMgSW4gQ2xhc3MKaW5jbGFzc3E8LXJlZGZsYWdzICU+JWZpbHRlcihndmtleT09IjAyNDE3MSIseWVhcj09IjIwMTciKQpWaWV3KGluY2xhc3NxKQpgYGAKI1BhcnQgNApgYGB7cn0KIyBPcGVyYXRpbmcgTGVhc2VzCmxlYXNlPC1hY2NvdW50aW5nX2FuYWx5c2lzJT4lIG11dGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1yYzY9bXJjdGEvNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1yYzc9bXJjdGEvNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1yYzg9bXJjdGEvNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1yYzk9bXJjdGEvNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1yYzEwPW1yY3RhLzUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdl9tcmMxPW1yYzEvMS4wNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB2X21yYzI9bXJjMi8xLjA2XjIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdl9tcmMzPW1yYzMvMS4wNl4zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHZfbXJjND1tcmM0LzEuMDZeNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB2X21yYzU9bXJjNS8xLjA2XjUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdl9tcmM2PW1yYzYvMS4wNl42LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHZfbXJjNz1tcmM3LzEuMDZeNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB2X21yYzg9bXJjOC8xLjA2XjgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdl9tcmM5PW1yYzkvMS4wNl45LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHZfbXJjMTA9bXJjMTAvMS4wNl4xMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbF9wdj1wdl9tcmMxK3B2X21yYzIrcHZfbXJjMytwdl9tcmM0K3B2X21yYzUrcHZfbXJjNitwdl9tcmM3K3B2X21yYzgrcHZfbXJjOStwdl9tcmMxMCwKICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxhc3NldHNfcGx1c19sZWFzZXM9YXQrdG90YWxfcHYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ0X3BsdXNfbGVhc2VzPWRsdHQrZGxjK3RvdGFsX3B2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlhYmlsaXRpZXNfcGx1c19sZWFzZXM9bHQrdG90YWxfcHYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZV9pbl9hc3NldHM9dG90YWxhc3NldHNfcGx1c19sZWFzZXMvYXQtMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZV9pbl9saWFiaWxpdGllcz1saWFiaWxpdGllc19wbHVzX2xlYXNlcy9sdC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2E9bmkvYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2FfYWZ0ZXI9bmkvdG90YWxhc3NldHNfcGx1c19sZWFzZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldF90dXJub3Zlcj1yZXZ0L2F0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRfdHVybm92ZXJfYWZ0ZXJfbGVhc2VzPXJldnQvdG90YWxhc3NldHNfcGx1c19sZWFzZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ0X3RvX2VxdWl0eT0oZGx0dCtkbGMpL2NlcSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnRfdG9fZXF1aXR5X2FmdGVyPShsaWFiaWxpdGllc19wbHVzX2xlYXNlcy9jZXEpKQoKc29ydGVkX2J5X2NoYW5nZV9pbl9saWFiaWxpdGllczwtbGVhc2UlPiVmaWx0ZXIoeWVhcj09MjAxNyklPiVhcnJhbmdlKGRlc2MoY2hhbmdlX2luX2xpYWJpbGl0aWVzKSkKVmlldyhzb3J0ZWRfYnlfY2hhbmdlX2luX2xpYWJpbGl0aWVzKQpgYGAKCmBgYHtyfQpsZWFzZSU+JWZpbHRlcihndmtleT09IjAyNDE3MSIseWVhcj09IjIwMTciKQpgYGAKCg==