EKONOMETRI 2 VIZE PROJESI

R NEDIR

R’da kullanılan paketler, fonksiyon, veri yapıları ve işlevlerin genişletilmesi ve özelleştirilmesi için kullanılır. CRAN (Comprehensive R Archive Network) ve diğer kaynaklardan binlerce paket indirilebilir. Bu paketler, R’ın yeteneklerini genişletmek ve çeşitli analiz, görselleştirme ve veri işleme görevlerini daha kolay ve etkili bir şekilde gerçekleştirmek için kullanılır.

PAKETLER

Organizasyon ve Taşıma: Ürünleri veya bilgileri düzenli bir şekilde paketlemek, taşımak ve saklamak için önemlidir. Bu, ürünlerin zarar görmesini önler ve iş süreçlerini düzenler. Koruma ve Güvenlik: Paketler, içerdikleri öğeleri dış etkenlerden korur ve güvenli bir şekilde ulaşmalarını sağlar. Özellikle kırılgan veya hassas ürünler için bu önemlidir. Marka Kimliği ve Pazarlama: İyi tasarlanmış paketler, markanın kimliğini ve değerlerini yansıtabilir, tüketicilerin dikkatini çekebilir ve satın alma kararlarını etkileyebilir. Bilgi İletişimi: Ürün ambalajları, ürünün içeriği, kullanım talimatları ve diğer önemli bilgiler hakkında tüketicilere bilgi iletmek için kullanılabilir. Çevresel Etki: Sürdürülebilir paketleme çözümleri, çevresel etkileri azaltarak doğal kaynakları korur ve atık miktarını azaltır. Bu nedenlerden dolayı paketler işletmeler ve tüketiciler için önemlidi

paketler neden onemlidir

Ekonometri paketleri, ekonomi ve finans gibi alanlarda istatistiksel ve matematiksel yöntemlerin kullanılmasını sağlayan yazılım araçlarıdır. Bu paketler, ekonomistlerin verileri analiz etmelerine, ekonometrik modeller oluşturmalarına ve ekonomik teorileri test etmelerine yardımcı olur. Ayrıca, tahminler yapmak, korelasyonları ve nedensellikleri incelemek gibi ekonometriye özgü işlemleri gerçekleştirmek için kullanılırlar. Bu nedenle, ekonometri paketleri ekonomistler için çok önemlidir çünkü karmaşık verileri işlemelerine ve anlamalarına yardımcı olurlar.

Paketler nasıl erişilir ?

Paketlere nasıl erişileceği, hangi programlama dilini ve hangi paket yöneticisini kullandığınıza bağlı olarak değişiklik gösterebilir. İşte bazı popüler programlama dilleri ve bu diller için paket yöneticileriyle paketlere erişim yöntemleri:

##ggplot2:

Veri görselleştirmesi için güçlü bir paket.

library(ggplot2) ggplot(mtcars, aes(x = mpg, y = wt)) + geom_point()

dplyr:

Veri işleme ve dönüştürme için kullanılan bir paket.

library(dplyr) mtcars %>% filter(mpg > 20) %>% select(mpg, wt)

tidyr

Veri setlerini düzenlemek için kullanılan bir paket.

library(tidyr) data <- data.frame(name = c(“John”, “Alice”, “Bob”), score_math = c(85, 90, 88), score_science = c(78, 92, 85)) pivot_longer(data, cols = starts_with(“score”), names_to = “subject”, values_to = “score”)

caret

: Makine öğrenimi için bir pake

library(caret) data(iris) train_control <- trainControl(method = “cv”, number = 5) train(Species ~ ., data = iris, method = “rpart”, trControl = train_control)

shiny:

Web tabanlı uygulamalar oluşturmak için bir paket

library(shiny) ui <- fluidPage( titlePanel(“Basit Shiny Uygulaması”), sidebarLayout( sidebarPanel( sliderInput(“bins”, “Bölmeleri seç:”, min = 1, max = 50, value = 30) ), mainPanel( plotOutput(“histogram”) ) ) ) server <- function(input, output) { output\(histogram <- renderPlot({ hist(rnorm(500, mean = 0, sd = 1), breaks = input\)bins, col = ‘darkgray’, border = ‘white’) }) } shinyApp(ui = ui, server = server)

