https://rpubs.com/staszkiewicz/817124

Dane: https://www.dropbox.com/scl/fo/sajrtchhqeftivhd4zwqu/h?rlkey=u37l184e2khoxfufulsyq00kc&dl=0

Plik: Bank.csv

Wstęp adresowanie w R

Mamy czery podstawowe obiekty w R - Wektor - c() - Macierz - matrix() - Ramkę danych - data.frame() - Litę - list()

Wektor

Wektor definujemy funcją c() np. c(“a”,12,“#45:”)

wektor<- c("a",12,"#45:")
wektor
## [1] "a"    "12"   "#45:"

Wektor może być albo numeryczny albo znakowy, albo mieszany. Do elemntów wekotra odwołujemy się poprzez index wektor[1] oznacza pierewszy wyraz wektora

wektor[1]
## [1] "a"

Kilka spobów adresowania

# adresowanie kolejnych elementów np od drugiego do trzeciego
wektor[2:3]
## [1] "12"   "#45:"
# element ostatni - wykorzystaniem funcji długości`length()`
wektor[length(wektor)]   
## [1] "#45:"
# element ostatni - w wykorzystaniem funcji tail
tail(wektor, 1)
## [1] "#45:"
# adesowanie wszyskich poza dwoma pierwszymi używamy znak minus
wektor[-c(1,2)]
## [1] "#45:"
# lub poza trzeci elementem
wektor[-3]
## [1] "a"  "12"

Adresowanie wektora poprzez odwolanie do nazy: 1. nadajem nazwy wektorowi names(wekotr)<-c("ala", "ma", "kota") 2. odwołujemy sie wkektor[nazwa], np. wektor[“ma”]

names(wektor)<-c("ala", "ma", "kota")
wektor["ma"]
##   ma 
## "12"

Proszę zauważyć iż nazwa jest podawana poperzez “” lub ’’ .

Dla wektora użycie podwójnyhch nawiasów kwadratowych [[]] zwraca tożsamą wartość jak dla []. Dodatkowo funcja pluck() pozwala na zwrot elementu z wektora.

# Bezpośrednio
wektor[[1]]
## [1] "a"
# aby uzyskać operator infix `%>%` - pipline
library(dplyr) # to get infix operator `%>%` - pipline
## 
## Dołączanie pakietu: 'dplyr'
## Następujące obiekty zostały zakryte z 'package:stats':
## 
##     filter, lag
## Następujące obiekty zostały zakryte z 'package:base':
## 
##     intersect, setdiff, setequal, union
# aby uzyskać funkcję pluck()
library(purrr) # to get the pluck() function

wektor %>% pluck(3)
## [1] "#45:"

Macierz

Macierz definowana jest funkcją matrix() opis help(matrix). Zdefinujmy macierz 3x3 od 1 do 9. Wymaga podania zbioru danych, liczy kolumn, lub wierzy, oraz w jaki sposób maja być wprowadzane dane po kolumanch czy po wieszach.

macierz <- matrix (1:9, nrow=3, byrow = TRUE)

Macierz jest stukturą dwuwymiarową, nie może zwierwać w sobie wartości alfanumerycznych i numerycznych próba takiego zdefinowania powoduje przekształcenie wszystkich wartości do wartości alfanumerycznych.

test<- matrix(c(1,2,3,"ala",5,4), ncol=2)
test
##      [,1] [,2] 
## [1,] "1"  "ala"
## [2,] "2"  "5"  
## [3,] "3"  "4"

Indeksowanie macierzy

Do elementu macierzy odwołujemy się poprzez podanie numeru wiersza, i numeru kolumny

test[2,1]
## [1] "2"
# to nie to samo co
test[1,2]
## [1] "ala"

Aby odwołać się do zadanej kolumny lub wiersza zostawiamy wolne miejsce po lub przed przecinikeim np. piewsza kolumna w macierzy.

macierz
##      [,1] [,2] [,3]
## [1,]    1    2    3
## [2,]    4    5    6
## [3,]    7    8    9
# cały pierwszy wiersz
macierz[1,]
## [1] 1 2 3
# cała druga columna
macierz[,2]
## [1] 2 5 8

Możemy także nazwać kolumny i wiersze np. kol1, kol2, kol3

colnames(macierz)<-c("col1","Col2","col3")
macierz
##      col1 Col2 col3
## [1,]    1    2    3
## [2,]    4    5    6
## [3,]    7    8    9

i adresować jak w przypadku wektora nazwą np. cała kolumna 2. Uwaga: nazwa musi być w “” lub ’’, R jest wrażliwy na małe i duże litery

macierz[,"Col2"]
## [1] 2 5 8

Uwaga zastosowanie [[]] w macierzy jest trochę inne. Otórz zwraca kolejny element licząc po wierszach.

macierz
##      col1 Col2 col3
## [1,]    1    2    3
## [2,]    4    5    6
## [3,]    7    8    9
macierz[[7]] # zwraca siódmy wyraz po wierszach tj. pierwszy wiersz trzeciej kolumny
## [1] 3
macierz[2][1] # zwraca z drugiego wiersza pierwsza kolumne 
## [1] 4
macierz[2,1] # co jest równoznaczne z zapisem przecinkowym, ale uwaga w tym przypadku otrzymujemy nazwę kolumny
## col1 
##    4

Pozostałe schematy adresowania w macierzy są analogiczne do wektora.

Ramka danych

Macierz przechowuje tylko jeden typ danych albo numeryczny, albo alfanumeryczny. W sytuacji, gdy chcemy w kolumach mieć różne typy danych np. sumę bilanową jedna koluna a druga nazwa przedsięborstwa to macierz zwróci wszystko jako wartość alfanumeryczne
firma <-c(‘coca’,‘abb’,‘fb’) suma_bilansowa <- c(100,200,80)

firma <-c('coca','abb','fb')
class(firma) # pokazuje typ danych
## [1] "character"
suma_bilansowa <- c(100,200,80)
class(suma_bilansowa)
## [1] "numeric"
dane<- matrix(c(firma, suma_bilansowa),ncol=3,byrow=TRUE)
class(dane)
## [1] "matrix" "array"
dane
##      [,1]   [,2]  [,3]
## [1,] "coca" "abb" "fb"
## [2,] "100"  "200" "80"

Takiego problemu nie będziemy mieli w przypadku ramki danych funckcja data.frame()

df<- data.frame(firma, suma_bilansowa)
class(df)
## [1] "data.frame"
df
##   firma suma_bilansowa
## 1  coca            100
## 2   abb            200
## 3    fb             80

Indeksowanie ramki dancyh

Indeksowanie ramki danych poprzez [] lub [[]] lub nazyw jest analogicznie do macierzy. Z tym, że w przypadku ramki danych możemy także używać znaku dolara $ który odnosi się do kolumny, która w istocie taktowana jest jako zmienna albo numeryczna, albo czynnikowa (factor), albo nazwa alfanumeryczna

# całość ramki
df
##   firma suma_bilansowa
## 1  coca            100
## 2   abb            200
## 3    fb             80
#Wywołanie tylko nazw firm
df$firma
## [1] "coca" "abb"  "fb"
df$suma_bilansowa
## [1] 100 200  80
#sprawdzenie typu zmiennej
class(df$firma)
## [1] "character"
class(df$suma_bilansowa)
## [1] "numeric"
# wartość sumy bilanoswej dla Abb 
df[2,2]
## [1] 200
#przypisanie nazw firm do naz wierszy
rownames(df) <- df$firma
df
##      firma suma_bilansowa
## coca  coca            100
## abb    abb            200
## fb      fb             80
# wywolanie sumy bialsnowej fb
df[3,2]
## [1] 80
# wywołanie wszystich danych (całego rzędu)
df['fb',]
##    firma suma_bilansowa
## fb    fb             80
# wywołanie sumy bilnasowej poprzez odwolanie sie do nazw ! uwaga "" lub `` ponieważ nazwy nie są liczbami
df['fb','suma_bilansowa']
## [1] 80

Lista

Macierz potrafi przechować jeden typ danych, ramka różne typy w różnych kolumnach (zmiennych). Ale zarówno macierz jak i ramka danych przechowuje dane w kolumnach o tej samej długości. Owe dane są w istocie wektorami. Od czasu do czasu porzebujemy strukturę, która będzie przechowywać różne obiekty, o róznej dlugości, np. macierz i wektor i ramkę danych. Do tego służy lista. Zdefinujmy naszą listę jko obiekt zwierający, wektor, macierz i ramkę danych

lista<-list(wektor, macierz, df)
lista
## [[1]]
##    ala     ma   kota 
##    "a"   "12" "#45:" 
## 
## [[2]]
##      col1 Col2 col3
## [1,]    1    2    3
## [2,]    4    5    6
## [3,]    7    8    9
## 
## [[3]]
##      firma suma_bilansowa
## coca  coca            100
## abb    abb            200
## fb      fb             80

Proszę zauważyć, iż by adresować listę potrzebujemy [[]]. Otórz [[]] odnosi się do podstawowego obiektu, np. wektora, macierzy, lub ramki danych. W naszym przypadku lista[[1]] - to nasz wektor a następnie potrzebujemy zaindeksować wekto np. lista[[1]][2] tj. w pierwszym obiekcie listy - wekotrze - pokaż drugi element.

# lista
lista
## [[1]]
##    ala     ma   kota 
##    "a"   "12" "#45:" 
## 
## [[2]]
##      col1 Col2 col3
## [1,]    1    2    3
## [2,]    4    5    6
## [3,]    7    8    9
## 
## [[3]]
##      firma suma_bilansowa
## coca  coca            100
## abb    abb            200
## fb      fb             80
# pierwszy obiekt
lista[[1]]
##    ala     ma   kota 
##    "a"   "12" "#45:"
# pierwszy obiekt drugi element 
lista[[1]][2]
##   ma 
## "12"

W przypadku uodwołania sie do ramki danych w naszej liści musimy wkskazać dwuwymiarowo obiekty

# ramka dancyh
lista[[3]]
##      firma suma_bilansowa
## coca  coca            100
## abb    abb            200
## fb      fb             80
# suma bilansowa dla coca coli
lista[[3]][1,2]
## [1] 100

Dużo wyników obliczeń R przechowuje w postaci listy, by zobaczyć jej strukure możemy “rozkliać” w panelu Envriment strzałkę przy obiekcie lub użyć z konsoli funkji str()

str(lista)
## List of 3
##  $ : Named chr [1:3] "a" "12" "#45:"
##   ..- attr(*, "names")= chr [1:3] "ala" "ma" "kota"
##  $ : int [1:3, 1:3] 1 4 7 2 5 8 3 6 9
##   ..- attr(*, "dimnames")=List of 2
##   .. ..$ : NULL
##   .. ..$ : chr [1:3] "col1" "Col2" "col3"
##  $ :'data.frame':    3 obs. of  2 variables:
##   ..$ firma         : chr [1:3] "coca" "abb" "fb"
##   ..$ suma_bilansowa: num [1:3] 100 200 80

Funkcja ta pokazuje typ obiektu oraz typ danych wewnętrzych, oraz jeśli istnieją to schemat nazw.

Analiza rynku rewizji fiansnowej segment bankowy w US

Zdanie polega na tym by zanalizować strukturę audytorów na rynku w US w przemyśle bankowym. Zastosujemy dane pierwotne z artykułu Staszkiewicz, P., & Karkowska, R. (2021). Audit fee and banks’ communication sentiment. Economic Research-Ekonomska Istraživanja. https://doi.org/10.1080/1331677X.2021.1985567

Proszę ściągnąć na własny komputer i wgrać je do R. Uwaga: dane mogą być wykorzystywane po zajęciach jedynie dla celów niekomercyjnych po wskazaniu oryginalnego ź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()) #

