introduction to r: part vi

33
Introduction to R: Part VI An Economics Data Session Alexandre Perera i Lluna 1, 2 1 Centre de Recerca en Enginyeria Biomèdica (CREB) Departament d’Enginyeria de Sistemes, Automàtica i Informàtica Industrial (ESAII) Universitat Politècnica de Catalunya mailto:[email protected] 2 Centro de Investigación Biomédica en Red en Bioingeniería, Biomateriales y Nanomedicina (CIBER-BBN) Jan 2011 / Introduction to R Universitat Rovira i Virgili

Upload: others

Post on 25-Nov-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to R: Part VI

Introduction to R: Part VIAn Economics Data Session

Alexandre Perera i Lluna 1,2

1Centre de Recerca en Enginyeria Biomèdica (CREB)Departament d’Enginyeria de Sistemes, Automàtica i Informàtica Industrial (ESAII)

Universitat Politècnica de Catalunyamailto:[email protected]

2Centro de Investigación Biomédica en Red en Bioingeniería, Biomateriales y Nanomedicina(CIBER-BBN)

Jan 2011 / Introduction to RUniversitat Rovira i Virgili

Page 2: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Contents I

1 Penn World Table DataFinding VariablesVariable NamesDataset Content

2 First ComputationsGDP in G8 and Spain

3 Regression

4 Principal Component Analysis

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 3: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Finding VariablesVariable NamesDataset Content

Penn World Table Session

PWTThe Penn World Table (PWT) displays a set of national accountseconomic time series covering many countries.It also provides information about relative prices within and betweencountries, as well as demographic data and capital stock estimates.The Table contains data on about 30 variables for about 167 countriesover some or all the years 1950-98.

The Penn World Tables are described in Robert Summers and Alan Heston “The Penn World Table (Mark 5): An Expanded Set of InternationalComparisons, 1950-1988”, Quarterly Journal of Economics, May 1991, pp.327–368

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 4: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Finding VariablesVariable NamesDataset Content

Penn World Table Session

R has PWT on the package pwt, in order to retrieve we first should install thepackage, then:

> install.packages(pwt)

> library(pwt)

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 5: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Finding VariablesVariable NamesDataset Content

Penn World Table Session> help(package=pwt)

Package: pwtVersion: 6.3-0Date: 2009-10-15Title: Penn World TableAuthor: Achim Zeileis, Guan YangMaintainer: Achim Zeileis <[email protected]>Description: The Penn World Table provides purchasing power

parity and national income accounts convertedto international prices for 189 countries forsome or all of the years 1950-2007.

License: GPL-2Repository: CRANDate/Publication: 2009-10-14 22:32:00Built: R 2.11.0; ; 2010-04-23 15:24:46 UTC; unix

Index:

pwt5.6 Penn World Table 5.6pwt6.1 Penn World Table 6.1pwt6.2 Penn World Table 6.2pwt6.3 Penn World Table 6.3

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 6: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Finding VariablesVariable NamesDataset Content

Getting to know PWT6.3

First, let’s be familiar with our dataset.> d <- pwt6.3> dim(d)

[1] 11020 36

> names(d)

[1] "country" "isocode" "year" "pop"[5] "xrat" "currency" "ppp" "cgdp"[9] "cc" "cg" "ci" "p"

[13] "pc" "pg" "pi" "openc"[17] "cgnp" "y" "yeks" "ycpdw"[21] "rgdpl" "rgdpl2" "rgdpch" "rgdptt"[25] "openk" "kc" "kg" "ki"[29] "rgdpeqa" "rgdpwok" "rgdpl2wok" "rgdpl2pe"[33] "rgdpl2te" "rgdpl2th" "grgdpch" "grgdpl2"

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 7: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Finding VariablesVariable NamesDataset Content

PWT Main Variable Names I

pop: population

xrat: Exchange rate

ppp: Purchasing power partity

cgdp: Real Gross domestic productper capita

cc: Consumption Share ofCGDPci: Investment Share of CGDPcg: Government Share ofCGDPcnfb: Net Foreign Balance

year

country

pg: Price Level of Government

p: Price Level of Gross domesticproduct

pc:. Price Level of Consumption

pi: Price Level of Investment

openc: Openness

cgnp: Gross National Produc

csave: Current Savings

y: GNP Relative to the United States(US=100)

rgdpl: Real GDP per capita(Laspeyres)

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 8: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Finding VariablesVariable NamesDataset Content

