avaialable from (https://rpubs.com/staszkiewicz/EX_8_GC_PL)

Wprowadzenie

Going concern (GC) to założenie w sprawozdawczości finansowej, że jednostka jednostka będzie funkcjonowała w normalnym stanie do następnego okresu sprawozdawczego. Jest to podstawowe założenie sprawozdawcze, jeżeli nie jest ono utrzymane to aktywa i zobowiązania długoterminowe powinny być traktowane jak aktywa i zobowiązania krótkoterminowe. Przekłada się to zazwyczaj na znaczne straty w kapitale własnym. Dlatego też biegły rewident jest wyraźnie proszony w standardach o ocenę adekwatności tego założenia.

GK jest monitorowane przez jednostkę w okresach rocznych, w przypadku gdy w roku bieżącym straty pochłaniają kapitał zapasowy i połowę W przypadku, wówczas spółka musi zwrócić się do akcjonariuszy o o podjęcie uchwały o dalszym istnieniu. W przypadku grup kapitałowych zwykle spółka dominująca wystosowuje list gwarancyjny do spółki zależnej, jeżeli ta ostatnia ma ujemny kapitał własny. W podmiotach nadzorowanych, takich jak banki i i instytucje finansowe, organ nadzoru monitoruje kwartalnie (banki) lub codziennie (brokerzy-dealerzy) poziom wymogów kapitałowych. Jeśli wymóg ten spadnie poniżej progu, organ nadzoru (nadzorca) uruchamia działania korygujące (np. wniosek o zmianę struktury ryzyka aktywów, podniesienie kapitałów), lub wymaga przeprowadzenia postępowania naprawczego - ma ono miejsce, gdy władze stwierdzą, że upadający bank nie może przejść przez normalne postępowanie upadłościowe bez bez szkody dla interesu publicznego i spowodowania niestabilności finansowej. Tak więc krytyczne umiejętności audytorskich jest ocena prawdopodobieństwa, że jednostka upadnie (od dziś do następnego okresu sprawozdawczego). Zasadniczo, procedury badania obejmują zrozumienie modelu biznesowego, przegląd biznesplanów, prognoz, zaległości, zobowiązań kapitałowych, pozycji rynkowej i dyskusję z kierownictwem. Oprócz standardowych procedur, istnieją bardziej formalne techniki ogólnie znane pod parasolem “niepowodzenia/niewypłacalności/przewidywania.” Podstawowy przegląd tych technik znajduje się tutaj.

(https://www.researchgate.net/publication/344437838_Ograniczenie_modeli_postaltmanowskich_Nurt_badan_inspirowany_dorobkiem_prof_dr_hab_Marka_Gruszczynskiego)

Jak zwykle, wykorzystamy dane pierwotne z artykułu Audit fee and communication sentiment. Badania Ekonomiczne-Ekonomska Istraživanja. https://doi.org/10.1080/1331677X.2021.1985567 Piotr Staszkiewicz and Karkowska (2021). Dane, jak zwykle, dostępne są w Niezbędniku (“Materiały Publiczne”) plik o nazwie Bank.cvs. Proszę pobrać go na swój komputer i wgrać do R. Proszę pamiętać, że dane mogą być wykorzystywane po zajęciach tylko do celów niekomercyjnych z podaniem źródła.

# z bazowych funkcji systemu wczytamy klasyczny plik z csv ale w taki sposób
#   że wybierzemy z okienka umiejscowienie pliku na włanym komuterze 
# dlaego zagnieżdzamy polecenie "file.choose()"

bank <-  read.csv(file.choose())

Przegląd opinii dot. kontynuacji działalności w naszej bazie

Sprawdźmy najpierw, czy w naszym zbiorze danych mamy opinię o kontynuacji działalności:

GCT<-table(bank$Going_Concern)
GCT
## 
##   No  Yes 
## 5320   36

mamy kilka opinii o kontynuacji działalności tylko 0.68%.

Zatem każde obliczenie będzie podlegało problemowi dopasowania - szerzej w artyklue wprowadzającym (potencjalnym rozwiązaniem jest propensity score matching). Na marginesie, można się spodziewać, że na rynku nadzorowanym raczej nie będzie podmiotów nie kontynuujących działalność.

Zmieńmy perspektywę na wymogi kapitałowe. Banki aby prowadzić działalność, muszą spełniać wymogi kapitałowe. Podstawową zasadą jest taka, że stosunek kapitałów własnych do aktywów ważonych ryzykiem nie powinien być niższy niż, np. 4%. Niestety zarówno nadzorowane kapitały własne (tier I, II, III), jak i aktywa ważone ryzykiem są wykazywane w Corep i Finrep, i nie są łatwe do wyodrębnienia ze sprawozdań finansowych, dlatego stosujemy kilka przybliżeń (instrumentóW).

Po pierwsze, załóżmy, że aktywa ważone ryzykiem to “Total_Assets,” kapitał nadzorowany “Total_Equity,” a spółki w trudnej sytuacji to takie, których stosunek sumy kapitałów własnych do sumy aktywów jest niższy niż 10%. Utwórzmy indeks i zobaczmy jego wykres boxplot.

bank$Cap_Req <- 0 # create new varialbe
bank$Cap_Req[bank$Total_Equity/bank$Total_Assets<.1] <- 1
boxplot.default(bank$Total_Equity/bank$Total_Assets)

table(bank$Cap_Req)
## 
##    0    1 
## 2431 2925

Teraz mamy około połowy populacji, która jest zestresowana.

Zmieniamy więc perspektywę z niewypłacalności na aktywa w trudnej sytuacji. Można rozsądnie założyć, że wartość przedsiębiorstw w trudnej sytuacji i ich ich przychodów jest niższa niż tych, które są dobrze skapitalizowane. Zobaczmy to:

plot(bank$Revenue_USDx_N, bank$Book_Value_USDx_N, col=ifelse(bank$Cap_Req ==1,"red", "green"))

Czerwone kropki to nasze banki znajdujące się w trudnej sytuacji, podczas gdy zielone są dobrze dobrze skapitalizowane. Możemy zważyć nasze wyniki z aktywami firm, aby uzyskać wartości porównawcze. Sprawdźmy jeszcze raz:

plot(bank$Revenue_USDx_N/bank$Total_Assets, bank$Book_Value_USDx_N/bank$Total_Assets, col=ifelse(bank$Cap_Req ==1,"red", "green"))

teraz klasyfikator linowy jest już prawie funkcją (widoczną - stałą).

Musimy wyznaczyć linię, która odróżni czerwonych od zielonych, bez żadnych obliczeń, możemy zgadywać, że linia y = .1 (nasza (nasza wartość progowa) spełni swoje zadanie, zobaczmy:

plot(bank$Revenue_USDx_N/bank$Total_Assets, bank$Book_Value_USDx_N/bank$Total_Assets, col=ifelse(bank$Cap_Req ==1,"red", "green"))
abline(h = 0.1, col ="blue")  # here we add up a line horisontal to the existing plot at the hight of 0.1

Uzgodniliśmy nasze podejście, ponieważ nasza wartość graniczna dla zakładania zagrożonych spółek wynosiła 10% potrzeb kapitałowych. Niestety nie tylko przychody i wartości rynkowe wpływają na ryzyko aktywów i kapitału własnego. Dlatego też musimy sumować różne wymiary (np. płynność, rodzaj opinia, opłaty za badanie, opłaty nie związane z badaniem, itp.)

Funkcja dyskryminacji

Zanim przejdziemy dalej, podzielmy naszą populację na dwa zbiory a) zbiór testowy i b) zbiór traningowy:

jak to zrobić: https://www.r-bloggers.com/2021/12/how-to-split-data-into-train-and-test-in-r/

Na początek stworzymy sztuczny wskaźnik, który będzie wskazywał, czy dany wiersz jest w w zestawie danych treningowych lub testowych.

W idealnym świecie, mielibyśmy 70% danych treningowych i 30% danych testowych, co zapewniłoby wysoki poziom dokładności.

split1<- sample(c(rep(0, 0.7 * nrow(bank)), rep(1, 0.3 * nrow(bank))))
head(split1)
## [1] 0 0 0 0 1 0
spt<-table(split1)
spt
## split1
##    0    1 
## 3749 1606

Sprawdźmy, czy próbka testowa ma rzeczywiście 30% to jest 1606 / (3749 +1606) co jest równe 30%.

Teraz definiujemy dwa podzbiory zbioru danych banku (trening i test)

train <-bank[split1==1,]
test <-bank[split1==0,]

Prześledźmy podstawowy model regresji (wskazówki na ten temat zob: https://www.r-bloggers.com/2015/09/how-to-perform-a-logistic-regression-in-r/)

model<- glm(Cap_Req~Revenue_USDx_N/Total_Assets + Book_Value_USDx_N/Total_Assets + Audit_Fees_USDy/Total_Assets, family =binomial(link='logit'), data=train )

sprawdźmy adekwatność modelu:

anova(model, test="Chisq")
## Analysis of Deviance Table
## 
## Model: binomial, link: logit
## 
## Response: Cap_Req
## 
## Terms added sequentially (first to last)
## 
## 
##                                Df Deviance Resid. Df Resid. Dev  Pr(>Chi)    
## NULL                                            1377     1898.8              
## Revenue_USDx_N                  1    0.578      1376     1898.2   0.44696    
## Book_Value_USDx_N               1    4.655      1375     1893.5   0.03096 *  
## Audit_Fees_USDy                 1    0.083      1374     1893.5   0.77365    
## Revenue_USDx_N:Total_Assets     1    0.094      1373     1893.4   0.75933    
## Total_Assets:Book_Value_USDx_N  1   52.172      1372     1841.2 5.086e-13 ***
## Total_Assets:Audit_Fees_USDy    1    1.984      1371     1839.2   0.15893    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Różnica pomiędzy odchyleniem zerowym a odchyleniem resztowym pokazuje jak nasz model radzi sobie w porównaniu z modelem zerowym (model tylko ze stałą). Im większa jest ta różnica, tym lepiej.

Chociaż nie istnieje dokładny odpowiednik R2 regresji liniowej, R2 McFaddena Wskaźnik R2 McFaddena może być użyty do oceny dopasowania modelu.

library(pscl)
## Warning: pakiet 'pscl' został zbudowany w wersji R 4.1.2
## Classes and Methods for R developed in the
## Political Science Computational Laboratory
## Department of Political Science
## Stanford University
## Simon Jackman
## hurdle and zeroinfl functions by Achim Zeileis
model<- glm(Cap_Req~Revenue_USDx_N/Total_Assets + Book_Value_USDx_N/Total_Assets + Audit_Fees_USDy/Total_Assets, family =binomial(link='logit'), data=train )
MFa<-pR2(model)
## fitting null model for pseudo-r2
MFa
##           llh       llhNull            G2      McFadden          r2ML 
## -919.60516110 -949.38823835   59.56615450    0.03137081    0.04230558 
##          r2CU 
##    0.05656596

Nasz McFadden jest bardzo słaby z 3% dlatego sam model służy raczej do celów edukacyjnych.

Moc predykcyjna modelu

W powyższych krokach, krótko oceniliśmy dopasowanie modelu, teraz chcielibyśmy zobaczyć jak model radzi sobie podczas przewidywania na nowym zestawie danych. Ustawiając parametr type=‘response,’ R wyprowadzi prawdopodobieństwa w postaci P(y=1|X). Nasza granica decyzyjna będzie wynosić 0.5. Jeśli P(y=1|X) > 0.5 wtedy y = 1 w przeciwnym razie y=0. Zauważ, że dla niektórych zastosowań inne progi mogą być lepszym rozwiązaniem.

fitted.results <- predict(model,newdata=test,type='response')
fitted.results <- ifelse(fitted.results > 0.5,1,0)

misClasificError <- mean(fitted.results != test$Cap_Req, na.rm = TRUE) # here we need to put aside those recoodrs which results in na
print(paste('Accuracy',1-misClasificError))
## [1] "Accuracy 0.627426810477658"

Dokładność 63% jest raczej niska, ale nieco powyżej losowych 50%.

Krzywa ROC

wykreślimy krzywą ROC i obliczymy AUC (obszar pod krzywą). krzywej), które są typowymi miarami wydajności dla binarnego klasyfikatora binarnego. ROC jest krzywą wygenerowaną przez wykreślenie współczynnika prawdziwych (TPR) względem współczynnika fałszywych wyników pozytywnych (FPR) przy różnych ustawieniach progowych. przy różnych ustawieniach progu, podczas gdy AUC jest obszarem pod krzywą ROC. Jako zasadę kciuka, model o dobrej zdolności predykcyjnej powinien mieć AUC bliższe 1 (1 jest wartością idealną) niż 0,5.

library(ROCR)
## Warning: pakiet 'ROCR' został zbudowany w wersji R 4.1.2
p <- predict(model,newdata=test,type='response')

 p[is.na(p)]<-0 # here we skipped the na value and associated the zero - just for calculation purpsoes
pr <- prediction(p, test$Cap_Req)
prf <- performance(pr, measure = "tpr", x.measure = "fpr")
plot(prf)

auc <- performance(pr, measure = "auc")
auc <- auc@y.values[[1]]
auc
## [1] 0.6599799

Wartość predykcyjna naszego modelu 66% jest całkiem słaba.

analiza pojedynczego banku

Przewidujmy wartość dla ASSOCIATED BANC-CORP na dzień 12/31/2014 elementu test[12,] wobec tego:

predict(model, newdata= test[12,], type="response")
##        15 
## 0.3559064

36% daje nam szansę, że ASSOCIATED BANC-CORP nie przetrwa do następnego sprawozdania fiannsowego (lub będzie przedmiotem działania lub kontroli władz finansowych). działania lub kontroli)