Zobaczmy strukturę bazy danych można to zrobić z panelu “Environment” klikając na strzałce przy nazwie bazy “bank” lub podając komendę

str(bank)
## 'data.frame':    5356 obs. of  197 variables:
##  $ CIK_Code                       : int  7789 7789 7789 7789 7789 7789 7789 7789 7789 7789 ...
##  $ Year_Ended                     : int  2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 ...
##  $ Companyx                       : chr  "ASSOCIATED BANC-CORP" "ASSOCIATED BANC-CORP" "ASSOCIATED BANC-CORP" "ASSOCIATED BANC-CORP" ...
##  $ Tickerx                        : chr  "ASB" "ASB" "ASB" "ASB" ...
##  $ Marketx                        : chr  "NYSE" "NYSE" "NYSE" "NYSE" ...
##  $ IRS_Number                     : int  391098068 391098068 391098068 391098068 391098068 391098068 391098068 391098068 391098068 391098068 ...
##  $ Bus_Street_1x                  : chr  "433 MAIN STREET" "433 MAIN STREET" "433 MAIN STREET" "433 MAIN STREET" ...
##  $ Bus_Street_2x                  : chr  NA NA NA NA ...
##  $ Cityx                          : chr  "GREEN BAY" "GREEN BAY" "GREEN BAY" "GREEN BAY" ...
##  $ Countyx                        : chr  "Brown" "Brown" "Brown" "Brown" ...
##  $ State_Codex                    : chr  "WI" "WI" "WI" "WI" ...
##  $ State_Namex                    : chr  "WISCONSIN" "WISCONSIN" "WISCONSIN" "WISCONSIN" ...
##  $ Region                         : chr  "US Midwest" "US Midwest" "US Midwest" "US Midwest" ...
##  $ Zipx                           : chr  "54301" "54301" "54301" "54301" ...
##  $ Bus_Phonex                     : chr  "(920) 491-7500" "(920) 491-7500" "(920) 491-7500" "(920) 491-7500" ...
##  $ Incorporation_State_Code       : chr  "WI" "WI" "WI" "WI" ...
##  $ Parent_CIKx                    : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ Parent_Namex                   : chr  "" "" "" "" ...
##  $ SIC_Codex                      : int  6022 6022 6022 6022 6022 6022 6022 6022 6022 6022 ...
##  $ SIC_Descriptionx               : chr  "State Commercial Banks" "State Commercial Banks" "State Commercial Banks" "State Commercial Banks" ...
##  $ NAICS_Codex                    : int  522110 522110 522110 522110 522110 522110 522110 522110 522110 522110 ...
##  $ NAICS_Descriptionx             : chr  "Commercial Banking" "Commercial Banking" "Commercial Banking" "Commercial Banking" ...
##  $ Filer_Actx                     : int  34 34 34 34 34 34 34 34 34 34 ...
##  $ Auditorx                       : chr  "KPMG LLP" "KPMG LLP" "KPMG LLP" "KPMG LLP" ...
##  $ Auditor_Keyx                   : int  4 4 4 4 4 4 4 4 4 4 ...
##  $ Audit_Fees_USDx                : int  288000 405700 403100 380120 842700 725000 748400 748825 813700 894200 ...
##  $ Audit_Related_FeesUSD          : int  0 161600 152300 162200 172200 151100 188400 185000 271600 265700 ...
##  $ Benefit_Plan_Related_Fees_USD  : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ FISDI_Fees_USD                 : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ Tax_Related_Fees_USD           : int  0 39675 30547 94830 92091 0 0 0 0 0 ...
##  $ Tax_Related_Fees__ComplianceUSD: num  NA NA NA NA NA NA NA NA NA NA ...
##  $ Tax_Related_Fees__NonComplianc : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ OtherMisc_Fees_USD             : int  452048 0 0 0 0 0 0 0 0 0 ...
##  $ Total_Non_Audit_Fees_USD       : int  452048 201275 182847 257030 264291 151100 188400 185000 271600 265700 ...
##  $ Total_Fees_USDx                : int  740048 606975 585947 637150 1106990 876100 936800 933825 1085300 1159900 ...
##  $ Currency                       : chr  "USD" "USD" "USD" "USD" ...
##  $ Fees_Include_Subsidiaries      : chr  "" "" "" "" ...
##  $ Fees_Included_In_Parent_Filings: logi  NA NA NA NA NA NA ...
##  $ Restatement                    : int  0 1 0 0 0 0 0 0 0 0 ...
##  $ Year_Ended_Datex               : chr  "12/31/2000" "12/31/2001" "12/31/2002" "12/31/2003" ...
##  $ Year_Ended_Month_Ideal         : int  12 12 12 12 12 12 12 12 12 12 ...
##  $ Fiscal_Year_Ends_Currently_Repo: int  1231 1231 1231 1231 1231 1231 1231 1231 1231 1231 ...
##  $ Sourcex                        : chr  "DEF 14A" "DEF 14A" "DEF 14A" "DEF 14A" ...
##  $ Source_Datex                   : int  36972 37700 37700 38061 38427 38775 39154 39518 39895 40253 ...
##  $ Stock_Price_USDx               : num  19375 0.4 1.53 1.12 5.85 ...
##  $ Stock_Price_Datex              : int  36891 37256 37621 37986 38352 38686 39051 NA NA NA ...
##  $ Market_Cap_USDx                : num  14538258 3476132 13333578 10493438 75146070 ...
##  $ Market_Cap_USDx_N              : num  14538258 3476132 13333578 10493438 75146070 ...
##  $ Finacls_Datex                  : chr  "2000-12-31" "2001-12-31" "2002-12-31" "2003-12-31" ...
##  $ Revenue_USDx                   : num  1.12e+09 1.08e+09 1.01e+09 9.74e+08 9.77e+08 ...
##  $ Revenue_USDx_N                 : num  1.12e+09 1.08e+09 1.01e+09 9.74e+08 9.77e+08 ...
##  $ Earnings_USDx                  : num  1.68e+08 1.80e+08 2.11e+08 2.29e+08 2.58e+08 ...
##  $ Earnings_USDx_N                : num  1.68e+08 1.80e+08 2.11e+08 2.29e+08 2.58e+08 ...
##  $ Book_Value_USDx                : num  9.69e+08 1.07e+09 1.21e+09 1.24e+09 1.22e+09 ...
##  $ Book_Value_USDx_N              : num  9.69e+08 1.07e+09 1.21e+09 1.24e+09 1.22e+09 ...
##  $ Assets_USDx                    : num  1.31e+10 1.36e+10 1.50e+10 1.52e+10 2.05e+10 ...
##  $ Assets_USDx_N                  : num  1.31e+10 1.36e+10 1.50e+10 1.52e+10 2.05e+10 ...
##  $ State_Region                   : chr  "US Midwest" "US Midwest" "US Midwest" "US Midwest" ...
##  $ Audit_Opinion_Key              : int  65938 55697 4468 37294 82504 99313 119602 146007 168700 188432 ...
##  $ Auditor_City                   : chr  "Chicago" "Chicago" "Chicago" "Chicago" ...
##  $ Auditor_State_Code             : chr  "IL" "IL" "IL" "IL" ...
##  $ Auditor_State_Name             : chr  "ILLINOIS" "ILLINOIS" "ILLINOIS" "ILLINOIS" ...
##  $ Auditor_State_Region           : chr  "US Midwest" "US Midwest" "US Midwest" "US Midwest" ...
##  $ Year_Ended_Ideal               : int  2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 ...
##  $ Month_Ended_Ideal              : int  12 12 12 12 12 12 12 12 12 12 ...
##  $ Signature_Date                 : chr  "1/18/2001" "1/17/2002" "1/16/2003" "3/8/2004" ...
##  $ Sourcey                        : chr  "10-K" "10-K" "10-K" "10-K" ...
##  $ Source_Datey                   : chr  "3/22/2001" "3/21/2002" "3/20/2003" "3/15/2004" ...
##  $ Going_Concern                  : chr  "No" "No" "No" "No" ...
##  $ Going_Concern_Issue_Key_List   : chr  "" "" "" "" ...
##  $ Going_Concern_Issue_Phrase_List: chr  "" "" "" "" ...
##  $ Accounting_Basis               : chr  "GAAP - US" "GAAP - US" "GAAP - US" "GAAP - US" ...
##  $ Is_Integrated_Audit            : chr  "No" "No" "No" "No" ...
##  $ Is_Additiol_Opinion            : chr  "No" "No" "No" "No" ...
##  $ Additiol_Sigture_Date_1        : chr  "" "" "" "" ...
##  $ Additiol_Sigture_Date_2        : chr  "" "" "" "" ...
##  $ Additiol_Sigture_Date_3        : logi  NA NA NA NA NA NA ...
##  $ Additiol_Sigture_Date_4        : logi  NA NA NA NA NA NA ...
##  $ Additiol_Sigture_Date_5        : logi  NA NA NA NA NA NA ...
##  $ Filer_Status                   : chr  NA NA "Accelerated Filer" "Accelerated Filer" ...
##  $ Fees_Fiscal_Year_Ended         : int  2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 ...
##  $ Audit_Fees_USDy                : int  288000 405700 403100 380120 842700 725000 748400 748825 813700 894200 ...
##  $ NonAudit_Fees_USD              : int  452048 201275 182847 257030 264291 151100 188400 185000 271600 265700 ...
##  $ Total_Fees_USDy                : int  740048 606975 585947 637150 1106990 876100 936800 933825 1085300 1159900 ...
##  $ Stock_Price_USDy               : num  19375 0.4 1.53 1.12 5.85 ...
##  $ Stock_Price_Datey              : chr  "12/31/2000" "12/31/2001" "12/31/2002" "12/31/2003" ...
##  $ Market_Cap_USDy                : num  14538258 3476132 13333578 10493438 75146070 ...
##  $ Fincials_Datey                 : chr  "2000-12-31" "2001-12-31" "2002-12-31" "2003-12-31" ...
##  $ Revenue_USDy                   : num  1.12e+09 1.08e+09 1.01e+09 9.74e+08 9.77e+08 ...
##  $ Earnings_USDy                  : num  1.68e+08 1.80e+08 2.11e+08 2.29e+08 2.58e+08 ...
##  $ Book_Value_USDy                : num  9.69e+08 1.07e+09 1.21e+09 1.24e+09 1.22e+09 ...
##  $ Assets_USDy                    : num  1.31e+10 1.36e+10 1.50e+10 1.52e+10 2.05e+10 ...
##  $ Country_of_Headquarters        : chr  "United States of America" "United States of America" "United States of America" "United States of America" ...
##  $ Company_Common_Name            : chr  "Associated Banc-Corp" "Associated Banc-Corp" "Associated Banc-Corp" "Associated Banc-Corp" ...
##  $ Total_Assets                   : num  1.31e+10 1.36e+10 1.50e+10 1.52e+10 2.05e+10 ...
##  $ Total_Equity                   : num  9.69e+08 1.07e+09 1.27e+09 1.35e+09 2.02e+09 ...
##  $ ROA                            : num  1.31 1.34 1.47 1.51 1.44 ...
##  $ Net_Interest_Margin_Total_     : num  3.36 3.62 3.95 3.84 3.8 3.64 3.62 3.6 3.65 NA ...
##  $ Fee_Revenue_                   : num  26.3 28.3 27.9 29.8 25.5 ...
##   [list output truncated]