PWT Main Variable Names II

rgdpch: Real GDP per capita (Chain)

rgdpeqa: Real GDP chain perequivalent adult

rgdpwok: Real GDP chain perworker

rgdptt: Adjustment ofr changes inthe Terms of Trade

openk: Openness

kc: Consumption Share of RGDPL

kg: Government Share of RGDPL

ki: Investment Share of RGDPL

knfb: Net Foreign Balance: KNFB

KapW Capital Stock per Worker

KapD: Producers Durables

KapNR: Non ResidentialConstruction (% of Capital Stock)

KapO: Other Construction (% ofCapital Stock)

KapR: Residential Construction (%of Capital Stock)

KapT: Transport Equipment (% ofCapital Stock)

STLIV: Standard of Living

KNDP: Net Domestic Product

GRGDPCH: Growth Rate ofRGDPCH

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 9: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Finding VariablesVariable NamesDataset Content

Dataset description: Countries

> class(d$country)

[1] "factor"

> nlevels(d$country)

[1] 190

> head(levels(d$country))

[1] "Afghanistan" "Albania"[3] "Algeria" "Angola"[5] "Antigua and Barbuda" "Argentina"

> tail(levels(d$country))

[1] "Vanuatu" "Venezuela" "Vietnam" "Yemen"[5] "Zambia" "Zimbabwe"

> (spain <- which(d$country == "Spain"))

[1] 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001[12] 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012[23] 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023[34] 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034[45] 9035 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045[56] 9046 9047 9048

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 10: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Finding VariablesVariable NamesDataset Content

Years

> unique(d$year)

[1] 1950 1951 1952 1953 1954[6] 1955 1956 1957 1958 1959[11] 1960 1961 1962 1963 1964[16] 1965 1966 1967 1968 1969[21] 1970 1971 1972 1973 1974[26] 1975 1976 1977 1978 1979[31] 1980 1981 1982 1983 1984[36] 1985 1986 1987 1988 1989[41] 1990 1991 1992 1993 1994[46] 1995 1996 1997 1998 1999[51] 2000 2001 2002 2003 2004[56] 2005 2006 2007

> plot(d$year[spain],d$pop[spain],xlab="year",ylab=expression(

plain(population )*(10^3)),type='l')

1950 1960 1970 1980 1990 2000

2800

030

000

3200

034

000

3600

038

000

4000

0year

popu

latio

n(10

3 )

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 11: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

GDP in G8 and Spain

Gross Domestic Product per capita (Spain)

> plot(d$year[spain], d$cgdp[spain], xlab = "year",+ ylab = "Gross Domestic Product (Spain)",+ type = "l")

1950 1960 1970 1980 1990 2000

050

0010

000

2000

030

000

year

Gro

ss D

omes

tic P

rodu

ct (

Spa

in)

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 12: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

GDP in G8 and Spain

Gross Domestic Product per capita (G8+Spain)

> g8 <- c("Canada", "Italy", "France", "Germany",+ "Japan", "Russia", "United States of America",+ "United Kingdom", "Spain")> cols <- c("black", "red", "green", "blue",+ "yellow", "cyan", "gray", "magenta",+ "brown")> attach(d, warn.conflicts = FALSE)> plot(year[country %in% g8], cgdp[country %in%+ g8], pch = 21, bg = cols[match(d$country[d$country %in%+ g8], g8)])> legend("topleft", legend = g8, pch = 21,+ pt.bg = cols)

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 13: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

GDP in G8 and Spain

Gross Domestic Product per capita (G8+Spain)

●●●●●●●●●●●●●●●●●●●●●●●●

●●●

●●

●●

●●●

●●●

●●

●●●●●●

●●●●

●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●●

●●

●●

●●●●●

●●

●●

●●●●

●●●

●●

●●

●●

●●

●●

●●●●●●●

●●

●●

●●●

●●

●●

●●

●●

●●●

●●●●

●●

●●●

●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●●

●●

●●

●●●

●●

●●

●●

●●●●

●●●●

●●

●●

●●

●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●●

●●

●●

●●●

●●

●●

●●●●

●●●

●●●

●●●

●●

●●

●●●

●●●●●●

●●●●

●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

●●

●●

●●●●●

●●

●●

●●

●●

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

●●

●●

●●●●

●●

●●●●

●●

●●

●●

●●

●●