Methods”,

programlama dilinde bir nesnenin davranışlarını ve işlevselliğini tanımlayan kod bloklarıdır. Bir sınıfa veya bir nesneye ait olan fonksiyonlar veya işlevlerdir. Bu yöntemler, nesneler arasında iletişim kurmak ve belirli görevleri gerçekleştirmek için kullanılır.

class Araba: def init(self, marka, model): self.marka = marka self.model = model self.hiz = 0

def hizlan(self, artis):
    self.hiz += artis

def yavasla(self, azalis):
    self.hiz -= azalis

def dur(self):
    self.hiz = 0

Araba sınıfından bir örnek oluşturalım

araba1 = Araba(“Toyota”, “Corolla”)

Arabayı hızlandıralım

araba1.hizlan(30)

Arabayı yavaşlatıp durdurma

araba1.yavasla(10) araba1.dur()

print(“Arabanın markası:”, araba1.marka) print(“Arabanın modeli:”, araba1.model) print(“Arabanın hızı:”, araba1.hiz)

https://data.worldbank.org/indicator/ER.H2O.FWTL.ZS?view=chart&locations=CA-CN

library(WDI)
## Warning: package 'WDI' was built under R version 4.3.3
df <- WDI(country = "all", indicator = c("ER.H2O.FWTL.ZS", "SP.POP.TOTL"))
str(df)
## 'data.frame':    17024 obs. of  6 variables:
##  $ country       : chr  "Afghanistan" "Afghanistan" "Afghanistan" "Afghanistan" ...
##  $ iso2c         : chr  "AF" "AF" "AF" "AF" ...
##  $ iso3c         : chr  "AFG" "AFG" "AFG" "AFG" ...
##  $ year          : int  1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 ...
##  $ ER.H2O.FWTL.ZS: num  NA NA NA NA NA NA NA NA NA NA ...
##   ..- attr(*, "label")= chr "Annual freshwater withdrawals, total (% of internal resources)"
##  $ SP.POP.TOTL   : num  8622466 8790140 8969047 9157465 9355514 ...
##   ..- attr(*, "label")= chr "Population, total"
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.3
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tidyr)
## Warning: package 'tidyr' was built under R version 4.3.3