Proszę zauważyć, iż przed nazwą zmiennej mamy znak dolara który umożliwia nam odwołanie się do zmiennej w danym obiekcie w kodzie r. np. bank$ROA odwołuje się do kolumny z informacją o stosunku wyniku do aktywów. Jak widać powyżej to rozwiązanie jest dość niewygodne dlaczego do wizualiacji stosuje się raczej funkcję View, która daje podobny wgląd jak w karcie excela.

View(bank)

Mamy ok. 5000 obserwacji i 200 zmiennych, w Excelu obróbka takich danych będzie uciążliwa i trudna do audytownia, bo Excel poza funkcją “audyt” nie zostawia śladu audytowego. W przeciwieństwie do Knit’a.

Problem 1

Który bank zapłacił najwięcej za audyt

#wpierw sprawdzimy jakie było największe wynagrodzenie w bazie 
max(bank$Total_Fees_USDx)
## [1] 128000000
# znak $ pozwala wybrać zmienną z obieku bank

Mając wartość wygenerujemy nazwę używając funkcji subset i jej parametru select (oczywiści można to zrobić na wiele sposobów)

naj<-subset(bank,Total_Fees_USDx >= 128000000, select= Companyx)
naj
##                      Companyx
## 292 BANK OF AMERICA CORP /DE/

