The current SDC data set is stored locally. The current dataset contains the following variables:
## [1] "Deal Number" "Date Announced"
## [3] "Date Originally Announced" "Date Effective"
## [5] "Target Short Name" "Target 6-digit CUSIP"
## [7] "Target PermID" "Target Primary Ticker Symbol"
## [9] "Acquiror Short Name" "Acquiror 6-digit CUSIP"
## [11] "Acquiror PermID" "Acquiror Primary Ticker Symbol"
## [13] "Deal Value (USD Millions)" "Implied Deal Value (USD Millions)"
## [15] "Consideration Structure" "Termination Reason"
# uncapitalize all column names, remove all parentheses, and replace space with underscore
names(df) <- tolower(names(df))
names(df) <- gsub("\\(.*\\)", "", names(df))
names(df) <- gsub(" ", "_", names(df))
names(df)
## [1] "deal_number" "date_announced"
## [3] "date_originally_announced" "date_effective"
## [5] "target_short_name" "target_6-digit_cusip"
## [7] "target_permid" "target_primary_ticker_symbol"
## [9] "acquiror_short_name" "acquiror_6-digit_cusip"
## [11] "acquiror_permid" "acquiror_primary_ticker_symbol"
## [13] "deal_value_" "implied_deal_value_"
## [15] "consideration_structure" "termination_reason"
The raw data contains 11417 M &A transactions from 2010 to 2022. We are only interested in transactions where the acquirer is a public firm. We define public firms as those who have a 6-digit CUSIP and a primary ticker symbol.
# Only keeping public acquirers
df1 <- df %>% filter(!is.na(`acquiror_6-digit_cusip`) & !is.na(acquiror_primary_ticker_symbol))
nrow_df1 <- as.character(nrow(df1))
Currently, there are 6149 M &A transactions where the acquirers is a public firm.
In this section, I will provide a summary statistics of the current data set after excluding non-public acquirers.
# summary statistics of deal size and implied deal size
df1 %>%
summarise(
mean_deal_value = mean(deal_value_, na.rm = TRUE),
median_deal_value = median(deal_value_, na.rm = TRUE),
sd_deal_value = sd(deal_value_, na.rm = TRUE),
min_deal_value = min(deal_value_, na.rm = TRUE),
max_deal_value = max(deal_value_, na.rm = TRUE)
) %>%
kable("html", col.names = c("Mean Deal Value", "Median Deal Value", "SD Deal Value", "Min Deal Value", "Max Deal Value")) %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Mean Deal Value | Median Deal Value | SD Deal Value | Min Deal Value | Max Deal Value |
---|---|---|---|---|
2062.08 | 201.87 | 7682.918 | 0.01 | 148705.3 |
# summary statistics of deal size and implied deal size by termination reason; 3 digits; order by deal size
df1 %>%
group_by(termination_reason) %>%
summarise(
mean_deal_value = mean(deal_value_, na.rm = TRUE),
median_deal_value = median(deal_value_, na.rm = TRUE),
sd_deal_value = sd(deal_value_, na.rm = TRUE),
min_deal_value = min(deal_value_, na.rm = TRUE),
max_deal_value = max(deal_value_, na.rm = TRUE)
) %>%
arrange(desc(mean_deal_value)) %>%
mutate(across(where(is.numeric), ~ round(.x, 3))) %>%
kable("html", col.names = c("Termination Reason", "Mean Deal Value", "Median Deal Value", "SD Deal Value", "Min Deal Value", "Max Deal Value")) %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Termination Reason | Mean Deal Value | Median Deal Value | SD Deal Value | Min Deal Value | Max Deal Value |
---|---|---|---|---|---|
Competing Bid Is Successful;Acquiror Pursues Other Strategic Options | 64839.370 | 64839.370 | NA | 64839.37 | 64839.37 |
Shareholder Or Board Approval;Acquiror Pursues Other Strategic Options | 21534.300 | 21534.300 | NA | 21534.30 | 21534.30 |
Regulation | 17002.477 | 1577.825 | 37051.297 | 1.08 | 145785.26 |
Unable To Engage Target In Meaningful Discussions;Unsolicited Offer is Withdrawn | 14797.560 | 14797.560 | 20605.403 | 227.34 | 29367.78 |
Unable To Engage Target In Meaningful Discussions | 5663.055 | 333.730 | 18828.287 | 2.52 | 148705.26 |
Shareholder Or Board Approval | 4317.869 | 296.370 | 13849.480 | 0.73 | 77567.80 |
Litigation;Economic And Or Market Conditions | 3952.410 | 3952.410 | NA | 3952.41 | 3952.41 |
Litigation;Unable To Engage Target In Meaningful Discussions | 3786.240 | 3786.240 | NA | 3786.24 | 3786.24 |
Acquiror Pursues Other Strategic Options | 3769.275 | 400.150 | 8407.796 | 0.50 | 43002.86 |
Acquiror Pursues Other Strategic Options;Regulation | 3708.720 | 3708.720 | NA | 3708.72 | 3708.72 |
Competing Bid Is Successful | 2744.726 | 430.850 | 7030.540 | 2.60 | 47814.30 |
Economic And Or Market Conditions | 2577.168 | 122.180 | 6092.692 | 0.79 | 34874.90 |
Other | 2571.070 | 171.380 | 7345.200 | 0.59 | 36905.12 |
Not Disclosed | 1826.928 | 194.945 | 5706.196 | 0.26 | 46150.10 |
Unsolicited Offer is Withdrawn;Competing Bid Is Successful | 1779.540 | 1779.540 | NA | 1779.54 | 1779.54 |
NA | 1778.002 | 190.160 | 6216.903 | 0.01 | 101490.57 |
Unsolicited Offer is Withdrawn | 1455.538 | 281.485 | 3126.071 | 0.10 | 18606.18 |
Terminated Based On The MnA LT Criteria | 1290.389 | 343.700 | 2264.695 | 10.27 | 8906.12 |
Litigation | 1205.875 | 1205.875 | 1693.500 | 8.39 | 2403.36 |
Economic And Or Market Conditions;Shareholder Or Board Approval | 1202.890 | 1202.890 | NA | 1202.89 | 1202.89 |
Defensive Technique Is Successful;Competing Bid Is Successful | 1167.540 | 1167.540 | NA | 1167.54 | 1167.54 |
Lapsed Offer | 982.383 | 81.360 | 2178.436 | 0.25 | 10417.12 |
Financing | 643.676 | 57.135 | 1157.121 | 2.94 | 3363.50 |
Shareholder Or Board Approval;Regulation | 289.950 | 289.950 | NA | 289.95 | 289.95 |
Regulation;Unable To Engage Target In Meaningful Discussions | 248.360 | 248.360 | NA | 248.36 | 248.36 |
Defensive Technique Is Successful | 186.930 | 147.810 | 186.912 | 8.31 | 457.31 |
New Program Is Authorized | 123.815 | 123.815 | 26.255 | 105.25 | 142.38 |
Other;Lapsed Offer | 43.240 | 43.240 | NA | 43.24 | 43.24 |
Unsolicited Offer is Withdrawn;Economic And Or Market Conditions | 11.600 | 11.600 | NA | 11.60 | 11.60 |
Acquiror Pursues Other Strategic Options;Other | 9.550 | 9.550 | NA | 9.55 | 9.55 |
Other;Economic And Or Market Conditions | 2.850 | 2.850 | NA | 2.85 | 2.85 |
Unable To Engage Target In Meaningful Discussions;Lapsed Offer | 2.570 | 2.570 | NA | 2.57 | 2.57 |
Shareholder Or Board Approval;Financing | 0.340 | 0.340 | NA | 0.34 | 0.34 |
Economic And Or Market Conditions;Unable To Engage Target In Meaningful Discussions | NaN | NA | NA | Inf | -Inf |
Other;Unable To Engage Target In Meaningful Discussions | NaN | NA | NA | Inf | -Inf |
df1 <- df1 %>%
mutate(termination_group = case_when(
grepl("Competing Bid|Strategic Options|Unable To Engage|Unsolicited Offer|Defensive Technique|Lapsed Offer|New Program", termination_reason, ignore.case = TRUE) ~ "Strategic and Competitive Factors",
grepl("Regulation|Litigation|MnA LT Criteria", termination_reason, ignore.case = TRUE) ~ "Regulatory and Legal Factors",
grepl("Financing|Economic And Or Market Conditions", termination_reason, ignore.case = TRUE) ~ "Financial and Economic Factors",
grepl("Shareholder Or Board Approval|Not Disclosed|Other|NA", termination_reason, ignore.case = TRUE) ~ "Governance and Approval Factors",
TRUE ~ "Other"
))
df1 %>%
group_by(termination_group) %>%
summarise(
mean_deal_value = mean(deal_value_, na.rm = TRUE),
median_deal_value = median(deal_value_, na.rm = TRUE),
sd_deal_value = sd(deal_value_, na.rm = TRUE),
min_deal_value = min(deal_value_, na.rm = TRUE),
max_deal_value = max(deal_value_, na.rm = TRUE)
) %>%
arrange(desc(mean_deal_value)) %>%
mutate(across(where(is.numeric), ~ round(.x, 3))) %>%
kable("html", col.names = c("Termination Group", "Mean Deal Value", "Median Deal Value", "SD Deal Value", "Min Deal Value", "Max Deal Value")) %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Termination Group | Mean Deal Value | Median Deal Value | SD Deal Value | Min Deal Value | Max Deal Value |
---|---|---|---|---|---|
Regulatory and Legal Factors | 10350.667 | 597.170 | 29060.550 | 1.08 | 145785.3 |
Strategic and Competitive Factors | 3338.561 | 287.830 | 11032.599 | 0.10 | 148705.3 |
Governance and Approval Factors | 2656.010 | 233.765 | 8836.697 | 0.26 | 77567.8 |
Financial and Economic Factors | 2222.436 | 117.780 | 5584.931 | 0.34 | 34874.9 |
Other | 1778.002 | 190.160 | 6216.903 | 0.01 | 101490.6 |
df1 <- df1 %>%
mutate(consideration_group = case_when(
consideration_structure %in% c("Cash Only") ~ "Cash Only",
consideration_structure %in% c("Stock Only") ~ "Stock Only",
consideration_structure %in% c("Cash and Stock Combination",
"Choice between Cash or Stock or Combination of Both") ~ "Cash and Stock Mix",
TRUE ~ "Other Non-standard Types"
))
# summary statistics of deal size and implied deal size by consideration structure; 3 digits; order by deal size
df1 %>%
group_by(consideration_group) %>%
summarise(
mean_deal_value = mean(deal_value_, na.rm = TRUE),
median_deal_value = median(deal_value_, na.rm = TRUE),
sd_deal_value = sd(deal_value_, na.rm = TRUE),
min_deal_value = min(deal_value_, na.rm = TRUE),
max_deal_value = max(deal_value_, na.rm = TRUE)
) %>%
arrange(desc(mean_deal_value)) %>%
mutate(across(where(is.numeric), ~ round(.x, 3))) %>%
kable("html", col.names = c("Consideration Structure", "Mean Deal Value", "Median Deal Value", "SD Deal Value", "Min Deal Value", "Max Deal Value")) %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Consideration Structure | Mean Deal Value | Median Deal Value | SD Deal Value | Min Deal Value | Max Deal Value |
---|---|---|---|---|---|
Cash and Stock Mix | 3888.612 | 363.135 | 11728.673 | 0.10 | 148705.26 |
Other Non-standard Types | 2374.470 | 205.250 | 10544.840 | 0.49 | 142419.45 |
Cash Only | 1777.005 | 346.450 | 4592.875 | 0.05 | 75621.31 |
Stock Only | 1250.607 | 89.155 | 5975.210 | 0.01 | 145785.26 |
# Plot of deal terminated due to regulation over time; x axis in year, not decimal places
df1 %>%
filter(termination_group != "Other") %>%
mutate(year = lubridate::year(date_announced)) %>%
group_by(year, termination_group) %>%
summarise(count = n(), .groups = 'drop') %>%
ggplot(aes(x = year, y = count, color = termination_group)) +
geom_line() +
geom_point() +
labs(title = "Deal Terminations by Group Over Time", x = "Year", y = "Count", color = "Termination Group") +
theme_minimal() +
ylim(0, 50) +
scale_x_continuous(breaks = seq(2010, 2022, by = 1))
# Remove missing deal value
df1 <- df1 %>% filter(!is.na(deal_value_))
# create a group of deal sizes: If deal value is between 0 and 20, them group as small, 20 and 100 as medium, and large is over 100
df1 <- df1 %>%
mutate(deal_size = case_when(
deal_value_ < 20 ~ "Small",
deal_value_ >= 20 & deal_value_ < 100 ~ "Medium",
deal_value_ >= 100 ~ "Large"
))
df1 %>%
group_by(deal_size) %>%
summarise(
n = n()
) %>%
mutate(percentage = n / sum(n) * 100) %>%
ggplot(aes(x = deal_size, y = percentage)) +
geom_bar(stat = "identity") +
geom_text(aes(label = round(percentage, 2)), vjust = -0.5) +
labs(title = "Deal Size Distribution", x = "Deal Size", y = "Percentage") +
theme_minimal() +
scale_y_continuous(labels = scales::percent_format(scale = 1)) +
scale_x_discrete(limits = c("Small", "Medium", "Large")) +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
# summary statistics of deal size and implied deal size by termination reason and consideration structure; 3 digits
df1 %>%
group_by(termination_group, consideration_group) %>%
summarise(
mean_deal_value = mean(deal_value_, na.rm = TRUE),
median_deal_value = median(deal_value_, na.rm = TRUE),
sd_deal_value = sd(deal_value_, na.rm = TRUE),
min_deal_value = min(deal_value_, na.rm = TRUE),
max_deal_value = max(deal_value_, na.rm = TRUE)
) %>%
mutate(across(where(is.numeric), ~ round(.x, 3))) %>%
kable("html", col.names = c("Termination Reason", "Consideration Structure", "Mean Deal Value", "Median Deal Value", "SD Deal Value", "Min Deal Value", "Max Deal Value")) %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Termination Reason | Consideration Structure | Mean Deal Value | Median Deal Value | SD Deal Value | Min Deal Value | Max Deal Value |
---|---|---|---|---|---|---|
Financial and Economic Factors | Cash Only | 2263.019 | 859.860 | 2987.269 | 26.06 | 8760.75 |
Financial and Economic Factors | Cash and Stock Mix | 3582.683 | 803.140 | 9168.977 | 2.89 | 34874.90 |
Financial and Economic Factors | Other Non-standard Types | 908.215 | 195.080 | 1550.574 | 15.08 | 3227.62 |
Financial and Economic Factors | Stock Only | 1760.690 | 47.470 | 4676.271 | 0.34 | 19775.98 |
Governance and Approval Factors | Cash Only | 1010.389 | 260.365 | 1776.448 | 4.76 | 9576.05 |
Governance and Approval Factors | Cash and Stock Mix | 6847.385 | 600.045 | 15350.575 | 2.46 | 77567.80 |
Governance and Approval Factors | Other Non-standard Types | 2734.451 | 240.370 | 7971.816 | 1.10 | 36905.12 |
Governance and Approval Factors | Stock Only | 1962.677 | 84.160 | 7463.009 | 0.26 | 66140.09 |
Other | Cash Only | 1734.033 | 336.155 | 4479.860 | 0.05 | 75621.31 |
Other | Cash and Stock Mix | 3175.997 | 338.130 | 9471.630 | 0.57 | 101490.57 |
Other | Other Non-standard Types | 1521.233 | 181.970 | 5994.720 | 0.49 | 79376.82 |
Other | Stock Only | 1090.786 | 86.630 | 4904.867 | 0.01 | 86831.16 |
Regulatory and Legal Factors | Cash Only | 3261.242 | 1176.110 | 4949.273 | 11.62 | 19730.62 |
Regulatory and Legal Factors | Cash and Stock Mix | 22958.604 | 6208.940 | 39069.494 | 252.58 | 117067.48 |
Regulatory and Legal Factors | Other Non-standard Types | 31309.477 | 190.320 | 57319.122 | 13.91 | 142419.45 |
Regulatory and Legal Factors | Stock Only | 6788.437 | 335.180 | 25991.899 | 1.08 | 145785.26 |
Strategic and Competitive Factors | Cash Only | 2315.480 | 418.720 | 6397.078 | 0.50 | 64839.37 |
Strategic and Competitive Factors | Cash and Stock Mix | 7810.591 | 887.305 | 19991.449 | 0.10 | 148705.26 |
Strategic and Competitive Factors | Other Non-standard Types | 3612.850 | 395.220 | 9245.533 | 2.60 | 43999.48 |
Strategic and Competitive Factors | Stock Only | 1212.239 | 104.225 | 3344.428 | 0.25 | 23444.82 |
df1 %>%
group_by(deal_size, termination_group) %>%
summarise(
mean_deal_value = mean(deal_value_, na.rm = TRUE),
median_deal_value = median(deal_value_, na.rm = TRUE),
sd_deal_value = sd(deal_value_, na.rm = TRUE),
min_deal_value = min(deal_value_, na.rm = TRUE),
max_deal_value = max(deal_value_, na.rm = TRUE)
) %>%
arrange(desc(mean_deal_value)) %>%
mutate(across(where(is.numeric), ~ round(.x, 3))) %>%
kable("html", col.names = c("Deal Size", "Termination Reason", "Mean Deal Value", "Median Deal Value", "SD Deal Value", "Min Deal Value", "Max Deal Value")) %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Deal Size | Termination Reason | Mean Deal Value | Median Deal Value | SD Deal Value | Min Deal Value | Max Deal Value |
---|---|---|---|---|---|---|
Large | Regulatory and Legal Factors | 13021.531 | 1361.765 | 32115.898 | 111.49 | 145785.26 |
Large | Strategic and Competitive Factors | 4831.355 | 1136.820 | 13029.250 | 100.00 | 148705.26 |
Large | Governance and Approval Factors | 4365.755 | 705.080 | 11033.453 | 113.01 | 77567.80 |
Large | Financial and Economic Factors | 4148.953 | 1202.890 | 7160.655 | 114.65 | 34874.90 |
Large | Other | 2933.469 | 679.950 | 7805.825 | 100.00 | 101490.57 |
Medium | Financial and Economic Factors | 62.614 | 67.020 | 25.287 | 24.84 | 99.19 |
Medium | Strategic and Competitive Factors | 55.751 | 52.085 | 24.917 | 20.07 | 99.08 |
Medium | Other | 53.420 | 50.190 | 23.115 | 20.00 | 99.97 |
Medium | Governance and Approval Factors | 47.496 | 39.120 | 24.385 | 20.00 | 99.62 |
Medium | Regulatory and Legal Factors | 47.347 | 47.235 | 18.601 | 21.79 | 75.87 |
Small | Other | 8.777 | 8.220 | 6.047 | 0.01 | 19.96 |
Small | Governance and Approval Factors | 7.911 | 6.600 | 5.833 | 0.26 | 19.18 |
Small | Regulatory and Legal Factors | 7.313 | 8.390 | 4.479 | 1.08 | 13.91 |
Small | Financial and Economic Factors | 7.308 | 7.310 | 5.014 | 0.34 | 16.11 |
Small | Strategic and Competitive Factors | 7.180 | 5.100 | 5.442 | 0.10 | 19.66 |
# Create a new column for time duration in days
df1 <- df1 %>%
mutate(
date_announced = as.Date(date_announced),
date_effective = as.Date(date_effective),
time_duration = as.numeric(difftime(date_effective, date_announced, units = "days"))
)
# summary statistics of time duration by deal size; 3 digits; order by deal size
df1 %>%
group_by(deal_size) %>%
summarise(
mean_time_duration = mean(time_duration, na.rm = TRUE),
median_time_duration = median(time_duration, na.rm = TRUE),
sd_time_duration = sd(time_duration, na.rm = TRUE),
min_time_duration = min(time_duration, na.rm = TRUE),
max_time_duration = max(time_duration, na.rm = TRUE)
) %>%
arrange(desc(mean_time_duration)) %>%
mutate(across(where(is.numeric), ~ round(.x, 3))) %>%
kable("html", col.names = c("Deal Size", "Mean Time Duration", "Median Time Duration", "SD Time Duration", "Min Time Duration", "Max Time Duration")) %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Deal Size | Mean Time Duration | Median Time Duration | SD Time Duration | Min Time Duration | Max Time Duration |
---|---|---|---|---|---|
Large | 162.071 | 128.0 | 133.146 | 0 | 1616 |
Small | 139.775 | 96.5 | 205.100 | 0 | 3706 |
Medium | 132.123 | 112.0 | 119.639 | 0 | 2503 |
# Plot of average time duration for each year; x axis in year, not decimal places
df1 %>%
mutate(year = year(date_announced)) %>%
group_by(year, deal_size) %>%
summarise(mean_time_duration = mean(time_duration, na.rm = TRUE)) %>%
ggplot(aes(x = year, y = mean_time_duration, color=deal_size)) +
geom_line() +
geom_point() +
labs(title = "Average Time Duration for Each Year", x = "Year", y = "Average Time Duration (days)") +
theme_minimal() +
scale_x_continuous(breaks = seq(2010, 2022, by = 1))
# Plot of average time duration for each year; x axis in year, not decimal places
df1 %>%
mutate(year = year(date_announced)) %>%
group_by(year, consideration_group) %>%
summarise(mean_time_duration = mean(time_duration, na.rm = TRUE)) %>%
ggplot(aes(x = year, y = mean_time_duration, color=consideration_group)) +
geom_line() +
geom_point() +
labs(title = "Average Time Duration for Each Year", x = "Year", y = "Average Time Duration (days)") +
theme_minimal() +
scale_x_continuous(breaks = seq(2010, 2022, by = 1))
# create a category for political factors, call it party. 2008-2016 and 2020-2022, the president was a Democrat. From 2002 to 2009, and 2016-2020, the president was a Republican.
df1 <- df1 %>%
mutate(party = case_when(
year(date_announced) >= 2008 & year(date_announced) <= 2016 ~ "Democrat",
year(date_announced) >= 2020 & year(date_announced) <= 2022 ~ "Democrat",
year(date_announced) >= 2002 & year(date_announced) <= 2009 ~ "Republican",
year(date_announced) >= 2016 & year(date_announced) <= 2020 ~ "Republican",
TRUE ~ NA_character_
))
# summary statistics of deal size and implied deal size by party; 3 digits; order by deal size
df1 %>%
group_by(party) %>%
summarise(
mean_deal_value = mean(deal_value_, na.rm = TRUE),
median_deal_value = median(deal_value_, na.rm = TRUE),
sd_deal_value = sd(deal_value_, na.rm = TRUE),
min_deal_value = min(deal_value_, na.rm = TRUE),
max_deal_value = max(deal_value_, na.rm = TRUE)
) %>%
arrange(desc(mean_deal_value)) %>%
mutate(across(where(is.numeric), ~ round(.x, 3))) %>%
kable("html", col.names = c("Party", "Mean Deal Value", "Median Deal Value", "SD Deal Value", "Min Deal Value", "Max Deal Value")) %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Party | Mean Deal Value | Median Deal Value | SD Deal Value | Min Deal Value | Max Deal Value |
---|---|---|---|---|---|
Republican | 2586.982 | 226.65 | 9781.730 | 0.01 | 148705.3 |
Democrat | 1906.374 | 195.70 | 6933.232 | 0.01 | 145785.3 |
# summary statistics of deal size and implied deal size by party and termination reason; 3 digits; order by deal size
df1 %>%
group_by(party, termination_group) %>%
summarise(
mean_deal_value = mean(deal_value_, na.rm = TRUE),
median_deal_value = median(deal_value_, na.rm = TRUE),
sd_deal_value = sd(deal_value_, na.rm = TRUE),
min_deal_value = min(deal_value_, na.rm = TRUE),
max_deal_value = max(deal_value_, na.rm = TRUE)
) %>%
mutate(across(where(is.numeric), ~ round(.x, 3))) %>%
kable("html", col.names = c("Party", "Termination Reason", "Mean Deal Value", "Median Deal Value", "SD Deal Value", "Min Deal Value", "Max Deal Value")) %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Party | Termination Reason | Mean Deal Value | Median Deal Value | SD Deal Value | Min Deal Value | Max Deal Value |
---|---|---|---|---|---|---|
Democrat | Financial and Economic Factors | 1504.280 | 114.650 | 3118.704 | 0.79 | 16232.92 |
Democrat | Governance and Approval Factors | 2687.654 | 251.235 | 8660.860 | 0.26 | 77567.80 |
Democrat | Other | 1655.325 | 181.580 | 5811.745 | 0.01 | 101490.57 |
Democrat | Regulatory and Legal Factors | 10713.829 | 827.535 | 27598.051 | 1.08 | 145785.26 |
Democrat | Strategic and Competitive Factors | 2667.626 | 297.185 | 6784.221 | 0.10 | 49383.20 |
Republican | Financial and Economic Factors | 4472.659 | 143.650 | 9838.247 | 0.34 | 34874.90 |
Republican | Governance and Approval Factors | 2527.094 | 164.415 | 9604.826 | 0.92 | 66140.09 |
Republican | Other | 2198.212 | 223.220 | 7427.444 | 0.01 | 86831.16 |
Republican | Regulatory and Legal Factors | 9154.369 | 576.640 | 34353.424 | 13.91 | 142419.45 |
Republican | Strategic and Competitive Factors | 5019.289 | 258.290 | 17599.536 | 0.50 | 148705.26 |
# create a dummy variable for termination reason == regulation
df1 <- df1 %>%
mutate(termination_regulation = ifelse(termination_group == "Regulatory and Legal Factors", 1, 0))
# runninng a regression of time duration on termination reason == regulation, deal size, and consideration structure
model1 <- lm(termination_regulation ~ deal_value_, data = df1)
summary(model1)
##
## Call:
## lm(formula = termination_regulation ~ deal_value_, data = df1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.31199 -0.01234 -0.01065 -0.01034 0.98973
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.026e-02 1.723e-03 5.955 2.78e-09 ***
## deal_value_ 2.029e-06 2.167e-07 9.364 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1183 on 5051 degrees of freedom
## Multiple R-squared: 0.01706, Adjusted R-squared: 0.01687
## F-statistic: 87.69 on 1 and 5051 DF, p-value: < 2.2e-16
##
## Call:
## lm(formula = termination_regulation ~ deal_size, data = df1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.01883 -0.01883 -0.01883 -0.01083 0.99475
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.018831 0.002148 8.766 < 2e-16 ***
## deal_sizeMedium -0.013577 0.004131 -3.287 0.00102 **
## deal_sizeSmall -0.008001 0.004660 -1.717 0.08608 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1192 on 5050 degrees of freedom
## Multiple R-squared: 0.002315, Adjusted R-squared: 0.00192
## F-statistic: 5.86 on 2 and 5050 DF, p-value: 0.002871
##
## Call:
## lm(formula = termination_regulation ~ consideration_group, data = df1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.01935 -0.01559 -0.01451 -0.01451 0.98915
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) 0.010850 0.003589 3.023
## consideration_groupCash Only 0.003661 0.004676 0.783
## consideration_groupOther Non-standard Types 0.008505 0.007670 1.109
## consideration_groupStock Only 0.004745 0.004452 1.066
## Pr(>|t|)
## (Intercept) 0.00251 **
## consideration_groupCash Only 0.43370
## consideration_groupOther Non-standard Types 0.26755
## consideration_groupStock Only 0.28661
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1194 on 5049 degrees of freedom
## Multiple R-squared: 0.0003403, Adjusted R-squared: -0.0002536
## F-statistic: 0.573 on 3 and 5049 DF, p-value: 0.6327
##
## Call:
## lm(formula = termination_regulation ~ deal_value_ + consideration_group,
## data = df1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.31422 -0.01418 -0.01300 -0.01088 0.99677
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) 2.704e-03 3.657e-03 0.739
## deal_value_ 2.095e-06 2.185e-07 9.586
## consideration_groupCash Only 8.085e-03 4.658e-03 1.736
## consideration_groupOther Non-standard Types 1.168e-02 7.609e-03 1.535
## consideration_groupStock Only 1.027e-02 4.450e-03 2.308
## Pr(>|t|)
## (Intercept) 0.4597
## deal_value_ <2e-16 ***
## consideration_groupCash Only 0.0827 .
## consideration_groupOther Non-standard Types 0.1249
## consideration_groupStock Only 0.0210 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1183 on 5048 degrees of freedom
## Multiple R-squared: 0.01821, Adjusted R-squared: 0.01743
## F-statistic: 23.41 on 4 and 5048 DF, p-value: < 2.2e-16
model5 <-lm(termination_regulation ~ deal_value_ + consideration_group + party, data = df1)
summary(model5)
##
## Call:
## lm(formula = termination_regulation ~ deal_value_ + consideration_group +
## party, data = df1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.31370 -0.01414 -0.01325 -0.01107 0.99697
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) 2.948e-03 3.756e-03 0.785
## deal_value_ 2.097e-06 2.187e-07 9.589
## consideration_groupCash Only 8.091e-03 4.658e-03 1.737
## consideration_groupOther Non-standard Types 1.161e-02 7.614e-03 1.524
## consideration_groupStock Only 1.030e-02 4.452e-03 2.314
## partyRepublican -1.131e-03 3.970e-03 -0.285
## Pr(>|t|)
## (Intercept) 0.4326
## deal_value_ <2e-16 ***
## consideration_groupCash Only 0.0824 .
## consideration_groupOther Non-standard Types 0.1275
## consideration_groupStock Only 0.0207 *
## partyRepublican 0.7756
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1183 on 5047 degrees of freedom
## Multiple R-squared: 0.01823, Adjusted R-squared: 0.01726
## F-statistic: 18.74 on 5 and 5047 DF, p-value: < 2.2e-16