●●

●●●●●●●●●●●●●●●●●●●●●●●●●●

●●

●●

●●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

1950 1960 1970 1980 1990 2000

010

000

2000

030

000

4000

0

year[country %in% g8]

cgdp

[cou

ntry

%in

% g

8]●

CanadaItalyFranceGermanyJapanRussiaUnited States of AmericaUnited KingdomSpain

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 14: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

GDP in G8 and Spain

Mean Gross Domestic Product in past 50 years

Question

Which has been the mean gross domestic product per capita in all years inthe G8+Spain?

> by(d$cgdp, d$country, mean)[g8]

d$countryCanada Italy

12339.937 10659.572France Germany

11063.889 NAJapan Russia

11501.853 NAUnited States of America United Kingdom

15433.164 10761.944Spain

9388.628

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 15: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

GDP in G8 and Spain

Mean Gross Domestic Product in past 50 years

Question

Which has been the mean gross domestic product per capita in all years inthe G8+Spain?

> by(d$cgdp, d$country, mean)[g8]

d$countryCanada Italy

12339.937 10659.572France Germany

11063.889 NAJapan Russia

11501.853 NAUnited States of America United Kingdom

15433.164 10761.944Spain

9388.628

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 16: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

GDP in G8 and Spain

Dealing with NA’s

> cgdp[country == "Germany"]

[1] NA NA NA NA[5] NA NA NA NA[9] NA NA NA NA

[13] NA NA NA NA[17] NA NA NA NA[21] 3808.967 4105.509 4426.771 4831.593[25] 5256.147 5768.995 6392.438 7058.109[29] 7860.196 8859.355 9727.715 10354.658[33] 10932.733 11609.992 12215.551 12872.955[37] 13953.899 14763.932 15792.964 16818.171[41] 18246.479 19609.792 20491.730 20591.520[45] 21432.337 22256.316 22603.238 23049.579[49] 23689.091 24529.103 25502.508 26361.604[53] 26867.506 27486.528 28475.380 29547.739[57] 31291.090 33181.091

> all(!is.na(cgdp[country == "Germany"]))

[1] FALSE

> all(!is.na(cgdp[country == "Spain"]))

[1] TRUE

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 17: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

GDP in G8 and Spain

Dealing with NA’s

> by(cgdp, country, function(x) mean(x,+ na.rm = TRUE))[g8]

countryCanada Italy

12339.937 10659.572France Germany

11063.889 16647.981Japan Russia

11501.853 8510.398United States of America United Kingdom

15433.164 10761.944Spain

9388.628

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 18: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

GDP in G8 and Spain

Past 10 years?

Which has been the mean gross domestic product per capita in the past 10years in the G8+Spain?

> by(cgdp[year > 1990], country[year > 1990],+ function(x) mean(x, na.rm = TRUE))[g8]

country[year > 1990]Canada Italy

26053.526 23282.679France Germany

23493.737 25115.656Japan Russia

25499.364 8451.076United States of America United Kingdom

33294.899 23517.539Spain

21539.701

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 19: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

GDP in G8 and Spain

Past 10 years?

Which has been the mean gross domestic product per capita in the past 10years in the G8+Spain?

> by(cgdp[year > 1990], country[year > 1990],+ function(x) mean(x, na.rm = TRUE))[g8]

country[year > 1990]Canada Italy

26053.526 23282.679France Germany

23493.737 25115.656Japan Russia

25499.364 8451.076United States of America United Kingdom

33294.899 23517.539Spain

21539.701

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 20: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Regression

Could we predict the exchangerate (xrat) given:population (pop)Gross Domestic Product per capita (cgdp)Puchasing Power Parity (ppp)Openness (openc)

> mod <- lm(xrat ~ pop + cgdp + ppp + openc,+ subset = spain)

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 21: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Regression

Could we predict the exchangerate (xrat) given:population (pop)Gross Domestic Product per capita (cgdp)Puchasing Power Parity (ppp)Openness (openc)

> mod <- lm(xrat ~ pop + cgdp + ppp + openc,+ subset = spain)

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 22: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Regression

> summary(mod)

Call:lm(formula = xrat ~ pop + cgdp + ppp + openc, subset = spain)

Residuals:Min 1Q Median 3Q Max

-0.147923 -0.037132 0.007242 0.028070 0.205417

Coefficients:Estimate Std. Error t value Pr(>|t|)