Tak więc, jeśli nasz model ma silną moc predykcyjną, nie będziemy mieli żadnego istotny problem z ASSOCIATED BANC-CORP. W praktyce, modelowanie ekonometryczne opiera się na danych, podlega licznym założeniom i jest ryzykowne, jeśli nie kontroluje się logiki modelu.

W praktyce audytorskiej lub w działalności bankowości (w tym i centralnej), używamy różnych różnych typów modeli jako narzędzi wspomagających podejmowanie decyzji. Zawsze jednak zaczynamy od podstawowych sprawozdań finansowych, budżetu i analizy prognoz do oceny założenia o kontynuacji działalności.

Zadania do samodzielnej pracy

  • Certech s. 188
  • Postaraj się stworzyć model predykcji aktywów zagrożonych o wyższej niż 60% mocy predykcyjnej. mocy niż 60%

Do przeczytania:

Czy opinie o kontynuacji działalności dostarczają przyrostowych informacji do przewidywania niewypłacalności przedsiębiorstw? Gutierrez et al. (2020)

The Relation between Managerial Ability and Audit Fees and Going Concern Opinions Krishnan and Wang (2014)

Czy (Fe)męscy biegli rewidenci obniżają jakość badania? Evidence from Going-Concern Opinions Hardies, Breesch, and Branson (2014)