Zadanie 1

Spróbuj wygenerować wszystkie informacje, które dotyczą największej trnsakcji

naj_all<-subset(bank,Total_Fees_USDx >= 128000000)
View(naj_all)

Teraz zobaczmy ilu biegłych rewidentów (firm audytorskich) obsługiwało rynek bankowy. Wprowadzimy dla ułatwienia wynik do obiektu FA i posortujemy malejąco, by przy okazji wiedzieć od razu kto ma jaki udział w rynku

FA<-table(bank$Auditorx)
View(sort(FA,decreasing = TRUE))

A teraz jeszcze sobie zrobimy trzecią kolumnę, która ukaże nam udział procentowy, a mianowicie

as.data.frame(FA) # sortowanie wektora było trudne to skonwertowaliśmy na ramkę
##                                               Var1 Freq
## 1                   Alexander Thompson Arnold PLLC    6
## 2                          AM Peisch & Company LLP    1
## 3                   Anderson & Associates LLP (WA)    2
## 4                    Anness Gerlach & Williams Inc    6
## 5                             Arnett & Foster PLLC   15
## 6                       Arnett Carbis Toothman LLP    2
## 7                      Arnett Foster Toothman PLLC    1
## 8                              Arthur Andersen LLP   42
## 9                         Baker Newman & Noyes LLC   16
## 10                  Baker Tilly Virchow Krause LLP   41
## 11            Barfield Murphy Shank & Smith LLC/PC    2
## 12                                 BDO Seidman LLP   21
## 13                                     BDO USA LLP  122
## 14                        Beard Miller Company LLP  135
## 15           Berry Dunn McNeil & Parker LLC (BDMP)   60
## 16                                         BKD LLP  287
## 17                Bonadio & Co LLP (Bonadio Group)    5
## 18                     Brown Edwards & Company LLP   16
## 19                           Burr Pilger Mayer Inc    3
## 20                   Carr Riggs & Ingram (CRI) LLC   14
## 21                     Castaing Hussey & Lolan LLC   17
## 22         Cherry Bekaert & Holland LLP (Inactive)   10
## 23                     Cherry Bekaert LLP (Active)    4
## 24                          Clifton D Bodiford CPA    6
## 25                           Clifton Gunderson LLP   33
## 26                          CliftonLarsonAllen LLP   20
## 27                    Cobitz Vandenberg & Fennessy   15
## 28                          CPA Associates PA (FL)    1
## 29                      Crowe Chizek & Company LLP  245
## 30                                Crowe Chizek LLP    6
## 31                               Crowe Horwath LLP  395
## 32                 Cummings Ristau & Associates PC    7
## 33                            Davis Kinard & Co PC    7
## 34                                       Delap LLP    8
## 35                           Deloitte & Touche LLP    7
## 36                         Demetrius & Company LLC   10
## 37                   Dixon Francis Davis & Company    2
## 38                        Dixon Hughes Goodman LLP   71
## 39                               Dixon Hughes PLLC   38
## 40                                 Dixon Odom PLLC    5
## 41                            Draffin & Tucker LLP    3
## 42                              Eggleston Smith PC    3
## 43                 Elliott Davis Decosimo LLC/PLLC   35
## 44               Elliott Davis LLC/PLLC (Inactive)  104
## 45                               Ernst & Young LLP  495
## 46                     Francis & Company CPAs (GA)    1
## 47                       Fust Charles Chambers LLP    2
## 48                              Grant Thornton LLP  125
## 49                        Grimsley White & Company    2
## 50                       Hacker Johnson & Smith PA   18
## 51                          Hannis T Bourgeois LLP    3
## 52               Hazlett Lewis & Bieter (HLB) PLLC    7
## 53                     Hill Barth & King (HBK) LLC    3
## 54                                       Horne LLP   28
## 55                      Hutchinson & Bloodgood LLP   12
## 56                               JD Cloud & Co LLP   14
## 57                            JH Williams & Co LLP   23
## 58                          Jones & Kirkpatrick PC    5
## 59                                JonesBaggett LLP    1
## 60                           JW Hunt & Company LLP   15
## 61           Kirkpatrick Phillips & Miller CPAs PC    5
## 62               Knight Vale & Gregory Inc PS/PLLC    1
## 63                                        KPMG LLP 1001
## 64                         Kraft Miles & Tatum LLC    3
## 65                                  KraftCPAs PLLC    7
## 66                                    LaPorte APAC    5
## 67                   LaPorte Sehrt Romig & Hand PC    2
## 68                           Larrowe & Company PLC    2
## 69                   Larsson Woodyard & Henson LLP    2
## 70                         Maggart & Associates PC   13
## 71                           Mauldin & Jenkins LLC   41
## 72                                  Mazars USA LLP    1
## 73                          McGladrey & Pullen LLP  142
## 74                                   McGladrey LLP   41
## 75       McNair McLemore Middlebrooks & Co LLC/LLP   16
## 76                           Michael R Ferraro CPA    6
## 77                     Michael Trokey & Company PC    5
## 78                           Miller Ellin & Co LLP    1
## 79                           Monroe Shine & Co Inc   27
## 80                                  Moss Adams LLP  129
## 81                                       Olive LLP    8
## 82                              Packer Thomas CPAs    3
## 83                            Parente Randolph LLC   11
## 84                             Parente Randolph PC    8
## 85                                ParenteBeard LLC  123
## 86                                 Perry-Smith LLP   47
## 87                      Piltz Williams LaRosa & Co    6
## 88                             Plante & Moran PLLC   79
## 89                         Porter Keadle Moore LLC   87
## 90                Postlethwaite & Netterville APAC    4
## 91                      PricewaterhouseCoopers LLP  159
## 92                        Prociak & Associates LLC    1
## 93                    Pugh & Company PC (Inactive)    5
## 94                                 Radics & Co LLC    3
## 95                   Rayburn Bates & Fitzgerald PC   11
## 96                        Rayburn Betts & Bates PC    4
## 97                           Rayburn Fitzgerald PC    1
## 98                              Rehmann Robson LLC   11
## 99                            Rowles & Company LLP   28
## 100                                     RSM US LLP   33
## 101                        SB Hoover & Company LLP    3
## 102                 Shatswell MacLeod & Company PC   46
## 103             Smith Elliott Kearns & Company LLC   43
## 104           Sperry Cuono Holgate & Churchill CPA    1
## 105 Squar Milner Peterson Miranda & Williamson LLP    4
## 106                             SR Snodgrass PC/AC  169
## 107                              Stambaugh Ness PC    4
## 108                           Stegman & Company PA   54
## 109                                  Tanner LLC/LC    3
## 110                              TE Lott & Company   15
## 111                                  TGM Group LLC    8
## 112                   Thigpen Jones Seaton & Co PC   13
## 113          Thompson Greenspon & Co PC (Inactive)    3
## 114                            TJS Deemer Dana LLP    4
## 115                        Trice Geary & Myers LLC    9
## 116                                        UHY LLP    7
## 117                       Urbach Kahn & Werlin LLP    4
## 118               Vavrinek Trine Day & Company LLP   43
## 119                   Virchow Krause & Company LLP    6
## 120                         Whittlesey & Hadley PC    4
## 121                                     Wipfli LLP   27
## 122                   Wipfli Ullrich Bertelson LLP    2
## 123                 Witt Mares Eggleston Smith PLC    1
## 124                         Wolf & Company PC (MA)   59
## 125                        Yount Hyde & Barbour PC  139
FA1<-as.data.frame(FA)
sum(FA1$Freq) #podsumowujemy wszystkie audyty
## [1] 5356
FA1$RelFreq<-FA1$Freq/sum(FA1$Freq) # generujmey trzecią kolumne z udziałem w rynku
FA1[order(FA1$RelFreq, decreasing=TRUE),]# i sortujemy malejaco
##                                               Var1 Freq      RelFreq
## 63                                        KPMG LLP 1001 0.1868932039
## 45                               Ernst & Young LLP  495 0.0924197162
## 31                               Crowe Horwath LLP  395 0.0737490665
## 16                                         BKD LLP  287 0.0535847647
## 29                      Crowe Chizek & Company LLP  245 0.0457430919
## 106                             SR Snodgrass PC/AC  169 0.0315533981
## 91                      PricewaterhouseCoopers LLP  159 0.0296863331
## 73                          McGladrey & Pullen LLP  142 0.0265123226
## 125                        Yount Hyde & Barbour PC  139 0.0259522031
## 14                        Beard Miller Company LLP  135 0.0252053771
## 80                                  Moss Adams LLP  129 0.0240851382
## 48                              Grant Thornton LLP  125 0.0233383122
## 85                                ParenteBeard LLC  123 0.0229648992
## 13                                     BDO USA LLP  122 0.0227781927
## 44               Elliott Davis LLC/PLLC (Inactive)  104 0.0194174757
## 89                         Porter Keadle Moore LLC   87 0.0162434653
## 88                             Plante & Moran PLLC   79 0.0147498133
## 38                        Dixon Hughes Goodman LLP   71 0.0132561613
## 15           Berry Dunn McNeil & Parker LLC (BDMP)   60 0.0112023898
## 124                         Wolf & Company PC (MA)   59 0.0110156833
## 108                           Stegman & Company PA   54 0.0100821509
## 86                                 Perry-Smith LLP   47 0.0087752054
## 102                 Shatswell MacLeod & Company PC   46 0.0085884989
## 103             Smith Elliott Kearns & Company LLC   43 0.0080283794
## 118               Vavrinek Trine Day & Company LLP   43 0.0080283794
## 8                              Arthur Andersen LLP   42 0.0078416729
## 10                  Baker Tilly Virchow Krause LLP   41 0.0076549664
## 71                           Mauldin & Jenkins LLC   41 0.0076549664
## 74                                   McGladrey LLP   41 0.0076549664
## 39                               Dixon Hughes PLLC   38 0.0070948469
## 43                 Elliott Davis Decosimo LLC/PLLC   35 0.0065347274
## 25                           Clifton Gunderson LLP   33 0.0061613144
## 100                                     RSM US LLP   33 0.0061613144
## 54                                       Horne LLP   28 0.0052277819
## 99                            Rowles & Company LLP   28 0.0052277819
## 79                           Monroe Shine & Co Inc   27 0.0050410754
## 121                                     Wipfli LLP   27 0.0050410754
## 57                            JH Williams & Co LLP   23 0.0042942494
## 12                                 BDO Seidman LLP   21 0.0039208364
## 26                          CliftonLarsonAllen LLP   20 0.0037341299
## 50                       Hacker Johnson & Smith PA   18 0.0033607170
## 21                     Castaing Hussey & Lolan LLC   17 0.0031740105
## 9                         Baker Newman & Noyes LLC   16 0.0029873040
## 18                     Brown Edwards & Company LLP   16 0.0029873040
## 75       McNair McLemore Middlebrooks & Co LLC/LLP   16 0.0029873040
## 5                             Arnett & Foster PLLC   15 0.0028005975
## 27                    Cobitz Vandenberg & Fennessy   15 0.0028005975
## 60                           JW Hunt & Company LLP   15 0.0028005975
## 110                              TE Lott & Company   15 0.0028005975
## 20                   Carr Riggs & Ingram (CRI) LLC   14 0.0026138910
## 56                               JD Cloud & Co LLP   14 0.0026138910
## 70                         Maggart & Associates PC   13 0.0024271845
## 112                   Thigpen Jones Seaton & Co PC   13 0.0024271845
## 55                      Hutchinson & Bloodgood LLP   12 0.0022404780
## 83                            Parente Randolph LLC   11 0.0020537715
## 95                   Rayburn Bates & Fitzgerald PC   11 0.0020537715
## 98                              Rehmann Robson LLC   11 0.0020537715
## 22         Cherry Bekaert & Holland LLP (Inactive)   10 0.0018670650
## 36                         Demetrius & Company LLC   10 0.0018670650
## 115                        Trice Geary & Myers LLC    9 0.0016803585
## 34                                       Delap LLP    8 0.0014936520
## 81                                       Olive LLP    8 0.0014936520
## 84                             Parente Randolph PC    8 0.0014936520
## 111                                  TGM Group LLC    8 0.0014936520
## 32                 Cummings Ristau & Associates PC    7 0.0013069455
## 33                            Davis Kinard & Co PC    7 0.0013069455
## 35                           Deloitte & Touche LLP    7 0.0013069455
## 52               Hazlett Lewis & Bieter (HLB) PLLC    7 0.0013069455
## 65                                  KraftCPAs PLLC    7 0.0013069455
## 116                                        UHY LLP    7 0.0013069455
## 1                   Alexander Thompson Arnold PLLC    6 0.0011202390
## 4                    Anness Gerlach & Williams Inc    6 0.0011202390
## 24                          Clifton D Bodiford CPA    6 0.0011202390
## 30                                Crowe Chizek LLP    6 0.0011202390
## 76                           Michael R Ferraro CPA    6 0.0011202390
## 87                      Piltz Williams LaRosa & Co    6 0.0011202390
## 119                   Virchow Krause & Company LLP    6 0.0011202390
## 17                Bonadio & Co LLP (Bonadio Group)    5 0.0009335325
## 40                                 Dixon Odom PLLC    5 0.0009335325
## 58                          Jones & Kirkpatrick PC    5 0.0009335325
## 61           Kirkpatrick Phillips & Miller CPAs PC    5 0.0009335325
## 66                                    LaPorte APAC    5 0.0009335325
## 77                     Michael Trokey & Company PC    5 0.0009335325
## 93                    Pugh & Company PC (Inactive)    5 0.0009335325
## 23                     Cherry Bekaert LLP (Active)    4 0.0007468260
## 90                Postlethwaite & Netterville APAC    4 0.0007468260
## 96                        Rayburn Betts & Bates PC    4 0.0007468260
## 105 Squar Milner Peterson Miranda & Williamson LLP    4 0.0007468260
## 107                              Stambaugh Ness PC    4 0.0007468260
## 114                            TJS Deemer Dana LLP    4 0.0007468260
## 117                       Urbach Kahn & Werlin LLP    4 0.0007468260
## 120                         Whittlesey & Hadley PC    4 0.0007468260
## 19                           Burr Pilger Mayer Inc    3 0.0005601195
## 41                            Draffin & Tucker LLP    3 0.0005601195
## 42                              Eggleston Smith PC    3 0.0005601195
## 51                          Hannis T Bourgeois LLP    3 0.0005601195
## 53                     Hill Barth & King (HBK) LLC    3 0.0005601195
## 64                         Kraft Miles & Tatum LLC    3 0.0005601195
## 82                              Packer Thomas CPAs    3 0.0005601195
## 94                                 Radics & Co LLC    3 0.0005601195
## 101                        SB Hoover & Company LLP    3 0.0005601195
## 109                                  Tanner LLC/LC    3 0.0005601195
## 113          Thompson Greenspon & Co PC (Inactive)    3 0.0005601195
## 3                   Anderson & Associates LLP (WA)    2 0.0003734130
## 6                       Arnett Carbis Toothman LLP    2 0.0003734130
## 11            Barfield Murphy Shank & Smith LLC/PC    2 0.0003734130
## 37                   Dixon Francis Davis & Company    2 0.0003734130
## 47                       Fust Charles Chambers LLP    2 0.0003734130
## 49                        Grimsley White & Company    2 0.0003734130
## 67                   LaPorte Sehrt Romig & Hand PC    2 0.0003734130
## 68                           Larrowe & Company PLC    2 0.0003734130
## 69                   Larsson Woodyard & Henson LLP    2 0.0003734130
## 122                   Wipfli Ullrich Bertelson LLP    2 0.0003734130
## 2                          AM Peisch & Company LLP    1 0.0001867065
## 7                      Arnett Foster Toothman PLLC    1 0.0001867065
## 28                          CPA Associates PA (FL)    1 0.0001867065
## 46                     Francis & Company CPAs (GA)    1 0.0001867065
## 59                                JonesBaggett LLP    1 0.0001867065
## 62               Knight Vale & Gregory Inc PS/PLLC    1 0.0001867065
## 72                                  Mazars USA LLP    1 0.0001867065
## 78                           Miller Ellin & Co LLP    1 0.0001867065
## 92                        Prociak & Associates LLC    1 0.0001867065
## 97                           Rayburn Fitzgerald PC    1 0.0001867065
## 104           Sperry Cuono Holgate & Churchill CPA    1 0.0001867065
## 123                 Witt Mares Eggleston Smith PLC    1 0.0001867065