(Intercept) 1.213e+00 2.279e-01 5.323 2.11e-06 ***pop -4.488e-05 8.410e-06 -5.337 2.01e-06 ***cgdp -3.403e-05 4.108e-06 -8.285 3.93e-11 ***ppp 1.620e+00 1.809e-01 8.954 3.46e-12 ***openc 2.001e-02 2.342e-03 8.545 1.53e-11 ***---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.06791 on 53 degrees of freedomMultiple R-squared: 0.9384, Adjusted R-squared: 0.9337F-statistic: 201.8 on 4 and 53 DF, p-value: < 2.2e-16

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 23: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Linear Regression Residuals> layout(matrix(c(1, 2, 3, 4), 2, 2))> plot(mod)

0.2 0.4 0.6 0.8 1.0

−0.

10.

10.

2

Fitted values

Res

idua

ls

●●●●

●●●●●

●●●

●●●●●

●●●●●

●●

●●

●●●

●●

●●

●●

●●

Residuals vs Fitted

9026

9037

9025

●●●

●●●

●●●

●●

●●●

●●

●●●●●

●●

● ●

●●

●●

●●

● ●

● ●

−2 −1 0 1 2

−2

01

23

Theoretical Quantiles

Sta

ndar

dize

d re

sidu

als

Normal Q−Q

9026

9025

9037

0.2 0.4 0.6 0.8 1.0

0.0

0.5

1.0

1.5

Fitted values

Sta

ndar

dize

d re

sidu

als

●●

●●

●●

●●

●●●

●●

●●●●

●●

●●

●●

●●

●●

Scale−Location9026

90259037

0.00 0.10 0.20 0.30

−2

01

23

Leverage

Sta

ndar

dize

d re

sidu

als

●●●

●●●●●

●●●●●●●●

●●●●●

●●

●●

●●●

●●

●●

●●

●●

● ●

Cook's distance 0.5

0.5

1

Residuals vs Leverage

9026

9025

9037

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 24: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Data Standardization

StandardizationAll variable k to have µk = 0 and σk = 1.

> s <- d[spain, ]> data <- as.data.frame(scale(s[, c("xrat", "pop", "cgdp",+ "ppp", "openc")]))> names(data) <- c("sxrat", "spop", "scgdp", "sppp", "sopenc")> s <- cbind(s, data)> names(s)

[1] "country" "isocode" "year" "pop" "xrat"[6] "currency" "ppp" "cgdp" "cc" "cg"

[11] "ci" "p" "pc" "pg" "pi"[16] "openc" "cgnp" "y" "yeks" "ycpdw"[21] "rgdpl" "rgdpl2" "rgdpch" "rgdptt" "openk"[26] "kc" "kg" "ki" "rgdpeqa" "rgdpwok"[31] "rgdpl2wok" "rgdpl2pe" "rgdpl2te" "rgdpl2th" "grgdpch"[36] "grgdpl2" "sxrat" "spop" "scgdp" "sppp"[41] "sopenc"

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 25: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Regression (after std)

> mod2 <- lm(sxrat ~ spop + scgdp + sppp + sopenc, data = s)> summary(mod2)

Call:lm(formula = sxrat ~ spop + scgdp + sppp + sopenc, data = s)

Residuals:Min 1Q Median 3Q Max

-0.56074 -0.14076 0.02745 0.10640 0.77868

Coefficients:Estimate Std. Error t value Pr(>|t|)

(Intercept) 3.255e-16 3.380e-02 9.63e-15 1spop -7.081e-01 1.327e-01 -5.337 2.01e-06 ***scgdp -1.174e+00 1.417e-01 -8.285 3.93e-11 ***sppp 1.545e+00 1.726e-01 8.954 3.46e-12 ***sopenc 1.207e+00 1.413e-01 8.545 1.53e-11 ***---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.2574 on 53 degrees of freedomMultiple R-squared: 0.9384, Adjusted R-squared: 0.9337F-statistic: 201.8 on 4 and 53 DF, p-value: < 2.2e-16

> detach(d)

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 26: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Country variance analysis

> d2007 <- d[d$year == 2007, c("xrat", "pop", "cgdp", "ppp",+ "openc")]> countries <- d$country[d$year == 2007]> mod <- prcomp(~., data = d2007, na.action = na.exclude,+ center = TRUE, scale = TRUE)> summary(mod)