Implikacje wspólnego świadczenia usług poświadczających w zakresie CSR i rewizji finansowej dla oceny przez biegłych rewidentów ryzyka związanego z kontynuacją działalności Maso et al. (2020)

Bankructwo przedsiębiorstwa a wynagrodzenie firmy audytorskiej. Implikacje dla regulacji rynku rewizji finansowej Piotr; Staszkiewicz (2019)

Literatura

Gutierrez, Elizabeth, Jake Krupa, Miguel Minutti-Meza, and Maria Vulcheva. 2020. “Do Going Concern Opinions Provide Incremental Information to Predict Corporate Defaults?” Review of Accounting Studies 25 (4): 1344–81. https://doi.org/10.1007/s11142-020-09544-x.
Hardies, Kris, Diane Breesch, and Joël Branson. 2014. “Do (Fe)Male Auditors Impair Audit Quality? Evidence from Going-Concern Opinions.” European Accounting Review 25 (1): 7–34. https://doi.org/10.1080/09638180.2014.921445.
Krishnan, Gopal V., and Changjiang Wang. 2014. “The Relation Between Managerial Ability and Audit Fees and Going Concern Opinions.” AUDITING: A Journal of Practice & Theory 34 (3): 139–60. https://doi.org/10.2308/ajpt-50985.
Maso, Lorenzo Dal, Gerald J. Lobo, Francesco Mazzi, and Luc Paugam. 2020. “Implications of the Joint Provision of CSR Assurance and Financial Audit for Auditors’ Assessment of Going-Concern Risk.” Contemporary Accounting Research 37 (2): 1248–89. https://doi.org/10.1111/1911-3846.12560.
Staszkiewicz, Piotr; 2019. Bankructwo przedsiȩbiorstwa a wynagrodzenie firmy audytorskiej. Implikacje dla regulacji rynku rewizji finansowej. Warszawa: Oficyna Wyd. SGH.
Staszkiewicz, Piotr, and Renata Karkowska. 2021. “Audit Fee and Banks Communication Sentiment.” Economic Research-Ekonomska Istraživanja, October, 1–21. https://doi.org/10.1080/1331677x.2021.1985567.