tq_get() code are from: https://cran.r-project.org/web/packages/tidyquant/vignettes/TQ01-core-functions-in-tidyquant.html#get-quantitative-data
library(tidyquant)
library(tidyverse)
library(readtext) # for readtext()
We have identified a handful of companies with the highest number of lawsuits since 2010. They are Atrium Medical, Depuy Orthopaedics, Zimmer, Inc., GLAXOSMITHKLINE, FRESENIUS, BOSTON SCIENTIFIC, and Howmedica Osteonics. We used the Federal Judiciary Center data for this purpose.
However, the number of lawsuits alone does not necessarily measure the extent of litigation risk. One should also consider the size of companies. The greater the company’s reach to its customers, the greater the chances of accidents and thus lawsuits. One way to control for the size of the company is to divide the number of lawsuits by a measure of the company’s size (i.e., annual sales, revenue, and market capitalization). We used market capitalization. Which is a better measure of the company’s size is beyond the scope of the analysis here.
We searched the aforementioned companies in the New York Stock Exchange (NYSE) and NASDAQ. Matching results were found only in NYSE and they are:
All four companies are in the Health Care Sector but classified as different industries within the same sector in NYSE.
I imported the company data Using tidyquant::tq_exchange(“NYSE”).
sector_selected <- "Health Care"
industry_selected <- c("Major Pharmaceuticals","Hospital/Nursing Management","Industrial Specialties","Medical/Dental Instruments")
NYSE <-
tq_exchange("NYSE")
companies_healthcare <-
NYSE %>%
filter(sector == sector_selected,
industry %in% industry_selected,
# Becton, Dickinson and Company shows up twice under two sybols: BDX and BDXA
symbol != "BDXA")
companies_healthcare_processed <-
companies_healthcare %>%
mutate(thousand = case_when(
str_detect(market.cap, "B") ~ "1000",
str_detect(market.cap, "M") ~ "1",
TRUE ~ market.cap
)) %>%
mutate(market.cap = str_remove_all(market.cap, regex("\\$|B|M")),
market.cap = as.numeric(market.cap),
thousand = as.numeric(thousand),
market.cap.millions = market.cap * thousand)
companies_healthcare_processed$company
## [1] "3M Company"
## [2] "Abbott Laboratories"
## [3] "AbbVie Inc."
## [4] "Allergan plc."
## [5] "American Renal Associates Holdings, Inc"
## [6] "Amneal Pharmaceuticals, Inc."
## [7] "Arcus Biosciences, Inc."
## [8] "Astrazeneca PLC"
## [9] "Avanos Medical, Inc."
## [10] "Bausch Health Companies Inc."
## [11] "Baxter International Inc."
## [12] "Becton, Dickinson and Company"
## [13] "Biohaven Pharmaceutical Holding Company Ltd."
## [14] "Boston Scientific Corporation"
## [15] "Bristol-Myers Squibb Company"
## [16] "Brookdale Senior Living Inc."
## [17] "Cambrex Corporation"
## [18] "Cantel Medical Corp."
## [19] "Capital Senior Living Corporation"
## [20] "Catalent, Inc."
## [21] "Community Health Systems, Inc."
## [22] "CryoLife, Inc."
## [23] "DaVita Inc."
## [24] "Dr. Reddy's Laboratories Ltd"
## [25] "Edwards Lifesciences Corporation"
## [26] "Elanco Animal Health Incorporated"
## [27] "Eli Lilly and Company"
## [28] "Emergent Biosolutions, Inc."
## [29] "Encompass Health Corporation"
## [30] "Fresenius Medical Care Corporation"
## [31] "Genesis Healthcare, Inc."
## [32] "Glaukos Corporation"
## [33] "GlaxoSmithKline PLC"
## [34] "Globus Medical, Inc."
## [35] "Haemonetics Corporation"
## [36] "HCA Healthcare, Inc."
## [37] "Hill-Rom Holdings Inc"
## [38] "Inspire Medical Systems, Inc."
## [39] "Invacare Corporation"
## [40] "Johnson & Johnson"
## [41] "Kadmon Holdings, Inc."
## [42] "Lannett Co Inc"
## [43] "Mallinckrodt plc"
## [44] "Mednax, Inc"
## [45] "Merck & Company, Inc."
## [46] "MSA Safety Incorporporated"
## [47] "Myovant Sciences Ltd."
## [48] "Nevro Corp."
## [49] "Novartis AG"
## [50] "Novo Nordisk A/S"
## [51] "Penumbra, Inc."
## [52] "Perrigo Company"
## [53] "Pfizer, Inc."
## [54] "Prestige Consumer Healthcare Inc."
## [55] "Quorum Health Corporation"
## [56] "Ra Medical Systems, Inc."
## [57] "ResMed Inc."
## [58] "Select Medical Holdings Corporation"
## [59] "Smith & Nephew SNATS, Inc."
## [60] "STERIS plc"
## [61] "Stryker Corporation"
## [62] "Takeda Pharmaceutical Company Limited"
## [63] "Taro Pharmaceutical Industries Ltd."
## [64] "Teleflex Incorporated"
## [65] "Tenet Healthcare Corporation"
## [66] "Teva Pharmaceutical Industries Limited"
## [67] "Universal Health Services, Inc."
## [68] "Vapotherm, Inc."
## [69] "Zimmer Biomet Holdings, Inc."
## [70] "Zoetis Inc."
## [71] "Zymeworks Inc."
Our business model requires not only high but also low litigation risk companies so that we can compare them and identify factors that explain the variations in the litigation risks. The NYSE lists 72 companies in the four industry categories. We searched all 72 companies in the PACER database to find the frequency of civil lawsuits since 2010. Companies were searched in the following criteria.
https://pcl.uscourts.gov/pcl/pages/search/findParty.jsf
lawsuits <- read.csv("C:/Users/sclee1/OneDrive/Documents/R/legalAnalytics/data/NYSE_lawsuits.csv") %>% select(-X)
companies_lawsuits <-
companies_healthcare_processed %>%
select(symbol, company, sector, industry, market.cap.millions) %>%
left_join(lawsuits) %>%
mutate(n_civilcases_perthousands = round((n_civilcases / market.cap.millions * 1000), 1))
The analysis identified high litigation risk companies. For example, Boston Scientific, is the second most frequently sued company in the medical/Dental Instruments Industry per thousand dollars of the market capitalization. The analysis also identified low litigation risk companies. For example, there are four companies that have been sued less than one time per thousand dollars of the market capitalization: Glaukos Corporation, Teleflex Incorporated, Becton, Dickinson and Company, and Inspire Medical Systems, Inc.
# number of companies by industry
companies_lawsuits %>%
count(industry)
## # A tibble: 4 x 2
## industry n
## <chr> <int>
## 1 Hospital/Nursing Management 14
## 2 Industrial Specialties 7
## 3 Major Pharmaceuticals 32
## 4 Medical/Dental Instruments 18
# boxplot
companies_lawsuits %>%
ggplot(aes(industry, n_civilcases_perthousands, label = company)) +
geom_boxplot() +
coord_flip() +
labs(x = "Number of lawsuits per thousand dollars of market capitalization",
y = NULL)
# scatterplot
g <-
companies_lawsuits %>%
ggplot(aes(n_civilcases_perthousands, industry, label = company, size = market.cap.millions, color = industry)) +
geom_point(alpha = 0.3) +
labs(subtitle = "bubble size indicates market capitalization",
x = "Number of lawsuits per thousand dollars of market capitalization",
y = NULL) +
scale_size_continuous(labels = scales::comma_format())
# scatterplot on a log scale
g_log <-
companies_lawsuits %>%
ggplot(aes(n_civilcases_perthousands, industry, label = company, size = market.cap.millions, color = industry)) +
geom_point(alpha = 0.3) +
scale_x_log10(labels = scales::comma_format()) +
labs(subtitle = "bubble size indicates market capitalization",
x = "Number of lawsuits per thousand dollars of market capitalization",
y = NULL)+
scale_size_continuous(labels = scales::comma_format())
library(plotly)
ggplotly(g)
ggplotly(g_log)