Importance of components:PC1 PC2 PC3 PC4 PC5

Standard deviation 1.234 1.061 0.960 0.873 0.815Proportion of Variance 0.305 0.225 0.184 0.153 0.133Cumulative Proportion 0.305 0.530 0.714 0.867 1.000

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 27: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Score plot> library(pls)> scoreplot(mod, labels = countries)

−4 −2 0 2 4 6

−4

−2

02

46

8

PC1 (30 %)

PC

2 (2

3 %

)

AfghanistanAlbaniaAlgeriaAngolaAntigua and BarbudaArgentinaArmeniaAustralia

AustriaAzerbaijanBahamas

Bangladesh

BarbadosBelarusBelgiumBelize

BeninBermuda

BhutanBoliviaBosnia and HerzegovinaBotswana

Brazil

BruneiBulgariaBurkina FasoBurundi

Cambodia

CameroonCanadaCape VerdeCentral African RepublicChadChile

China Version 1China Version 2

ColombiaComorosCongo, Democratic Republic

Congo, Republic ofCosta RicaCote d'IvoireCroatiaCuba

CyprusCzech RepublicDenmarkDjiboutiDominicaDominican RepublicEcuadorEgyptEl Salvador

Equatorial Guinea

Eritrea

Estonia

EthiopiaFijiFinland

FranceGabonGambia, TheGeorgiaGermanyGhanaGreeceGrenada

GuatemalaGuineaGuinea−BissauGuyana

HaitiHonduras

Hong Kong

HungaryIceland

India

Indonesia

Iran

IraqIrelandIsraelItalyJamaica

JapanJordanKazakhstan

KenyaKiribatiKorea, Republic ofKuwaitKyrgyzstan

Laos

LatviaLebanonLesotho

LiberiaLibyaLithuania

Luxembourg

MacaoMacedoniaMadagascar

Malawi

MalaysiaMaldivesMali

MaltaMarshall IslandsMauritaniaMauritius

MexicoMicronesia, Fed. Sts.MoldovaMongoliaMontenegroMoroccoMozambiqueNamibia

Nepal

NetherlandsNew ZealandNicaraguaNiger

Nigeria

NorwayOman

Pakistan

PalauPanamaPapua New Guinea

Paraguay

PeruPhilippinesPolandPortugalPuerto Rico

Qatar

RomaniaRussiaRwandaSamoa

Sao Tome and Principe

Saudi ArabiaSenegal

Seychelles

Sierra Leone

Singapore

Slovak RepublicSloveniaSolomon Islands

Somalia

South AfricaSpainSri LankaSt. Kitts & NevisSt. LuciaSt. Vincent & Grenadines

SudanSurinameSwazilandSwedenSwitzerland

SyriaTaiwanTajikistan

TanzaniaThailandTimor−LesteTogoTongaTrinidad & TobagoTunisia

Turkey

Turkmenistan

UgandaUkraine

United Arab Emirates

United Kingdom

United States of America

UruguayUzbekistanVanuatuVenezuela

Vietnam

Yemen

Zambia

Zimbabwe

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 28: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Removing outliers

> coun <- which(is.na(rowMeans(d2007)))> countries[coun]

[1] Bahrain Serbia190 Levels: Afghanistan Albania Algeria Angola ... Zimbabwe

> d2007 <- d2007[-coun, ]> countries <- countries[-coun]> library(mvoutlier)> outs <- aq.plot(d2007, quan = 1)

Projection to the first and second robust principal components.Proportion of total variation (explained variance): 0.9682581

> table(outs$outliers)

FALSE TRUE164 24

> d2007 <- d2007[!outs$outliers, ]> countries <- countries[!outs$outliers]

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 29: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Removing outliers

> mod <- prcomp(d2007, center = TRUE, scale = TRUE)> summary(mod)

Importance of components:PC1 PC2 PC3 PC4 PC5

Standard deviation 1.434 1.155 0.945 0.772 0.3476Proportion of Variance 0.411 0.267 0.179 0.119 0.0242Cumulative Proportion 0.411 0.678 0.857 0.976 1.0000

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 30: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Removing outliers> scoreplot(mod$x[, 1:2], labels = countries)

−2 0 2 4 6

−2

02

4

PC1

PC

2 AfghanistanAlbania

Algeria

Angola

Antigua and Barbuda

Argentina

Armenia

Australia

AustriaAzerbaijanBahamas

Bangladesh

