The Marshall Plan (officially the European Recovery Program, ERP) was an American initiative to aid Western Europe, in which the United States gave $13 billion (approximately $130 billion in current dollar value as of August 2015) in economic support to help rebuild Western European economies after the end of World War II. The plan was in operation for four years beginning in April 1947. See https://en.wikipedia.org/wiki/Marshall_Plan#Expenditures.

For constructing resulting trends in GDP per capita we use data from https://mran.revolutionanalytics.com/package/maddison/.

library(maddison)
library(plotly)
## Loading required package: ggplot2
## 
## Attaching package: 'plotly'
## Следующий объект скрыт от 'package:ggplot2':
## 
##     last_plot
## Следующий объект скрыт от 'package:graphics':
## 
##     layout
library(MASS)
str(maddison)
## Classes 'tbl_df', 'tbl' and 'data.frame':    45318 obs. of  9 variables:
##  $ year            : Date, format: "0001-01-01" "0730-01-01" ...
##  $ country_original: chr  "Austria" "Austria" "Austria" "Austria" ...
##  $ gdp_pc          : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ country         : chr  "Austria" "Austria" "Austria" "Austria" ...
##  $ iso2c           : chr  "AT" "AT" "AT" "AT" ...
##  $ iso3c           : chr  "AUT" "AUT" "AUT" "AUT" ...
##  $ continent       : chr  "Europe" "Europe" "Europe" "Europe" ...
##  $ region          : chr  "Western Europe" "Western Europe" "Western Europe" "Western Europe" ...
##  $ aggregate       : logi  FALSE FALSE FALSE FALSE FALSE FALSE ...
head(maddison)
##         year country_original gdp_pc country iso2c iso3c continent
## 1 0001-01-01          Austria     NA Austria    AT   AUT    Europe
## 2 0730-01-01          Austria     NA Austria    AT   AUT    Europe
## 3 1000-01-01          Austria     NA Austria    AT   AUT    Europe
## 4 1150-01-01          Austria     NA Austria    AT   AUT    Europe
## 5 1280-01-01          Austria     NA Austria    AT   AUT    Europe
## 6 1300-01-01          Austria     NA Austria    AT   AUT    Europe
##           region aggregate
## 1 Western Europe     FALSE
## 2 Western Europe     FALSE
## 3 Western Europe     FALSE
## 4 Western Europe     FALSE
## 5 Western Europe     FALSE
## 6 Western Europe     FALSE
f <- list(
  family = "Courier New, monospace",
  size = 12,
  color = "#7f7f7f"
)

df <- subset(maddison, year >= as.Date("1800-01-01") & iso2c %in% c("DE", "FR", "IT", "GB", "US", "RU"))
plot_ly(data=df,x = year, y = gdp_pc, color = country) %>% layout(title = "GDP per capita (1800-2010)", font = f, yaxis = list(title = "GDP" ))

One can easily find the critical point on X-axis - \(1947\) year for comparing trends in GDP per capita in 1990 international Geary-Khamis dollar as a result of the Marshall plan.

We use lm to evaluate trends in GDP per capita between 1947 and 1960 for Germany, France, Italy and United Kingdom. The model is adequate but needs some arrangements. Box-Cox Transformations for Linear Models boxcox is very useful for this case.

df2 <- subset(maddison, year >= as.Date("1947-01-01") & iso2c %in% c("DE", "FR", "IT", "GB"))
df2 <- subset(df2, year <= as.Date("1960-01-01"))
plot_ly(data=df2,x = year, y = gdp_pc, color = country) %>% layout(title = "GDP per capita (1947-1960)", font = f, yaxis = list(title = "GDP" ))

df3=cbind(df2,yn=seq(1947,1960,1)) 
fit=lm(data = df3, gdp_pc~yn+country)
summary(fit)
## 
## Call:
## lm(formula = gdp_pc ~ yn + country, data = df3)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1061.38  -166.68   -30.33   199.62   998.71 
## 
## Coefficients:
##                         Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           -476368.63   25840.67 -18.435  < 2e-16 ***
## yn                        246.85      13.23  18.661  < 2e-16 ***
## countryGermany           -750.04     150.82  -4.973 7.85e-06 ***
## countryItaly            -1938.62     150.82 -12.854  < 2e-16 ***
## countryUnited Kingdom    1654.32     150.82  10.969 5.02e-15 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 399 on 51 degrees of freedom
## Multiple R-squared:  0.9488, Adjusted R-squared:  0.9448 
## F-statistic: 236.3 on 4 and 51 DF,  p-value: < 2.2e-16
par(mfrow=c(2,2))
plot(fit)

par(mfrow=c(1,1))
boxcox(fit)
grid()

Now we can use the final model for verifying. The result is quite plausible for Italy in 2000.

fit=lm(data = df3, sqrt(gdp_pc)~yn +country)

predict(fit,newdata = data.frame(yn=2000,country="Italy"), interval = "prediction")^2
##        fit      lwr      upr
## 1 20431.91 17179.85 23965.69

Money talks!