Zadanie 2

Spróbujmy ocenić czy w na rynku występują podmioty, których wynagrodzenie firmy audytowj jest nietypowe.

Rozwiązanie, poszukujemy obserwacji odstających, zastosoujemy naprostszy mechanizm anlizy tj. wykres poudełkowy

boxplot(bank$Total_Fees_USDx)

Z tego obrazka niewiele wynika to odnieśmy go do sumy aktywów danego podpimotu

boxplot(bank$Total_Fees_USDx/bank$Assets_USDx_N)

R jako środowisko ma bardzo dobre możliwości graficzne a oto jeden z przykładów:

c<- bank$Total_Fees_USDx/bank$Assets_USDx_N
  c1<-c[c<max(c, na.rm= TRUE)]
boxplot(c1,
main = "Wynagrodzenie do aktywów",
xlab = "",
ylab = "",
col = "orange",
border = "brown",
horizontal = TRUE,
notch = TRUE
)

Pozbyliśmy się dla przejrzystości największej obserwacji, oraz ułożyliśmy horyzontalnie obrazek. Więcej opcji help(boxplot).

Znalezienie tego jenego podmiotu jest relatywnie proste.

Zadanie 3

Proszę wieć wylistować 5 podmiotów z nr. CIK, rokiem sprawozdania finansowego oraz nazwą firmy, które zapłaciły najwięcej za badanie w stosunku do sumy aktywów.