Barbados

Belarus

Belgium

Belize

BeninBermudaBhutan

BoliviaBosnia and HerzegovinaBotswana

BruneiBulgaria

Burkina Faso

Burundi

Cambodia

CameroonCanada

Cape VerdeCentral African Republic

ChadChileColombia

Comoros

Congo, Democratic Republic

Congo, Republic ofCosta Rica

Cote d'IvoireCroatia

Cuba

Cyprus

Czech Republic

Denmark

DjiboutiDominica

Dominican RepublicEcuador

Egypt

El Salvador

Equatorial Guinea

Eritrea

Estonia

Ethiopia

Fiji

Finland

France

Gabon

Gambia, TheGeorgia

Germany

GhanaGreece

Grenada

Guatemala

Guinea−Bissau

Guyana

Haiti

Honduras

Hungary

Iceland

IraqIreland

Israel

Italy

Jamaica

Japan

Jordan

Kazakhstan

Kenya

Kiribati

Korea, Republic ofKuwaitKyrgyzstan

Latvia

Lesotho

LiberiaLibya

Lithuania

MacaoMacedonia

Madagascar

Malawi

MalaysiaMaldives

Mali

Malta

Marshall IslandsMauritaniaMauritius

Mexico

Micronesia, Fed. Sts.

Moldova

Mongolia

Montenegro

MoroccoMozambique

Namibia

Nepal

Netherlands

New ZealandNicaragua

Niger

Nigeria

NorwayOman

PalauPanamaPapua New Guinea

Peru

Philippines

Poland

Portugal

Puerto Rico

Romania

Russia

Rwanda

SamoaSaudi Arabia Senegal

Sierra LeoneSlovak Republic

Slovenia

Solomon Islands

South AfricaSpain

Sri Lanka

St. Kitts & NevisSt. LuciaSt. Vincent & Grenadines

Sudan

Suriname

Swaziland

SwedenSwitzerland

Syria

TaiwanTajikistan

Tanzania

Thailand

Timor−Leste Togo

Tonga

Trinidad & TobagoTunisia

Turkey

Uganda

Ukraine

United Arab Emirates

United Kingdom

Uruguay

UzbekistanVanuatu

Yemen

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 31: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Clustering

> di <- dist(scale(d2007))> h <- hclust(di)> memb <- cutree(h, k = 6)> sp <- which(countries == "Spain")> idgrup <- which(memb == memb[sp])> countries[idgrup]

[1] Antigua and Barbuda Australia Austria[4] Bahamas Barbados Belgium[7] Bermuda Brunei Canada

[10] Cyprus Denmark Finland[13] France Germany Greece[16] Iceland Ireland Israel[19] Italy Kazakhstan Kuwait[22] Libya Macao Mauritius[25] Netherlands New Zealand Norway[28] Oman Portugal Puerto Rico[31] Saudi Arabia Slovenia Spain[34] Sweden Switzerland Taiwan[37] Trinidad & Tobago United Arab Emirates United Kingdom190 Levels: Afghanistan Albania Algeria Angola ... Zimbabwe

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 32: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

Clustering> rownames(d2007) <- countries> di <- dist(scale(d2007[idgrup, ]))> h <- hclust(di)> plot(h)

Icel

and

Kaz

akhs

tan

Ger

man

yU

nite

d K

ingd

omF

ranc

eIta

lyB

rune

iK

uwai

tB

erm

uda

Nor

way

Aus

tral

iaC

anad

aS

pain

Fin

land

Aus

tria

Sw

itzer

land

Den

mar

kS

wed

enB

arba

dos

Trin

idad

& T

obag

oC

ypru

sLi

bya

Om

anB

aham

asIs

rael

Sau

di A

rabi

aP

ortu

gal

Gre

ece

New

Zea

land

Ant

igua

and

Bar

buda

Pue

rto

Ric

oS

love

nia

Mau

ritiu

sTa

iwan

Mac

aoU

nite

d A

rab

Em

irate

sB

elgi

umIr

elan

dN

ethe

rland

s

02

46

8

Cluster Dendrogram

hclust (*, "complete")di

Hei

ght

Alexandre Perera i Lluna , Introduction to R: Part VI

Page 33: Introduction to R: Part VI

Penn World Table DataFirst Computations

RegressionPrincipal Component Analysis

End Part VI

Alexandre Perera i Lluna , Introduction to R: Part VI