library(explore)
## Warning: package 'explore' was built under R version 4.3.3
df %>% describe_all()
## # A tibble: 6 × 8
##   variable       type     na na_pct unique     min       mean        max
##   <chr>          <chr> <int>  <dbl>  <int>   <dbl>      <dbl>      <dbl>
## 1 country        chr       0    0      266   NA           NA          NA
## 2 iso2c          chr       0    0      266   NA           NA          NA
## 3 iso3c          chr       0    0      262   NA           NA          NA
## 4 year           int       0    0       64 1960         1992.       2023
## 5 ER.H2O.FWTL.ZS dbl   10831   63.6   4813    0.01       129.       7750
## 6 SP.POP.TOTL    dbl     359    2.1  16460 2646    215973749. 7950946801
countries <- unique(df$country)
knitr::kable(countries)
x
Afghanistan
Africa Eastern and Southern
Africa Western and Central
Albania
Algeria
American Samoa
Andorra
Angola
Antigua and Barbuda
Arab World
Argentina
Armenia
Aruba
Australia
Austria
Azerbaijan
Bahamas, The
Bahrain
Bangladesh
Barbados
Belarus
Belgium
Belize
Benin
Bermuda
Bhutan
Bolivia
Bosnia and Herzegovina
Botswana
Brazil
British Virgin Islands
Brunei Darussalam
Bulgaria
Burkina Faso
Burundi
Cabo Verde
Cambodia
Cameroon
Canada
Caribbean small states
Cayman Islands
Central African Republic
Central Europe and the Baltics
Chad
Channel Islands
Chile
China
Colombia
Comoros
Congo, Dem. Rep.
Congo, Rep.
Costa Rica
Cote d’Ivoire
Croatia
Cuba
Curacao
Cyprus
Czechia
Denmark
Djibouti
Dominica
Dominican Republic
Early-demographic dividend
East Asia & Pacific (excluding high income)
East Asia & Pacific (IDA & IBRD countries)
East Asia & Pacific
Ecuador
Egypt, Arab Rep.
El Salvador
Equatorial Guinea
Eritrea
Estonia
Eswatini
Ethiopia
Euro area
Europe & Central Asia (excluding high income)
Europe & Central Asia (IDA & IBRD countries)
Europe & Central Asia
European Union
Faroe Islands
Fiji
Finland
Fragile and conflict affected situations
France
French Polynesia
Gabon
Gambia, The
Georgia
Germany
Ghana
Gibraltar
Greece
Greenland
Grenada
Guam
Guatemala
Guinea-Bissau
Guinea
Guyana
Haiti
Heavily indebted poor countries (HIPC)
High income
Honduras
Hong Kong SAR, China
Hungary
IBRD only
Iceland
IDA & IBRD total
IDA blend
IDA only
IDA total
India
Indonesia
Iran, Islamic Rep.
Iraq
Ireland
Isle of Man
Israel
Italy
Jamaica
Japan
Jordan
Kazakhstan
Kenya
Kiribati
Korea, Dem. People’s Rep.
Korea, Rep.
Kosovo
Kuwait
Kyrgyz Republic
Lao PDR
Late-demographic dividend
Latin America & Caribbean (excluding high income)
Latin America & Caribbean
Latin America & the Caribbean (IDA & IBRD countries)
Latvia
Least developed countries: UN classification
Lebanon
Lesotho
Liberia
Libya
Liechtenstein
Lithuania
Low & middle income
Low income
Lower middle income
Luxembourg
Macao SAR, China
Madagascar
Malawi
Malaysia
Maldives
Mali
Malta
Marshall Islands
Mauritania
Mauritius
Mexico
Micronesia, Fed. Sts.
Middle East & North Africa (excluding high income)
Middle East & North Africa (IDA & IBRD countries)
Middle East & North Africa
Middle income
Moldova
Monaco
Mongolia
Montenegro
Morocco
Mozambique
Myanmar
Namibia
Nauru
Nepal
Netherlands
New Caledonia
New Zealand
Nicaragua
Niger
Nigeria
North America
North Macedonia
Northern Mariana Islands
Norway
Not classified
OECD members
Oman
Other small states
Pacific island small states
Pakistan
Palau
Panama
Papua New Guinea
Paraguay
Peru
Philippines
Poland
Portugal
Post-demographic dividend
Pre-demographic dividend
Puerto Rico
Qatar
Romania
Russian Federation
Rwanda
Samoa
San Marino
Sao Tome and Principe
Saudi Arabia
Senegal
Serbia
Seychelles
Sierra Leone
Singapore
Sint Maarten (Dutch part)
Slovak Republic
Slovenia
Small states
Solomon Islands
Somalia
South Africa
South Asia (IDA & IBRD)
South Asia
South Sudan
Spain
Sri Lanka
St. Kitts and Nevis
St. Lucia
St. Martin (French part)
St. Vincent and the Grenadines
Sub-Saharan Africa (excluding high income)
Sub-Saharan Africa (IDA & IBRD countries)
Sub-Saharan Africa
Sudan
Suriname
Sweden
Switzerland
Syrian Arab Republic
Tajikistan
Tanzania
Thailand
Timor-Leste
Togo
Tonga
Trinidad and Tobago
Tunisia
Turkiye
Turkmenistan
Turks and Caicos Islands
Tuvalu
Uganda
Ukraine
United Arab Emirates
United Kingdom
United States
Upper middle income
Uruguay
Uzbekistan
Vanuatu
Venezuela, RB
Viet Nam
Virgin Islands (U.S.)
West Bank and Gaza
World
Yemen, Rep.
Zambia
Zimbabwe
WDI_extra <- as.data.frame(WDI_data$country)
df <- left_join(df, WDI_extra)
## Joining with `by = join_by(country, iso2c, iso3c)`
df <- df %>%
  filter(region != "Aggregates")