head(bank[order(bank$Total_Fees_USDx/bank$Assets_USDx_N,decreasing=TRUE),1:3])
##      CIK_Code Year_Ended                      Companyx
## 4777  1357231       2006 Solera National Bancorp, Inc.
## 1907   811211       2000   UNIVERSITY BANCORP INC /DE/
## 4778  1357231       2007 Solera National Bancorp, Inc.
## 4530  1276130       2004        TREATY OAK BANCORP INC
## 4951  1428802       2008          Auburn Bancorp, Inc.
## 2851   933136       2014         Mr. Cooper Group Inc.

Możliwe dalsze analizy

Studia przypadków z podręcznika (zbioru zadań): 4.25 Supermarket informacyjny 5.3 Traffic 5.4 Chocholi taniec 7.3 - analiza na poziomie pracy licencjackiej, magisterskiej, doktoratu

Dodatkowo 1. Związek między wynagrodzeniem pozarewizyjnym a typem opinii 2. Wynagrodzenie rewizyjne a zarządzanie wynikiem 3. Specjalizacja firmy audytorskiej na rynku

Warto zauważyć, iż analiza niekoniecznie musi być zaawansowana, by generować informacje potrzebne w biznesie.

Zadanie naukowe an poziomie doktoratu, prosze spróbować zreplikować badanie z artykułu na temat banków.