In the world of international economics, few bilateral relationships carry as much weight as that between India and the United States. As we embark on an exploration of this economic partnership, we delve into the intricate web of trade, production, and economic cooperation, guided by the Organization for Economic Co-operation and Development, (OECD)’s powerful tool, Inter-Country Input-Output (ICIO) Tables. These tables unveil the story of two economic giants, India and the USA, and how their dynamic economic relationship shapes global trade and production, highlighting the profound inter-connectedness of these two nations on the global stage.
In OECD Inter-Country Input-Output (ICIO) Tables, the row headers and column headers serve specific purposes:
1. Row Headers (or Rows): These typically represent industries or sectors within an economy. Each row corresponds to a specific industry or sector’s production, detailing how much that industry produces and how it uses inputs from other industries. These rows show the supply side of the economy, indicating what each sector produces.
2. Column Headers (or Columns): These also represent industries or sectors, but they show how much each industry consumes as inputs from other industries. Columns represent the demand side of the economy, illustrating what each sector purchases from other sectors.
Together, the rows and columns of ICIO Tables create a matrix of economic transactions between industries, both within a country and between countries. This matrix provides valuable insights into the structure of an economy, how industries are interconnected, and how goods and services flow through the economy, domestically and internationally.
Researchers and policymakers use ICIO Tables to analyze various aspects of an economy, such as understanding supply chains, assessing the impacts of policy changes, studying trade relationships, and evaluating the effects of globalization on production and trade patterns.
# Read the CSV file into a data frame
oecd_path <- "C:/Users/subha/OneDrive/Desktop/TISS MSc Analytics/Academia/Maths for Analytics/Mansi ma'am/OECD_IOT.csv"
OECD_IOT <- read.csv(oecd_path)
# View the data frame
View(OECD_IOT)
# Read the Indian input-output subset
IND_IOT <- OECD_IOT[1441:1485, 1442:1486]
# Read the USA input-output subset
USA_IOT <- OECD_IOT[3286:3330, 3287:3331]
# Define the row name vector for India:
IND_row_names <- c("IND_A01_02", "IND_A03", "IND_B05_06", "IND_B07_08", "IND_B09", "IND_C10T12", "IND_C13T15", "IND_C16", "IND_C17_18", "IND_C19", "IND_C20", "IND_C21", "IND_C22", "IND_C23", "IND_C24", "IND_C25", "IND_C26", "IND_C27", "IND_C28", "IND_C29", "IND_C30", "IND_C31T33", "IND_D", "IND_E", "IND_F", "IND_G", "IND_H49", "IND_H50", "IND_H51", "IND_H52", "IND_H53", "IND_I", "IND_J58T60", "IND_J61", "IND_J62_63", "IND_K", "IND_L", "IND_M", "IND_N", "IND_O", "IND_P", "IND_Q", "IND_R", "IND_S", "IND_T")
# Assign the labels to the row names for the Indian input-output subset
rownames(IND_IOT) <- IND_row_names
# Define the column name vector for India:
IND_col_names <- c("IND_A01_02", "IND_A03", "IND_B05_06", "IND_B07_08", "IND_B09", "IND_C10T12", "IND_C13T15", "IND_C16", "IND_C17_18", "IND_C19", "IND_C20", "IND_C21", "IND_C22", "IND_C23", "IND_C24", "IND_C25", "IND_C26", "IND_C27", "IND_C28", "IND_C29", "IND_C30", "IND_C31T33", "IND_D", "IND_E", "IND_F", "IND_G", "IND_H49", "IND_H50", "IND_H51", "IND_H52", "IND_H53", "IND_I", "IND_J58T60", "IND_J61", "IND_J62_63", "IND_K", "IND_L", "IND_M", "IND_N", "IND_O", "IND_P", "IND_Q", "IND_R", "IND_S", "IND_T")
# Assign the labels to the column names for the Indian input-output subset
colnames(IND_IOT) <- IND_col_names
# Define the row name vector for USA:
USA_row_names <- c("USA_A01_02", "USA_A03", "USA_B05_06", "USA_B07_08", "USA_B09", "USA_C10T12", "USA_C13T15", "USA_C16", "USA_C17_18", "USA_C19", "USA_C20", "USA_C21", "USA_C22", "USA_C23", "USA_C24", "USA_C25", "USA_C26", "USA_C27", "USA_C28", "USA_C29", "USA_C30", "USA_C31T33", "USA_D", "USA_E", "USA_F", "USA_G", "USA_H49", "USA_H50", "USA_H51", "USA_H52", "USA_H53", "USA_I", "USA_J58T60", "USA_J61", "USA_J62_63", "USA_K", "USA_L", "USA_M", "USA_N", "USA_O", "USA_P", "USA_Q", "USA_R", "USA_S", "USA_T")
# Assign the labels to the row names for the USA input-output subset
rownames(USA_IOT) <- USA_row_names
# Define the column name vector for USA:
USA_col_names <- c("USA_A01_02", "USA_A03", "USA_B05_06", "USA_B07_08", "USA_B09", "USA_C10T12", "USA_C13T15", "USA_C16", "USA_C17_18", "USA_C19", "USA_C20", "USA_C21", "USA_C22", "USA_C23", "USA_C24", "USA_C25", "USA_C26", "USA_C27", "USA_C28", "USA_C29", "USA_C30", "USA_C31T33", "USA_D", "USA_E", "USA_F", "USA_G", "USA_H49", "USA_H50", "USA_H51", "USA_H52", "USA_H53", "USA_I", "USA_J58T60", "USA_J61", "USA_J62_63", "USA_K", "USA_L", "USA_M", "USA_N", "USA_O", "USA_P", "USA_Q", "USA_R", "USA_S", "USA_T")
# Assign the labels to the column names for the USA input-output subset
colnames(USA_IOT) <- USA_col_names
In an OECD Inter-Country Input-Output (ICIO) Table, the row sum and column sum for a particular country represent significant aspects of the economic relationships between industries or sectors within that country. Let’s break down what these row sums and column sums signify:
1. Row Sum (Supply Side):
The row sum for a specific industry or sector represents the total production or output of that industry within the country.
It shows how much that industry produces in terms of goods or services.
This sum is often referred to as the “value added” by that industry to the country’s economy.
It indicates the industry’s contribution to the country’s GDP (Gross Domestic Product).
2. Column Sum (Demand Side):
The column sum for a specific industry or sector represents the total demand or consumption of that industry for inputs from other industries within the country.
It shows how much that industry relies on inputs or intermediate goods and services from other sectors.
This sum is important for understanding the interdependencies between industries. It signifies which industries are major purchasers of inputs from other sectors.
It helps in assessing the overall supply chain and production network within the country.
# Perform row sums for the Indian subset
Rsum_IND <- rowSums(IND_IOT)
# Perform column sums for the Indian subset
Csum_IND <- colSums(IND_IOT)
# Perform row sums for the USA subset
Rsum_USA <- rowSums(USA_IOT)
# Perform column sums for the USA subset
Csum_USA <- colSums(USA_IOT)
# Set up the layout for the plots
par(mfrow = c(2, 2))
# Create a bar chart for row sums of the Indian subset
barplot(Rsum_IND, main = "Supply Side - India", xlab = "Industry", ylab = "Sum", col = "blue")
# Create a bar chart for column sums of the Indian subset
barplot(Csum_IND, main = "Demand Side - India", xlab = "Industry", ylab = "Sum", col = "green")
# Create a bar chart for row sums of the USA subset
barplot(Rsum_USA, main = "Supply Side - USA", xlab = "Industry", ylab = "Sum", col = "red")
# Create a bar chart for column sums of the USA subset
barplot(Csum_IND, main = "Demand Side - USA", xlab = "Industry", ylab = "Sum", col = "purple")
# Get the top 5 row sums and column sums for India and USA
T5Rsum_IND <- head(sort(Rsum_IND, decreasing = TRUE), 5)
T5Csum_IND <- head(sort(Csum_IND, decreasing = TRUE), 5)
T5Rsum_USA <- head(sort(Rsum_USA, decreasing = TRUE), 5)
T5Csum_USA <- head(sort(Csum_USA, decreasing = TRUE), 5)
# Plot the top 5 row sums for India
barplot(T5Rsum_IND, main = "Top 5 Supply sectors - India", xlab = "Industry", ylab = "Sum in million USD", col = "cyan", names.arg = colnames(IND_IOT)[order(-Rsum_IND)][1:5])
# Plot the top 5 column sums for India
barplot(T5Csum_IND, main = "Top 5 Demand sectors - India", xlab = "Industry", ylab = "Sum in Million USD", col = "yellow", names.arg = colnames(IND_IOT)[order(-Csum_IND)][1:5])
IND_F: Construction IND_C10T12- Food products
IND_C10T12: Food products, beverages and tobacco
IND_C24: Basic metals
IND_A01_02: Agriculture, Hunting, Forestry
IND_C13T15: Textiles, leather and footwear
# Plot the top 5 row sums for the USA
barplot(T5Rsum_USA, main = "Top 5 Supply sectors - USA", xlab = "Industry", ylab = "Sum in Million USD", col = "orange", names.arg = colnames(USA_IOT)[order(-Rsum_USA)][1:5])
# Plot the top 5 column sums for the USA
barplot(T5Csum_USA, main = "Top 5 Demand sectors - USA", xlab = "Industry", ylab = "Sum in Million USD", col = "violet", names.arg = colnames(USA_IOT)[order(-Csum_USA)][1:5])
The addition of “Intermediate use at basic prices” and “Final demand” would provide the total economic output at basic prices. This represents the overall economic activity within an economy, including the value of intermediate goods and services used in production and the final demand for goods and services by consumers, businesses, and the government.
This total economic output includes the sum of all goods and services produced in an economy. It’s a significant indicator of the economic activity and the size of the economy. By analyzing changes in this total over time, economists and policymakers can gain insights into the overall health and growth of the economy.
library(ggplot2)
# Defining India's Final demand
IND_FD <- OECD_IOT[1441:1485, 3499]
# head(IND_FD,45)
# Create a data frame
df_IND <- data.frame(
Industry = rownames(IND_IOT),
Rsum_IND = Rsum_IND,
IND_FD = IND_FD,
Total = Rsum_IND + IND_FD # Create a new column for the addition
)
# Order the data frame by the 'Total' column in descending order and take the top 10
df_IND <- df_IND[order(df_IND$Total, decreasing = TRUE), ]
df_IND <- head(df_IND, 10)
# Create a bar chart using the 'Total' column
ggplot(df_IND, aes(x = Total, y = Industry, fill = Industry)) +
geom_bar(stat = "identity") +
labs(
title = "Top 10 Industries: Bar Chart of Total economic output of India",
x = "Total Value in Million USD",
y = "Industry"
) +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5)
)
# Defining USA's Final demand
USA_FD <- OECD_IOT[3286:3330, 3540]
# head(USA_FD,45)
# Create a data frame
df_USA <- data.frame(
Industry = rownames(USA_IOT),
Rsum_USA = Rsum_USA,
USA_FD = USA_FD,
Total = Rsum_USA + USA_FD # Create a new column for the addition
)
# Order the data frame by the 'Total' column in descending order and take the top 10
df_USA <- df_USA[order(df_IND$Total, decreasing = TRUE), ]
df_USA <- head(df_USA, 10)
# Create a bar chart using the 'Total' column
ggplot(df_USA, aes(x = Total, y = Industry, fill = Industry)) +
geom_bar(stat = "identity") +
labs(
title = "Top 10 Industries: Bar Chart of Total economic output of USA",
x = "Total Value in Million USD",
y = "Industry"
) +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5)
)
The relationship between “Intermediate use at basic prices” and “Final demand” can be of interest and may reveal insights about the flow of goods and services in an economy. These variables are commonly analyzed in input-output analysis, which studies the interdependencies between industries and sectors within an economy.
Positive Relationship: If the “Intermediate use at basic prices” is positively correlated with “Final demand,” it suggests that as the demand for final products and services increases, industries need more intermediate inputs to meet that demand. In other words, there is a direct relationship between the production of final goods and the use of intermediate goods.
Negative Relationship: Conversely, a negative correlation could imply that as final demand increases, industries have found ways to reduce their reliance on intermediate inputs. This might indicate efficiency improvements or a shift in production methods.
No Relationship: It’s also possible that there is no significant correlation between these variables. Industries might be producing according to their own dynamics and are not strongly influenced by the overall final demand.
# Step 1: Calculate the correlation between Rsum_IND and IND_FD
correlation1 <- cor(Rsum_IND, IND_FD)
# Step 2: Create a scatter plot
plot(Rsum_IND, IND_FD, main = "Scatter Plot of Rsum_IND vs. IND_FD",
xlab = "Rsum_IND in Million USD", ylab = "IND_FD in Million USD",
col = "blue", pch = 19)
# Step 3: Determine the correlation direction
if (correlation1 > 0) {
cat("Positive correlation: ", correlation1)
} else if (correlation < 0) {
cat("Negative correlation: ", correlation1)
} else {
cat("No correlation: ", correlation1)
}
## Positive correlation: 0.3749174
# Step 1: Calculate the correlation between Rsum_USA and USA_FD
correlation2 <- cor(Rsum_USA, USA_FD)
# Step 2: Create a scatter plot
plot(Rsum_USA, USA_FD, main = "Scatter Plot of Rsum_USA vs. USA_FD",
xlab = "Rsum_USA in Million USD", ylab = "USA_FD in Million USD",
col = "gold", pch = 19)
# Step 3: Determine the correlation direction
if (correlation2 > 0) {
cat("Positive correlation: ", correlation2)
} else if (correlation < 0) {
cat("Negative correlation: ", correlation2)
} else {
cat("No correlation: ", correlation2)
}
## Positive correlation: 0.3668215
# Read the Indian supply to USA subset
IND_supply_to_USA <- OECD_IOT[1441:1485, 3287:3331]
# Read the Indian demand from USA subset
IND_demand_from_USA <- OECD_IOT[3286:3330,1442:1486]
row_to_industry <- c(
"1442" = "IND_A01_02",
"1443" = "IND_F",
"1444" = "IND_G",
"1445" = "IND_C10T12",
"1446" = "IND_O",
"1447" = "IND_L",
"1448" = "IND_H49",
"1449" = "IND_K",
"1450" = "IND_C24",
"1451" = "IND_P",
"1452" = "IND_D",
"1453" = "IND_C13T15",
"1454" = "IND_C19",
"1455" = "IND_N",
"1456" = "IND_C29",
"1457" = "IND_C20",
"1458" = "IND_Q",
"1459" = "IND_J62_63",
"1460" = "IND_I",
"1461" = "IND_C23",
"1462" = "IND_C28",
"1463" = "IND_J61",
"1464" = "IND_S",
"1465" = "IND_C22",
"1466" = "IND_C27",
"1467" = "IND_B05_06",
"1468" = "IND_C25",
"1469" = "IND_C21",
"1470" = "IND_A03",
"1471" = "IND_C31T33",
"1472" = "IND_C17_18",
"1473" = "IND_H52",
"1474" = "IND_C30",
"1475" = "IND_E",
"1476" = "IND_C26",
"1477" = "IND_J58T60",
"1478" = "IND_B07_08",
"1479" = "IND_B09",
"1480" = "IND_C16",
"1481" = "IND_R",
"1482" = "IND_H51",
"1483" = "IND_H53",
"1484" = "IND_M",
"1485" = "IND_T",
"1486" = "IND_H50"
)
# Calculate row sums for the Indian supply to USA
Rsum_IND_supply2_USA <- rowSums(IND_supply_to_USA)
# Match the row names to the industry codes
names(Rsum_IND_supply2_USA) <- row_to_industry[rownames(IND_supply_to_USA)]
# View(Rsum_IND_supply2_USA)
# Sort the row sums in descending order and select the top 5
T5_IND_supply2_USA <- order(-Rsum_IND_supply2_USA)[1:5]
# Plot the top 5 row sums for the Indian supply to USA
barplot(Rsum_IND_supply2_USA[T5_IND_supply2_USA], main = "Top 5 Exports from India to USA", xlab = "Industry", ylab = "Sum in Million USD", col = "royalblue", names.arg = names(Rsum_IND_supply2_USA[T5_IND_supply2_USA]))
# Create a vector to map row headers to industry codes for the USA
row_to_industry2 <- c(
"3287" = "USA_A01_02",
"3288" = "USA_A03",
"3289" = "USA_B05_06",
"3290" = "USA_B07_08",
"3291" = "USA_B09",
"3292" = "USA_C10T12",
"3293" = "USA_C13T15",
"3294" = "USA_C16",
"3295" = "USA_C17_18",
"3296" = "USA_C19",
"3297" = "USA_C20",
"3298" = "USA_C21",
"3299" = "USA_C22",
"3300" = "USA_C23",
"3301" = "USA_C24",
"3302" = "USA_C25",
"3303" = "USA_C26",
"3304" = "USA_C27",
"3305" = "USA_C28",
"3306" = "USA_C29",
"3307" = "USA_C30",
"3308" = "USA_C31T33",
"3309" = "USA_D",
"3310" = "USA_E",
"3311" = "USA_F",
"3312" = "USA_G",
"3313" = "USA_H49",
"3314" = "USA_H50",
"3315" = "USA_H51",
"3316" = "USA_H52",
"3317" = "USA_H53",
"3318" = "USA_I",
"3319" = "USA_J58T60",
"3320" = "USA_J61",
"3321" = "USA_J62_63",
"3322" = "USA_K",
"3323" = "USA_L",
"3324" = "USA_M",
"3325" = "USA_N",
"3326" = "USA_O",
"3327" = "USA_P",
"3328" = "USA_Q",
"3329" = "USA_R",
"3330" = "USA_S",
"3331" = "USA_T"
)
# Calculate row sums for the Indian demand from USA
Rsum_USA_supply2_IND <- rowSums(IND_demand_from_USA)
# Match the row names to the industry codes
names(Rsum_USA_supply2_IND) <- row_to_industry2[rownames(IND_demand_from_USA)]
# Sort the row sums in descending order and select the top 5
T5_IND_demand_from_usa <- order(-Rsum_USA_supply2_IND)[1:5]
# Plot the top 5 row sums for the Indian supply to USA
barplot(Rsum_USA_supply2_IND[T5_IND_demand_from_usa], main = "Top 5 Imports to India from USA", xlab = "Industry", ylab = "Sum in Million USD", col = "maroon", names.arg = names(Rsum_USA_supply2_IND)[T5_IND_demand_from_usa])
# Calculate the total sum of row sums for supply and demand
Total_Export_from_India <- sum(Rsum_IND_supply2_USA)
Total_Import_to_India <- sum(Rsum_USA_supply2_IND)
# Print the total sums
cat("Total Export from India to USA in 2022 was", Total_Export_from_India,"million USD", "\n")
## Total Export from India to USA in 2022 was 54463.4 million USD
cat("Total Import to India from USA in 2022 was", Total_Import_to_India, "million USD", "\n")
## Total Import to India from USA in 2022 was 31817 million USD
# Calculate the trade balance (exports - imports)
Trade_balance_of_IND <- Rsum_IND_supply2_USA - Rsum_USA_supply2_IND
# Print the trade balance
cat("Trade Balance of India (i.e. Exports - Imports) in year 2022 was", sum(Trade_balance_of_IND), "million USD","\n")
## Trade Balance of India (i.e. Exports - Imports) in year 2022 was 22646.4 million USD
It has been observed that India runs a trade surplus with US implying that the exports from India to US outdo the imports from US to India. A number of factors influence the trade balance include the comparative Advantage, tariffs and trade policies, exchange rates, economic and political stability and global economic conditions.
India has been running a trade surplus with the United States for several years, and this can be attributed to a variety of factors related to the economic structures, policy frameworks, and global positioning of both countries. Some key aspects that contribute to India’s trade surplus with the US include:
Hope you liked it!