df %>% describe_all()
## # A tibble: 12 × 8
##    variable       type     na na_pct unique     min      mean        max
##    <chr>          <chr> <int>  <dbl>  <int>   <dbl>     <dbl>      <dbl>
##  1 country        chr       0    0      215   NA          NA          NA
##  2 iso2c          chr       0    0      215   NA          NA          NA
##  3 iso3c          chr       0    0      215   NA          NA          NA
##  4 year           int       0    0       64 1960        1992.       2023
##  5 ER.H2O.FWTL.ZS dbl    8011   58.2   4414    0.01      138.       7750
##  6 SP.POP.TOTL    dbl     245    1.8  13467 2646    24759535. 1417173173
##  7 region         chr       0    0        7   NA          NA          NA
##  8 capital        chr       0    0      210   NA          NA          NA
##  9 longitude      chr       0    0      210   NA          NA          NA
## 10 latitude       chr       0    0      210   NA          NA          NA
## 11 income         chr       0    0        5   NA          NA          NA
## 12 lending        chr       0    0        4   NA          NA          NA
# Group by 'country' and count missing values within each group
missing_data_count <- df %>%
  group_by(country) %>%
  summarize(missing_count = sum(is.na(SP.POP.TOTL)), .groups = 'drop')

# Identify countries with all missing data or more than 20 missing points
countries_with_all_missing <- missing_data_count %>%
  filter(missing_count == 66)  # Change 66 to the total number of observations per country
countries_with_more_than_20_missing <- missing_data_count %>%
  filter(missing_count > 5)  # Change 20 to your desired threshold

# View countries with all missing data or more than 20 missing points
print(countries_with_all_missing)
## # A tibble: 0 × 2
## # ℹ 2 variables: country <chr>, missing_count <int>
## # A tibble: 0 × 2
## # ℹ 2 variables: country <chr>, missing_count <int>
print(countries_with_more_than_20_missing)
## # A tibble: 1 × 2
##   country            missing_count
##   <chr>                      <int>
## 1 West Bank and Gaza            31
## # A tibble: 1 × 2
##   country            missing_count
##   <chr>                      <int>
## 1 West Bank and Gaza            30
# Filter out West Bank and Gaza
df <- df %>%
  filter(!(country %in% c("West Bank and Gaza")))
df %>% describe_all()
## # A tibble: 12 × 8
##    variable       type     na na_pct unique     min      mean        max
##    <chr>          <chr> <int>  <dbl>  <int>   <dbl>     <dbl>      <dbl>
##  1 country        chr       0    0      214   NA          NA          NA
##  2 iso2c          chr       0    0      214   NA          NA          NA
##  3 iso3c          chr       0    0      214   NA          NA          NA
##  4 year           int       0    0       64 1960        1992.       2023
##  5 ER.H2O.FWTL.ZS dbl    7968   58.2   4393    0.01      138.       7750
##  6 SP.POP.TOTL    dbl     214    1.6  13434 2646    24811673. 1417173173
##  7 region         chr       0    0        7   NA          NA          NA
##  8 capital        chr       0    0      210   NA          NA          NA
##  9 longitude      chr       0    0      210   NA          NA          NA
## 10 latitude       chr       0    0      210   NA          NA          NA
## 11 income         chr       0    0        5   NA          NA          NA
## 12 lending        chr       0    0        4   NA          NA          NA
# Subset the original dataset 'df' to keep year bigger than 2000
dff <- df %>%
  filter(year>=2003)
# Group by 'country' and count missing values within each group
missing_data_count <- dff %>%
  group_by(country) %>%
  summarize(missing_count = sum(is.na(ER.H2O.FWTL.ZS)), .groups = 'drop')
dff %>% describe_all()
## # A tibble: 12 × 8
##    variable       type     na na_pct unique     min      mean        max
##    <chr>          <chr> <int>  <dbl>  <int>   <dbl>     <dbl>      <dbl>
##  1 country        chr       0    0      214   NA          NA          NA
##  2 iso2c          chr       0    0      214   NA          NA          NA
##  3 iso3c          chr       0    0      214   NA          NA          NA
##  4 year           int       0    0       21 2003        2013        2023
##  5 ER.H2O.FWTL.ZS dbl    1442   32.1   1803    0.02      132.       7750
##  6 SP.POP.TOTL    dbl     214    4.8   4279 9668    32978052. 1417173173
##  7 region         chr       0    0        7   NA          NA          NA
##  8 capital        chr       0    0      210   NA          NA          NA
##  9 longitude      chr       0    0      210   NA          NA          NA
## 10 latitude       chr       0    0      210   NA          NA          NA
## 11 income         chr       0    0        5   NA          NA          NA
## 12 lending        chr       0    0        4   NA          NA          NA
# Filter out countries no missing values for 'ER.H2O.FWTL.ZS'
countries_to_keep <- missing_data_count %>%
  filter(missing_count == 0) %>%
  pull(country)
# Subset the original dataset 'df' to keep only the selected countries
dff <- dff %>%
  filter(country %in% countries_to_keep)
df %>% describe_all()
## # A tibble: 12 × 8
##    variable       type     na na_pct unique     min      mean        max
##    <chr>          <chr> <int>  <dbl>  <int>   <dbl>     <dbl>      <dbl>
##  1 country        chr       0    0      214   NA          NA          NA
##  2 iso2c          chr       0    0      214   NA          NA          NA
##  3 iso3c          chr       0    0      214   NA          NA          NA
##  4 year           int       0    0       64 1960        1992.       2023
##  5 ER.H2O.FWTL.ZS dbl    7968   58.2   4393    0.01      138.       7750
##  6 SP.POP.TOTL    dbl     214    1.6  13434 2646    24811673. 1417173173
##  7 region         chr       0    0        7   NA          NA          NA
##  8 capital        chr       0    0      210   NA          NA          NA
##  9 longitude      chr       0    0      210   NA          NA          NA
## 10 latitude       chr       0    0      210   NA          NA          NA
## 11 income         chr       0    0        5   NA          NA          NA
## 12 lending        chr       0    0        4   NA          NA          NA
# Calculate ratios for each country
df_ratios <- dff %>%
  group_by(year) %>%
  summarise(
    world_gdp = sum(ER.H2O.FWTL.ZS),
    world_population = sum(SP.POP.TOTL),
    world_gdp_perp = world_gdp/world_population
  ) 
# Plotting total production per person after 2000
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
ggplot(df_ratios, aes(x = year, y = world_gdp_perp)) +
  geom_line() +
  labs(
    title = "Total Production per Person after 2000",
    x = "Year",
    y = "Total Production per Person"
  )

dff <- left_join(dff, df_ratios, by='year')
dff <- dff %>%
  mutate(
    country_ratio = ER.H2O.FWTL.ZS / world_gdp * 100,
    population_ratio = SP.POP.TOTL / world_population * 100,
    verim = country_ratio / population_ratio
  )
dff <- dff %>%
  arrange(country, year) %>%
  group_by(country) %>%
  mutate(cumulative_change = (verim / first(verim) - 1) * 100)
df_TR <- dff %>% filter(country=="canada")
ggplot(df_TR, aes(x = year, y = verim)) +
  geom_line() +
  labs(
    title = "verim in canada after 2000",
    x = "Year",
    y = "Verim"
  )

df_LV <- dff %>% filter(country=="china")
ggplot(df_LV, aes(x = year, y = verim)) +
  geom_line() +
  labs(
    title = "verim in china after 2000",
    x = "Year",
    y = "Verim"
  )

df %>% filter(country %in% c("canada", "china")) %>%
ggplot(aes(x = year,
           y = SP.POP.TOTL,
           col = country)) +
  geom_line()

library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.3
## Warning: package 'tibble' was built under R version 4.3.3
## Warning: package 'readr' was built under R version 4.3.3
## Warning: package 'purrr' was built under R version 4.3.3
## Warning: package 'forcats' was built under R version 4.3.3
## Warning: package 'lubridate' was built under R version 4.3.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.0     ✔ readr     2.1.5
## ✔ lubridate 1.9.3     ✔ stringr   1.5.1
## ✔ purrr     1.0.2     ✔ tibble    3.2.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors