Öne çıkan

R’da Shiny Üzerinde Binom Olasılık Dağılım Simülasyonu: Binomial Probability Distribution Simulation on Shiny in R

Bu çalışma kapsamında bugün R’da yazıp Shiny üzerinde yayınladığım kesikli olasılık dağılımlarından biri olan Binom olasılık dağılım simülasyonunun geliştirilmesinde kullandığım R kodları bütünleşik olarak paylaşılarak konu hakkında farkındalık oluşturulması amaçlanmıştır. Simülasyonda ayrıca üretilen veriyi csv formatında indirebilirsiniz de.

Geliştirdiğim uygulamaya aşağıdaki linkten ulaşabilirsiniz.

https://buluttevfik.shinyapps.io/bdagilim/

Faydalı olması dileğiyle.

Bilimle ve teknolojiyle kalınız.

Not:

  •  Kaynak gösterilmeden alıntı yapılamaz veya kopyalanamaz.
  •  It can not be cited or copied without referencing.

Kütüphaneler ve R Kodları

library(shinydashboard)
library(shinydashboardPlus)
library(shiny)
library(ggthemes)
library(tibble)
library(ggplot2)
library(pastecs)
library(psych)
library(shinyWidgets)
library(shinyjs)
library(ggpubr)
library(shinyFeedback)
library(shinyalert)
library(shinyvalidate)
library(dplyr)
ui <- dashboardPage(
    dashboardHeader(title = "Gösterge Paneli"),
    dashboardSidebar(),
    dashboardBody(
        
        tags$head(tags$style(HTML(
            '.myClass { 
        font-size: 24px;
        line-height: 50px;
        text-align: center;
        font-family: "Georgia", Times, "Times New Roman", serif;
        padding: 0 15px;
        overflow: hidden;
        color: white;
        font-weight: bold;
      }
    '))),
        tags$script(HTML('
      $(document).ready(function() {
        $("header").find("nav").append(\'<span class="myClass"> Binom Olasılık Dağılım Simülasyonu </span>\');
      })
     ')),
        helpText(em(strong("Developed by Tevfik Bulut")), align = "left", style = "color:red; font-size: 12pt;font-family: Charm"),
        helpText("Olasılık teorisinde adını İsviçreli matematikçi Jacob Bernoulli’den alan Bernoulli dağılımı, bir denemenin iki sonucu (başarılı- başarısız, evet-hayır) olması durumunda kullanılan kesikli bir olasılık dağılımıdır.", strong("Binom dağılımı ise n kez tekrarlanan Bernoulli deneylerinden oluşmaktadır."), "Bernoulli dağılımında deney bir kez yapılarak başarılı olma/olmama durumu ile ilgilenirken binom dağılımı rastgele deney aynı koşullar altında n kez tekrarlanır. Diğer bir ifadeyle, eğer deney birden fazla ve bağımsız olarak tekrarlanılıp ve başarılı olma durumu ile ilgilenilirse o zaman Bernoulli dağılımının özel bir durumu olan Binom dağılımının kullanılması gerekmektedir. Eğer binom dağılımında denemelerin sayısı sonsuzsa Poisson dağılımına evrilir. Binom dağılımında kullanılan parametreler Tablo 1’de verilmiştir. Binom dağılımında n denemelerin sayısı göstermek üzere n>1’den büyük iken Bernoulli dağılımında n=1’dir.",style = "font-size: 14pt;font-family: Charm"),
        fluidRow(
            box(title = strong("Grafik"),status = "primary", solidHeader = TRUE,
                collapsible = TRUE,plotOutput("plot1", height = 475)),
            box(
                title = strong("Kontrol Parametreleri"),status = "primary", solidHeader = TRUE,
                collapsible = TRUE,
                sliderInput(inputId="s", label="Değerler sabiti (set.seed)",min=0, max=1000, value = 0),
                sliderInput("n", "Gözlemlerin sayısı (n):", 1, 1000, 50),
                sliderInput("size", "Denemelerin sayısı (s)", 1, 1000, 50),
                sliderInput("prob", "Başarı olasılığı (p)", 0.01, 1, 0.01),
                useShinyalert(),
                actionButton(inputId = "cal" ,width =270 ,label =  helpText(strong("Uygula"),style = "color:white;font-family: Georgia"),style='padding:6px; font-size:110%', class="btn-primary btn-lg active"),
                
                downloadBttn("veri", label=helpText(strong("İndir"),style = "color:white;font-family: Georgia"),style="stretch",block = F, color="primary", size="sm")),
            
        )
    )
)

server <- shinyServer(function(input, output, session) {
    iv <- InputValidator$new()
    
    iv$add_rule("prob", sv_gt(0,  message_fmt = "Başarı olasılığını 0'dan büyük olarak belirleyiniz!"))
    
    iv$enable()
    
    cast <- eventReactive(input$cal,{
        set.seed(input$s)
        n=input$n
        size = input$size
        prob =input$prob
        y=tibble(Sayi=rbinom(n,size,prob))
        y
    })
    
    output$plot1 <- renderPlot({
        m=ggplot(cast(), aes(x=Sayi)) + 
            geom_histogram(aes(y=..density..),bins=100,binwidth=.3, fill="red")+
            theme_hc()+
            ggtitle(paste("Binom Olasılık Dağılımı"," (p=",round(input$prob,2),", ","n=",input$n,", ","s=",input$size,")", sep=""))+
            xlab("Denemelerin Sayısı")+
            ylab("Olasılık")+
            theme(plot.title = element_text(hjust = 0.5, size=25, face="bold"))+
            theme(axis.text=element_text(size=15))+
            theme(axis.title.x = element_text(size=18, colour="black", face="bold"))+
            theme(axis.title.y = element_text(size=18, colour="black", face="bold"))
        m
    })
    
    
    observeEvent(input$cal, {

        shinyalert(title = "Her şey yolunda gözüküyor", type = "success")
    })
    
    
    
    output$veri <- downloadHandler(
        filename = function() {
            paste("veri", ".csv", sep = "")
        },
        content = function(file) {
            write.csv(cast(), file, row.names = FALSE)
        }
    )
    
})

shinyApp(ui, server)


Öne çıkan

R’da Shiny Üzerinde Normal Dağılım Simülasyonu İnşa Etme : Building a Normal Distribution Simulation on Shiny in R

Bu çalışma kapsamında daha önce R’da yazıp Shiny üzerinde yayınladığım Normal dağılım simülasyonunun geliştirilmesinde kullandığım R kodları bütünleşik olarak paylaşılarak konu hakkında farkındalık oluşturulması amaçlanmıştır. Simülasyonda ayrıca üretilen veriyi csv formatında indirebilirsiniz de.

Geliştirdiğim uygulamaya aşağıdaki linkten ulaşabilirsiniz.

https://buluttevfik.shinyapps.io/normdv2/

Faydalı olması dileğiyle.

Bilimle ve teknolojiyle kalınız.

Not:

  •  Kaynak gösterilmeden alıntı yapılamaz veya kopyalanamaz.
  •  It can not be cited or copied without referencing.

Kütüphaneler ve R Kodları

library(shinydashboard)
library(shinydashboardPlus)
library(shiny)
library(ggthemes)
library(colourpicker)
library(tibble)
library(ggplot2)
library(pastecs)
library(psych)
library(ggpubr)
library(shinyWidgets)

ui<-dashboardPagePlus(skin = "green",
                      dashboardHeaderPlus(title = "Normal Dağılım", titleWidth = 300),
                      dashboardSidebar(width = 300,
                                       helpText(em(strong("Developed by Tevfik Bulut")), align = "center", style = "color:white; font-size: 10pt;font-family: Charm"),
                                       
                                       sliderInput(inputId="s", label=helpText(strong("Değerler sabiti"),style = "color:white;font-family: Georgia"),min=0, max=1000, value = 0),
                                       sliderInput(inputId="n", label=helpText(strong("Popülasyon büyüklüğü (N)"),style = "color:white;font-family: Georgia"),min=0, max=1000, value = 0),
                                       
                                       sliderInput(inputId="lb", label=helpText(strong("Ortalama (μ)"),style = "color:white;font-family: Georgia"),min=0, max=100, value = 0),
                                       
                                       
                                       sliderInput(inputId="sd", label= helpText(strong("Standart Sapma (σ)"),style = "color:white;font-family: Georgia"),min=0, max=100, value = 0),
                                       colourInput(inputId="color", label= helpText(strong("Renk seçiniz"),style = "color:white;font-family: Georgia"), value="Green"),
                                       actionButton(inputId = "cal" ,width =270 ,label =  helpText(strong("Uygula"),style = "color:white;font-family: Georgia"),style='padding:6px; font-size:110%', class="btn-primary btn-lg active"),
                                       
                                       downloadBttn("veri", label=helpText(strong("İndir"),style = "color:white;font-family: Georgia"),style="stretch",block = F, color="primary", size="sm")),
                      dashboardBody(
                        tags$head(tags$style(HTML('
                                                  .main-header .logo {
                                                  font-family: "Georgia", Times, "Times New Roman", serif;
                                                  font-weight: bold;
                                                  font-size: 24px;
                                                  }
                                                  '))),
                        
                        fluidRow(
                          box(
                            title = helpText(strong("Normal Olasılık Dağılımı"),style = "color:white;font-family: Georgia"), status="success", solidHeader = TRUE,collapsible= TRUE,
                            width=300, helpText("Sürekli olasılık dağılımlarından biri olan ve istatiste önemli yer kaplayan normal dağılım, 19. yüzyılın başlarında Gauss'un katkılarıyla listeratürde yerini almıştır. Merkezi Timit Teoremi (Central Limit Theorem)'nin bir sonucudur. Popülasyondan çekilen örneklemlerin sayısı artıkça örneklemlerin ortalaması standart normal dağılıma evrilir. Normal dağılımın özellikleri şöyledir:"),
                            helpText(strong("1.Simetrik olup can eğrisi şeklindedir.")),
                            helpText(strong("2.Eğrinin altındaki alanın toplam olasılığı 1'e eşittir.")),
                            helpText(strong("3.Standart normal dağılımında ortalama 0, standart sapma ise 1'e eşittir.")),
                            helpText(strong("4. -∞ ve +∞ arasındaki değerleri alır."))
                          )),
                        
                        fluidRow(
                          box(title = helpText(strong("Merkezi Dağılım Ölçüleri"), style = "color:white;font-family: Georgia"),status = "success", solidHeader = TRUE,width = 300,
                              collapsible = TRUE,
                              valueBoxOutput("vbox3", width=3),
                              valueBoxOutput("vbox4",width=3),
                              valueBoxOutput("vbox5",width=3),
                              valueBoxOutput("vbox6",width=3)
                              
                          )),
                        
                        fluidRow(
                          box(
                            title = helpText(strong("Normal Dağılım Grafikleri"), style = "color:white;font-family: Georgia"),status = "success", solidHeader = TRUE,width=300, height=700,
                            collapsible = TRUE,
                            plotOutput("box", height = 600))
                          
                        )
                        
                        )
                      
                        )

server<-function(input, output){
  
  cast <- eventReactive(input$cal, {
    set.seed(input$s)
    y<-rnorm(input$n, input$lb, input$sd)
    tibble(v1=y)
  })
  
  
  output$box <- renderPlot({
    
    plot1<-ggplot(cast(), aes(x=v1)) + 
      geom_histogram(position="identity", alpha=0.5, color="black", fill=input$color)+
      geom_vline(aes(xintercept=mean(v1)),
                 color="black", size=1)+
      geom_text(aes(x=mean(v1), label="μ", y=0), size=5, vjust=-0.4, hjust=-0.2, color="red")+
      geom_vline(aes(xintercept=sd(v1)),
                 color="black", size=1)+
      geom_text(aes(x=sd(v1), label="σ", y=0), size = 5,vjust=-0.4, hjust=-0.2, color="red")+
      labs(x="Değerler", y = "Frekans", title="Histogram")+
      theme(axis.title.x = element_text(size=14, colour="black", face="bold"))+
      theme(axis.title.y = element_text(size=14, colour="black", face="bold"))+
      scale_color_manual(values = c("#868686FF"))+
      theme_igray()
    
    plot2<- ggplot(cast(), aes(x=v1)) + 
      geom_density(fill=input$color, alpha = 0.5)+
      geom_vline(aes(xintercept=mean(v1)),
                 color="black", size=1)+
      geom_text(aes(x=mean(v1), label="μ", y=0), size=5, vjust=-0.4, hjust=-0.2, color="red")+
      geom_vline(aes(xintercept=sd(v1)),
                 color="black", size=1)+
      geom_text(aes(x=sd(v1), label="σ", y=0), size = 5, vjust=-0.4, hjust=-0.2, color="red")+
      labs(x="Değerler", y = "Yoğunluk", title="Yoğunluk")+
      theme(axis.title.x = element_text(size=14, colour="black", face="bold"))+
      theme(axis.title.y = element_text(size=14, colour="black", face="bold"))+
      scale_color_manual(values = c("#868686FF"))+
      theme_igray()
    
    q<- ggqqplot(cast()$v1, xlab="",ylab = "Değerler", title="Q-Q Plot",  color= input$color)+
      font("ylab", size = 14, color = "black", face = "bold")+
      theme_igray()
    kutu<-ggplot(cast()) +
      aes(x = "", y = v1) +
      geom_boxplot(outlier.colour = "red", outlier.shape = 1, fill = input$color)+
      ggtitle("Kutu Diyagram")+
      ylab("Değerler")+
      xlab("")+
      theme(axis.title.y = element_text(size=14, colour="black", face="bold"))+
      stat_summary(
        aes(label = round(stat(y), 1)),
        geom = "text", 
        fun.y = function(y) { o <- boxplot.stats(y)$out; if(length(o) == 0) NA else o },
        hjust = -1
      )+
      theme_igray()
    
    sekil<-ggarrange(plot1,plot2, q, kutu)
    annotate_figure(sekil,
                    top = text_grob(paste(paste("N=",input$n, sep=""),",", paste("μ=",input$lb, sep=""), ",", paste("σ=",input$sd, sep="")), color = "red", face = "bold", size = 16))
  })
  
  
  output$vbox3 <- renderValueBox({
    valueBox(color = "green",
             subtitle=strong("Varyans"),
             ifelse(is.na(var(cast()$v1)),"",round(var(cast()$v1),2)),
             icon = icon("stats",lib='glyphicon')
    )
  })
  
  
  output$vbox4 <- renderValueBox({
    valueBox(color = "green",
             subtitle=strong("Standart Hata"),
             ifelse(is.na(sd(cast()$v1)),"",round(sd(cast()$v1)/NROW(cast()$v1),2)),
             icon = icon("stats",lib='glyphicon')
    )
  })
  
  output$vbox5 <- renderValueBox({
    valueBox(color = "green",
             subtitle=strong("Çarpıklık"),
             ifelse(is.na(skew(cast()$v1)),"",round(skew(cast()$v1),2)),
             icon = icon("stats",lib='glyphicon')
    )
  })
  
  output$vbox6 <- renderValueBox({
    valueBox(color = "green",
             subtitle=strong("Basıklık"),
             ifelse(is.na(kurtosi(cast()$v1)),"",round(kurtosi(cast()$v1),2)),
             icon = icon("stats",lib='glyphicon')
    )
  })
  
  output$veri <- downloadHandler(
    filename = function() {
      paste("veri", ".csv", sep = "")
    },
    content = function(file) {
      write.csv(cast(), file, row.names = FALSE)
    }
  )
  
  
  
  
} 
shinyApp(ui, server)

Uygulamanın Görüntüsü

Öne çıkan

R’da Dinamik Ağaç Diyagramı ve Dinamik Grafik Oluşturma Üzerine Vaka Çalışmaları: Case Studies on Dynamic Tree Diagram and Dynamic Graphing in R

Intro

In the first part of this study, a dynamic tree diagram was created on original data set using collapsibleTree library. In the second part, dynamic charts were created using rAmCharts and rAmCharts4 libraries. At the same time, download and mode change options have been added to dynamic graphics created in that section.

Giriş

Bu çalışmanın ilk bölümünde collapsibleTree kütüphanesi kullanılarak özgün veri seti üzerinden dinamik ağaç diyagramı oluşturulmuştur.İleryen bölümlerde yazılan R kod bloğunu revize ederek örgüt şemaları başta olmak üzere hiyerarşik yapılarda ağaç diyagram oluşturmak için kullanabilirsiniz.

İkinci kısımda ise rAmCharts ve rAmCharts4 kütüphaneleri kullanarak dinamik grafikler oluşturulmuştur. Aynı zamanda bu kısımda oluşturulan dinamik grafiklere indirme ve modunu değiştirme seçenekleri ilave edilmiştir. Çalışmayla yaygın olarak bilinen ggplotlyplotly gibi kütüphanelerden farklı olarak uygulama yapılarak farklı ve daha esnek bir bakış açısı kazandırılmaya çalışılmıştır. Bu kısımda ele alınan grafikler şöyledir:

  1. Bar grafikler
  2. Kutu diyagram
  3. Dambıl grafik
  4. Gösterge grafik
  5. Pasta grafik
  6. Radyal grafikler
  7. Aralık alan grafikleri
  8. Çizgi grafik
  9. Saçılım grafikleri

Kütüphaneler

kütüphane<-c("rmarkdown", "dplyr","tibble","tidyr","readr","readxl", "writexl", "kableExtra", "report", "citation", "DT", "collapsibleTree", "rAmCharts", "rAmCharts4", "lubridate")
yükle<-sapply(kütüphane, require, character.only = TRUE, warn.conflicts = FALSE)
 
#Kütüphane yüklenme durumunu gösteren tablo
 
tibble(Sıra=1:length(kütüphane), Kütüphane=names(yükle), Durumu=as.logical(yükle)) %>% mutate(Durumu=if_else(Durumu==TRUE, "Yüklendi", "Paket Kurulumu Gerekli"))

Verinin Kaynağından Okunması

Çalışmanın verisi aşağıdaki url adresinden alınmıştır. https://raw.githubusercontent.com/yigith/TurkiyeSehirlerBolgeler/master/txt/SehirlerBolgeler.txt Veri seti, Türkiye çoğrafi bölge ve il bilgilerinden oluşmaktadır.

veri <- read_delim("https://raw.githubusercontent.com/yigith/TurkiyeSehirlerBolgeler/master/txt/SehirlerBolgeler.txt", 
    "\t", escape_double = FALSE, col_names = FALSE, 
    trim_ws = TRUE)%>% 
    select(X5,X2)%>% 
    rename("Bölge"=X5, "İl"=X2)%>% mutate_if(is.character, as.factor)

veri %>% datatable()

Ağaç Diyagramın Oluşturulması

Türkiye=veri
collapsibleTree(Türkiye, c("Bölge", "İl"),zoomable = T, fill=rainbow(89), nodeSize = "leafCount")

rAmCharts Kütüphanesi İle Dinamik Grafik

Bu kısımda rAmCharts kütüphanesi kullanılmıştır. İlk olarak veri setleri verilmiş, ardından ise 3D bar grafik, tabakalı bar grafik çizilmiştir.

İlk Veri Seti

data("data_bar")

data_bar %>% datatable()

İkinci Veri Seti

data("data_gbar")
data_gbar %>% datatable()

3D Bar Grafik

Bu kısımda grafiğin sağ kısmındaki indirme ikonunda indirme seçenekleri olarak png, jpg, svg ve pdf verilmiştir. Grafikte kullanılan veri ise csv, xlsx ve json formatında indirebilirsiniz. Ayrıca grafik modunu buradan değiştirebilir, üzerinde değişiklikler yapabilirsiniz.

data_bar %>% 
amBarplot(x = "country", y = "visits", depth = 15, labelRotation = -90, xlab = "Ülkeler", ylab = "Ziyaret Sayısı") %>% 
amOptions(export = TRUE)

İç İçe Bar Grafik

Bu kısımda grafiğin sağ kısmındaki indirme ikonunda indirme seçenekleri olarak png, jpg, svg ve pdf verilmiştir. Grafikte kullanılan veri ise csv, xlsx ve json formatında indirebilirsiniz. Ayrıca grafik modunu buradan değiştirebilir, üzerinde değişiklikler yapabilirsiniz.

data_gbar %>% 
amBarplot(x = "year", y = c("income", "expenses"),groups_color =c("green","white"),layered = TRUE, ylab = "Değer", xlab = "Yıl") %>% 
amOptions(export = TRUE)

rAmCharts4 Kütüphanesi İle Dinamik Grafik

Bu kısımda rAmCharts4 kütüphanesi kullanılarak aşağıdaki grafikler çizilmiştir:

  1. Bar grafikler,
  2. Kutu diyagram,
  3. Dambıl grafik,
  4. Gösterge grafik,
  5. Pasta grafik
  6. Radyal grafikler
  7. Aralık alan grafikleri
  8. Çizgi grafik
  9. Saçılım grafikleri

Bu kısımda grafiğin sağ kısmındaki export butonunda indirme seçenekleri olarak png, jpg, svg ve pdf verilmiştir. Dilerseniz grafiği yazdırma seçeneğiniz de bulunmaktadır. Grafikte kullanılan veri setini ise csv, html ve json formatında indirebilirsiniz. Hemen hemen hemen bütün grafiklere bu bahsedilen özellikler eklenmiştir.

Bar Grafik I

veri <- tibble(
il = c("Ankara", "Trabzon", "İzmir", "Antalya", "Sivas", "İstanbul"),
ziyaret = c(3025, 1882, 1809, 1322, 1122, 1114)
)

veri %>% 
amBarChart(
category = "il", values = "ziyaret",
draggable = TRUE,
tooltip =
"[bold font-style:italic #ffff00]{valueY.value.formatNumber('#.###,')}[/]",
chartTitle =
amText(text = "İl Başına Ziyaretler", fontSize = 22, color = "orangered"),
xAxis = list(title = amText(text = "İl", color = "maroon")),
yAxis = list(
title = amText(text = "Ziyaret Sayısı", color = "maroon"),
gridLines = amLine(color = "orange", width = 1, opacity = 0.4)
),
yLimits = c(0, 4000),
valueFormatter = "#.###,",
caption = amText(text = "By Tevfik Bulut Using rAmCharts4", color = "black"),
theme = "material") 

Bar Grafik II

veri <- tibble(
language = c("Python", "Julia", "Java"),
users = c(10000, 2000, 5000),
href = c(
tinyIcon("python", "transparent"),
tinyIcon("julia", "transparent"),
tinyIcon("java", "transparent")
)
)

veri %>% 
amBarChart(
category = "language",
values = "users",
valueNames = list(users = "#users"),
showValues = FALSE,
tooltip = amTooltip(
text = "{name}: [bold]valueY[/]",
textColor = "white",
backgroundColor = "#101010",
borderColor = "silver"
),
draggable = FALSE,
backgroundColor = "seashell",
bullets = amCircle(
radius = 30,
color = "white",
strokeWidth = 4,
image = amImage(
href = "inData:href",
width = 50, height = 50
)
),
alwaysShowBullets = TRUE,
xAxis = list(title = amText(text = "Programlama Dili")),
yAxis = list(
title = amText(text = "Kullanıcı Sayıları"),
gridLines = amLine(color = "orange", width = 1, opacity = 0.4)
),
yLimits = c(0, 12000),
valueFormatter = "#.",
theme = "material", , export = T)

Bar Grafik III

set.seed(61)
veri <- tibble(
il = c("Ankara", "Trabzon", "İzmir", "Antalya", "Sivas", "İstanbul"),
ziyaret = c(3025, 1882, 1809, 1322, 1122, 1114),
gelir= rpois(6, 8000),
harcama=rpois(6, 5000)
)

veri %>%
  
amBarChart(
category = "il",
values = c("gelir", "harcama"),
valueNames = list(gelir = "Gelir", harcama = "Harcama"),
tooltip = amTooltip(
textColor = "white",
backgroundColor = "#101010",
borderColor = "silver"
),
draggable = list(gelir = TRUE, harcama = FALSE),
backgroundColor = "#30303d",

chartTitle = amText(text = "İl Başına Gelir ve Harcama"),
xAxis = list(title = amText(text = "İl")),
yAxis = list(
title = amText(text = "Gelir ve Harcama"),
gridLines = amLine(color = "whitesmoke", width = 1, opacity = 0.4),
breaks = amAxisBreaks(values = seq(0, 8152, by = 1000))
),
yLimits = c(0, 8152),
valueFormatter = "#.#",
caption = amText(text = "2020 Yılı"),
theme = "dark")

Kutu Diyagram

Aşağıdaki kod bloğunda rt() fonksiyonu ile t dağılımından rastgele sayı, gl() fonksiyonu ile ise faktör verisi üretilmiştir.

set.seed(61)
veri <- tibble(
grup = gl(4, 50, labels = LETTERS[1:4]),
deger= rt(200, df = 6)
)

veri %>%
amBoxplotChart(
category = "grup",
value = "deger",
color = "green",
xAxis = list(title = amText(text = "Grup")),
yAxis = list(title = amText(text = "Değer")),
valueFormatter = "#.#",
theme = "moonrisekingdom",
cursor=T, export=T)

Dambıl Grafik

veri <- data.frame(
x = c("T0", "T1", "T2"),
y1 = c(7, 15, 10),
y2 = c(20, 25, 23),
z1 = c(5, 10, 5),
z2 = c(25, 20, 15)
)

veri %>%
amDumbbellChart(
draggable = TRUE,
category = "x",
values = rbind(c("y1","y2"), c("z1","z2")),
seriesNames = c("Kontrol", "Tedavi"),
yLimits = c(0, 30),
segmentsStyle = list(
"Kontrol" = amSegment(width = 2),
"Tedavi" = amSegment(width = 2)
),
bullets = list(
y1 = amTriangle(strokeWidth = 0),
y2 = amTriangle(rotation = 180, strokeWidth = 0),
z1 = amTriangle(strokeWidth = 0),
z2 = amTriangle(rotation = 180, strokeWidth = 0)
),
tooltip = amTooltip("upper: {openValueY}\nlower: {valueY}", scale = 0.75),
xAxis = list(
title = amText(
"Zaman Noktası",
fontSize = 17, fontWeight = "bold", fontFamily = "Helvetica"
)
),
yAxis = list(
title = amText(
"Etki",
fontSize = 17, fontWeight = "bold", fontFamily = "Helvetica"
),
gridLines = amLine("silver", width = 1, opacity = 0.4)
),
legend = amLegend(position = "right", itemsWidth =30, itemsHeight = 30),
backgroundColor = "lightyellow",
theme = "dataviz"
)

Gösterge Grafik

Burada güncel dolar kuru üzerinden örnek bir uygulama yapılmıştır.

veri <- data.frame(
label = c("Yavaş", "Orta", "Hızlı"),
color = c("blue", "green", "red"),
lowScore = c(2, 10/3, 20/3),
highScore = c(10/3, 20/3, 10)
)
amGaugeChart(
score = 8.96, scorePrecision = 2, minScore = 2, maxScore = 10, gradingData = veri, chartTitle = "Doların Hızı:)",
theme="moonrisekingdom", export = T,hand = amHand(innerRadius = 45, width = 20, color = "slategray", strokeColor =
    "white"), caption = amText(text = "Doların Hızı", color = "black", fontWeight = "bold", fontSize = 20)
)

Pasta Grafik

veri <- tibble(
il = c("Ankara", "Trabzon", "İzmir", "Antalya", "Sivas", "İstanbul"),
ziyaret = c(3025, 1882, 1809, 1322, 1122, 1114)
)

veri %>%
  
amPieChart(
category = "il",
value = "ziyaret",
variableRadius = TRUE, chartTitle = "İllere Göre Ziyaret Sayısı", caption = amText(text = "[font-style:italic]Not:Rakamlar varsayımsal olarak üretilmiştir. Baz almayınız.[/]",
                   color = "green", fontSize = 16), export = T)

Radyal Grafik I

set.seed(61)
veri <- tibble(
il = c("Ankara", "Trabzon", "İzmir", "Antalya", "Sivas", "İstanbul"),
ziyaret = c(3025, 1882, 1809, 1322, 1122, 1114),
gelir= rpois(6, 8000),
harcama=rpois(6, 5000)
)
veri %>%
amRadialBarChart(
  category = "il",
  values = c("gelir", "harcama"),
  valueNames = list(gelir = "Gelir", harcama = "Harcama"),
  showValues = FALSE,
  tooltip = amTooltip(
    textColor = "white",
    backgroundColor = "#101010",
    borderColor = "silver"
  ),
  draggable = TRUE,
  backgroundColor = "#30303d",
  columnStyle = list(
    gelir = amColumn(
      color = "darkmagenta",
      strokeColor = "#cccccc",
      strokeWidth = 2
    ),
    harcama = amColumn(
      color = "darkred",
      strokeColor = "#cccccc",
      strokeWidth = 2
    )
  ),
  chartTitle = "İle Göre Gelir ve Harcama Dağılımı",
  xAxis = list(
    labels = amAxisLabelsCircular(
      radius = -82, relativeRotation = 90
    )
  ),
  yAxis = list(
    labels = amAxisLabels(color = "orange"),
    gridLines = amLine(color = "whitesmoke", width = 1, opacity = 0.4),
    breaks = amAxisBreaks(values = seq(0, 8151, by = 10))
  ),
  yLimits = c(0, 8151),
  valueFormatter = "#.#",
  caption = amText(
    text = "2020 Yılı",
    fontFamily = "Impact",
    fontSize = 18
  ),
  theme = "dark", export = T)

Radyal Grafik II

veri <- data.frame(
  cluster = letters[1:6],
  y1 = rep(10, 6),
  y2 = rep(8, 6),
  y3 = rep(6, 6),
  y4 = rep(4, 6),
  y5 = rep(2, 6),
  y6 = rep(4, 6),
  y7 = rep(6, 6),
  y8 = rep(8, 6),
  y9 = rep(10, 6)
)

veri %>%
amRadialBarChart(
  innerRadius = 10,
  category = "cluster", values = paste0("y", 1:9),
  showValues = FALSE,
  tooltip = FALSE, draggable = FALSE,
  backgroundColor = "black",
  columnStyle = amColumn(strokeWidth = 1, strokeColor = "white"),
  cellWidth = 100,
  xAxis = list(labels = T),
  yAxis = list(labels = T, gridLines = FALSE),
  yLimits = c(0, 10),
  legend = F,
  theme = "kelly", export = T)

Aralık Alan Grafiği

set.seed(666)
x <- 1:20
veri <- tibble(
  x = x,
  y1 = rnorm(20, sd = 1.5),
  y2 = rnorm(20, 10, sd = 1.5),
  z1 = rnorm(20, x+5, sd = 1.5),
  z2 = rnorm(20, x+15, sd = 1.5)
)

veri %>%
amRangeAreaChart(
  xValue = "x",
  yValues = rbind(c("y1", "y2"), c("z1", "z2")),
  xLimits = c(1, 20),
  draggable = TRUE,
  backgroundColor = "#30303d",
  tooltip = list(
    y1 = amTooltip(
      text = "[bold]upper: {openValueY}\nlower: {valueY}[/]",
      textColor = "yellow",
      backgroundColor = "darkmagenta",
      backgroundOpacity = 0.8,
      borderColor = "rebeccapurple",
      scale = 0.9
    ),
    y2 = amTooltip(
      text = "[bold]upper: {valueY}\nlower: {openValueY}[/]",
      textColor = "yellow",
      backgroundColor = "darkmagenta",
      backgroundOpacity = 0.8,
      borderColor = "rebeccapurple",
      scale = 0.9
    ),
    z1 = amTooltip(
      text = "[bold]upper: {openValueY}\nlower: {valueY}[/]",
      textColor = "white",
      backgroundColor = "darkred",
      backgroundOpacity = 0.8,
      borderColor = "crimson",
      scale = 0.9
    ),
    z2 = amTooltip(
      text = "[bold]upper: {valueY}\nlower: {openValueY}[/]",
      textColor = "white",
      backgroundColor = "darkred",
      backgroundOpacity = 0.8,
      borderColor = "crimson",
      scale = 0.9
    )
  ),
  bullets = list(
    y1 = amCircle(color = "yellow", strokeColor = "olive"),
    y2 = amCircle(color = "yellow", strokeColor = "olive"),
    z1 = amCircle(color = "orangered", strokeColor = "darkred"),
    z2 = amCircle(color = "orangered", strokeColor = "darkred")
  ),
  alwaysShowBullets = FALSE,
  lineStyle = list(
    y1 = amLine(color = "yellow", width = 3, tensionX = 0.8, tensionY = 0.8),
    y2 = amLine(color = "yellow", width = 3, tensionX = 0.8, tensionY = 0.8),
    z1 = amLine(color = "orangered", width = 3, tensionX = 0.8, tensionY = 0.8),
    z2 = amLine(color = "orangered", width = 3, tensionX = 0.8, tensionY = 0.8)
  ),
  areas = list(
    list(name = "y1-y2", color = "blue", opacity = 0.2),
    list(name = "z1-z2", color = "red", opacity = 0.2)
  ),
  cursor = list(
    tooltip = amTooltip(
      backgroundColor = "silver"
    ),
    extraTooltipPrecision = list(x = 0, y = 2),
    modifier = list(y = "text = parseFloat(text).toFixed(2);")
  ),
  chartTitle = amText(text = "Aralık Alan Grafiği",
                      color = "whitesmoke",
                      fontWeight = "bold"),
  xAxis = list(title = amText(text = "Gözlem",
                              fontSize = 20,
                              color = "silver"),
               labels = amAxisLabels(color = "whitesmoke",
                                     fontSize = 17),
               adjust = 5),
  yAxis = list(title = amText(text = "Değer",
                              fontSize = 20,
                              color = "silver"),
               labels = amAxisLabels(color = "whitesmoke",
                                     fontSize = 17),
               gridLines = amLine(color = "antiquewhite",
                                  opacity = 0.4, width = 1)),
  Xformatter = "#",
  Yformatter = "#.00",
  image = list(
    image = amImage(
      href = tinyIcon("react", backgroundColor = "transparent"),
      width = 40, height = 40
    ),
    position = "bottomleft", hjust = 2, vjust = -2
  ),
  theme = "dark",  export = T)

Çizgi Grafiği I

set.seed(31)
veri<- data.frame(
  x = 1:10,
  y1 = rnorm(10),
  y2 = rnorm(10)
)
veri %>%
amLineChart(
  xValue = "x",
  yValues = c("y1", "y2"),
  yValueNames = list(y1 = "Örneklem 1", y2 = "Örneklem 2"),
  trend = list(
    y1 = list(
      method = "lm.js",
      order = 3,
      style = amLine(color = "lightyellow", dash = "3,2")
    ),
    y2 = list(
      method = "loess",
      style = amLine(color = "palevioletred", dash = "3,2")
    )
  ),
  draggable = list(y1 = TRUE, y2 = FALSE),
  backgroundColor = "#30303d",
  tooltip = amTooltip(
    text = "[bold]({valueX},{valueY})[/]",
    textColor = "white",
    backgroundColor = "#101010",
    borderColor = "whitesmoke"
  ),
  bullets = list(
    y1 = amCircle(color = "yellow", strokeColor = "olive"),
    y2 = amCircle(color = "orangered", strokeColor = "darkred")
  ),
  alwaysShowBullets = TRUE,
  cursor = list(
    extraTooltipPrecision = list(x = 0, y = 2),
    modifier = list(
      y = c(
        "var value = parseFloat(text);",
        "var style = value > 0 ? '[#0000ff]' : '[#ff0000]';",
        "text = style + text + '[/]';"
      )
    )
  ),
  lineStyle = list(
    y1 = amLine(color = "yellow", width = 4),
    y2 = amLine(color = "orangered", width = 4)
  ),
  chartTitle = amText(
    text = "Gauss Örneklemleri",
    color = "whitesmoke",
    fontWeight = "bold"
  ),
  xAxis = list(title = amText(text = "Gözlem",
                             fontSize = 21,
                             color = "silver",
                             fontWeight = "bold"),
               labels = amAxisLabels(fontSize = 17),
               breaks = amAxisBreaks(
                 values = 1:10,
                 labels = sprintf("[bold %s]%d[/]", rainbow(10), 1:10))),
  yAxis = list(title = amText(text = "Değer",
                             fontSize = 21,
                             color = "silver",
                             fontWeight = "bold"),
               labels = amAxisLabels(color = "whitesmoke",
                                     fontSize = 14),
               gridLines = amLine(color = "whitesmoke",
                                  opacity = 0.4,
                                  width = 1)),
  yLimits = c(-3, 3),
  Yformatter = "#.00",
  caption = amText(text = "[font-style:italic]Sarı çizgiyi sürüklemeyi deneyin![/]",
                   color = "yellow"),
  theme = "dark")

Çizgi Grafiği II

set.seed(61)
veri <- tibble(
  tarih = ymd(Sys.Date()) - days(0:60),
  ziyaret = rpois(61, 40)
)
veri %>%
amLineChart(
  xValue = "tarih",
  yValues = "ziyaret",
  draggable = TRUE,
  chartTitle = "Ziyaretlerin Sayısı",
  xAxis = list(
    title = "Tarih",
    labels = amAxisLabels(
      formatter = amDateAxisFormatter(
              day = c("dt", "[bold]MMM[/] dt"),
              week = c("dt", "[bold]MMM[/] dt")
      )
    ),
    breaks = amAxisBreaks(timeInterval = "7 days")
  ),
  yAxis = "Ziyaretler",
  xLimits = range(veri$tarih) + c(0,7),
  yLimits = c(0, max(veri$ziyaret)),
  backgroundColor = "whitesmoke",
  tooltip = paste0(
    "[bold][font-style:italic]{dateX.value.formatDate('dd/MM/yyyy')}[/]",
    "\nziyaretler: {valueY}[/]"
  ),
  caption = amText(text = "[font-style:italic] By Tevfik Bulut Using rAmCharts4[/]",
                   color = "red"),
  theme = "patterns", export = T, cursor = T)

Saçılım Grafiği

Bu kısımda grafiği çizilen saçılım grafiğine kürsör (curso), büyütme ve küçültme (zoomButtons) ve hem x hem de y eksenleri için kaydırma çubukları eklenerek grafikteki veri noktalarının daha yakından incelenmesi amaçlanmıştır.

veri <- iris
veri$obs <- rep(1:50, 3)
veri <- reshape2::dcast(veri, obs ~ Species, value.var = "Petal.Width")

veri %>%
amScatterChart(
  xValue = "obs",
  yValues = c("setosa", "versicolor", "virginica"),
  draggable = FALSE,
  backgroundColor = "#30303d",
  pointsStyle = list(
    setosa = amCircle(color = "orange", strokeColor = "red"),
    versicolor = amCircle(color = "cyan", strokeColor = "blue"),
    virginica = amCircle(color = "palegreen", strokeColor = "darkgreen")
  ),
  tooltip = "Gözlem: {valueX}\nDeğer: {valueY}",
  chartTitle = amText(text = "Iris Veri Seti", color = "whitesmoke"),
  xAxis = list(title = amText(text = "Gözlem",
                              fontSize = 21,
                              color = "silver"),
               labels = amAxisLabels(color = "whitesmoke",
                                     fontSize = 17)),
  yAxis = list(title = amText(text = "Petal width",
                              fontSize = 21,
                              color = "silver"),
               labels = amAxisLabels(color = "whitesmoke",
                                     fontSize = 14),
               gridLines = amLine(color = "whitesmoke",
                                  opacity = 0.4, width = 1)),
  Xformatter = "#",
  Yformatter = "#.0",
  caption = amText(text = "[font-style:italic]By Tevfik Bulut Using rAmCharts4[/]",
                   color = "green"),
  theme = "dark", export = T, zoomButtons = T, cursor = T, scrollbarX = T,
  scrollbarY = T)

Sonuç

Özetle, R’da yapılan çalışmayla dinamik ağaç diyagramı ve dinamik yaygın ve nadir grafik türleri çizilerek verinin görselleştirilmesi konu alanında farkındalık oluşturulması amaçlanmıştır.

Oluşturulan grafiklerin dinamik yapısını görebilmeniz adına çalışmanın tamamını RPubs hesabımda da yayınladım. İlgilenenler için linki: https://rpubs.com/tevfik1461/dadg

Faydalı olması dileğiyle.

Bilimle ve teknolojiyle kalınız.

Not:

  •  Kaynak gösterilmeden alıntı yapılamaz veya kopyalanamaz.
  •  It can not be cited or copied without referencing.

Kaynakça

IDReferanslar
[1]Adeel Khan (2018). collapsibleTree: Interactive Collapsible Tree Diagrams using ‘D3.js’. R package version 0.1.7. https://CRAN.R-project.org/package=collapsibleTree
[2]Benoit Thieurmel, Antanas Marcelionis, Jeffery Petit, Elena Salette and Titouan Robert (2019). rAmCharts: JavaScript Charts Tool. R package version 2.1.13. https://CRAN.R-project.org/package=rAmCharts
[3]Dietrich J (2020). citation: Software Citation Tools. R packageversion 0.4.1.
[4]Garrett Grolemund, Hadley Wickham (2011). Dates and Times Made Easy with lubridate. Journal of Statistical Software, 40(3), 1-25. URL https://www.jstatsoft.org/v40/i03/.
[5]Hadley Wickham (2021). tidyr: Tidy Messy Data. R package version 1.1.3. https://CRAN.R-project.org/package=tidyr
[6]Hadley Wickham and Jennifer Bryan (2019). readxl: Read Excel Files. R package version 1.3.1. https://CRAN.R-project.org/package=readxl
[7]Hadley Wickham and Jim Hester (2021). readr: Read Rectangular Text Data. R package version 2.0.0. https://CRAN.R-project.org/package=readr
[8]Hadley Wickham, Romain François, Lionel Henry and Kirill Müller (2021). dplyr: A Grammar of Data Manipulation. R package version 1.0.7. https://CRAN.R-project.org/package=dplyr
[9]Hao Zhu (2021). kableExtra: Construct Complex Table with ‘kable’ and Pipe Syntax. R package version 1.3.4. https://CRAN.R-project.org/package=kableExtra
[10]Jeroen Ooms (2021). writexl: Export Data Frames to Excel ‘xlsx’ Format. R package version 1.4.0. https://CRAN.R-project.org/package=writexl
[11]JJ Allaire and Yihui Xie and Jonathan McPherson and Javier Luraschi and Kevin Ushey and Aron Atkins and Hadley Wickham and Joe Cheng and Winston Chang and Richard Iannone (2021). rmarkdown: Dynamic Documents for R. R package version 2.10. URL https://rmarkdown.rstudio.com.
[12]Kirill Müller and Hadley Wickham (2021). tibble: Simple Data Frames. R package version 3.1.3. https://CRAN.R-project.org/package=tibble
[13]Makowski, D., Ben-Shachar, M.S., Patil, I. & Lüdecke, D. (2020). Automated Results Reporting as a Practical Tool to Improve Reproducibility and Methodological Best Practices Adoption. CRAN. Available from https://github.com/easystats/report. doi: .
[14]R Core Team (2021). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL https://www.R-project.org/.
[15]Stéphane Laurent (2021). rAmCharts4: Interface to the JavaScript Library ‘amCharts 4’. R package version 1.5.0. https://CRAN.R-project.org/package=rAmCharts4
[16]Yihui Xie, Joe Cheng and Xianying Tan (2021). DT: A Wrapper of the JavaScript Library ‘DataTables’. R package version 0.18. https://CRAN.R-project.org/package=DT
Öne çıkan

Türkiye’de Girişimler, Bilişim Teknolojileri Kullanımında Ne Durumda?

TÜİK tarafından yapılan Girişimlerde Bilişim Teknolojileri Kullanım Araştırması, girişimlerin bilgisayar, İnternet ve diğer bilişim teknolojileri kullanımları, teknolojik yeterlilik ve entegrasyonları hakkında bilgi derlemek amacıyla; 2005 yılından itibaren uygulanmakta olup girişimlerde söz konusu teknolojilerin kullanımı hakkında bilgi veren temel veri kaynağıdır. Bu araştırma ile aşağıdaki alanlarda veri derlenmektedir:

  • Bilişim teknolojileri ve bunların girişimlerde kullanımı, kullanımın önündeki engeller
  • İnternet ve diğer ağlar (İnternet kullanımı, genişbant bağlantı, web siteleri v.b.)
  • e-Ticaret
  • e-İş
  • e-Devlet uygulamaları ve bu alandaki gelişmeler
  • Girişimlerin bilişim teknolojilerine entegrasyonları ve bunun etkileri
  • Bilişim uzmanlığı, bilişim güvenliği
  • Bulut bilişim kullanımı ve kullanım amaçları
  • Büyük veri analizi
  • Üç boyutlu yazıcı kullanımı
  • Robot teknolojisi kullanımı
  • Sosyal medya kullanımı
  • Nesnelerin İnterneti kullanımı ve kullanım amaçları
  • Yapay zeka kullanımı ve kullanım amaçları

Girişimlerde Bilişim Teknolojileri Kullanım Araştırması için veri toplama yöntemi olarak “Bilgisayar Destekli İnternet Anketi (Computer-Assisted Web Interviewing (CAWI))” kullanılmaktadır. Bilgisayar Destekli İnternet Anketi, bilgisayar yardımıyla yapılan web görüşmelerini ifade eder. Anket, web üzerinden veri giriş programı arayüzü vasıtasıyla doldurulabilmektedir. Web üzerinden yapılan uygulamada, örnek birimler için kullanıcı adı ve şifreler tanımlanarak veri güvenliği sağlanmaktadır.

2021 yılı Girişimlerde Bilişim Teknolojileri Kullanım Araştırması sonuçlarına göre öne çıkan bulgular şöyledir;

  • 2021 yılında 10 ve daha fazla çalışanı olan girişimlerin İnternete erişim oranı %95,3 olmuştur. İnternete erişim oranı çalışan sayısı büyüklük gruplarına göre incelendiğinde; bu oranın 10-49 çalışanı olan girişimlerde %94,7, 50-249 çalışanı olan girişimlerde %98,0 ve 250 ve üzeri çalışanı olan girişimlerde ise %99,9 olduğu görülmüştür.
  • Girişimlerin %93,0’ı 2021 yılında İnternete erişimde sabit genişbant bağlantı kullanmıştır. Bu girişimlerin abone oldukları en yüksek İnternet bağlantı hızları dikkate alındığında; girişimlerin %9,7’sinin 10 Mbit/s hız altında, %62,2’sinin 10-99 Mbit/s hız aralığında ve %28,1’inin ise 100 Mbit/s ve üzeri hızda İnternet kullandığı tespit edilmiştir. Çalışan sayısı 250 ve üzeri olan girişimlerde, 100 Mbit/s ve üzeri hızda İnternet kullananların oranı 2020 yılında %37,6 iken bu oran 2021 yılında %47,7’ye yükselmiştir.
  • Web sitesi sahiplik oranı, 2021 yılında 10 ve daha fazla çalışanı olan girişimlerde %49,4 olmuştur. Web sitesi sahiplik oranı, 250 ve üzeri çalışanı olan girişimlerde %91,4 olup bunu %67,6 ile 50-249 çalışanı olan girişimler ve %45,1 ile 10-49 çalışanı olan girişimler takip etmiştir.
  • Girişimlerin 2020 yılında e-satış yapma oranı, 2019 yılına göre 2,7 puan artarak %12,5 olmuştur. E-satışlar; İnternet (web siteleri ya da mobil uygulamalar) ve/veya Elektronik Veri Alışverişi (EDI) aracılığı ile gerçekleştirilmektedir. Çalışan sayısı büyüklük gruplarına göre e-satış yapma oranı, 10-49 çalışanı olan girişimlerde %11,6, 50-249 çalışanı olan girişimlerde %14,8 ve 250 ve üzeri çalışanı olan girişimlerde ise %27,0’dır.
  • E-satış yapma oranı ekonomik faaliyet gruplarına göre incelendiğinde; 2020 yılında en fazla e-satış yapma oranının %29,1 ile konaklama ve yiyecek hizmeti faaliyetlerini yürüten girişimlerde olduğu görülmüştür. Bunu %18,7 ile toptan ve perakende ticaret faaliyetini yürüten girişimler, %16,9 ile bilgisayarların ve iletişim araç ve gereçlerinin onarımı faaliyetini yürüten girişimler takip etmiştir.
  • Web sitesi veya mobil uygulamalar aracılığı ile 2020 yılında mal veya hizmet satışı yapan girişimlerin %19,5’i yurtdışına satış yapmıştır. Yurtdışına satış yapan girişimlerin web satış sürecinde karşılaştığı zorluklar incelendiğinde; girişimlerin en fazla karşılaştığı zorluğun %36,6 ile yurtdışına satılan ürünlerin teslim veya iade edilmesinin yüksek maliyeti olduğu görülmüştür. Bunu, %26,4 ile yurtdışına satış yaparken şikayet ve ihtilafların çözümüyle ilgili zorluklar ve %22,4 ile mevzuat bilgisi eksikliği zorlukları izlemiştir.
  • Ücretli bulut bilişim kullanımı, 2021 yılında 10 ve daha fazla çalışanı olan girişimlerde %10,8 olmuştur. Ücretli bulut bilişim hizmeti kullanım oranı çalışan sayısı büyüklük gruplarına göre incelendiğinde; 2021 yılında 250 ve üzeri çalışanı olan girişimlerde ücretli bulut bilişim hizmeti kullanım oranının %41,0 olduğu, bunu %19,5 ile 50-249 çalışanı olan girişimlerin, %8,5 ile 10-49 çalışanı olan girişimlerin takip ettiği görülmüştür.
  • En az 10 çalışanı olan girişimlerin %4,8’i 2021 yılında endüstriyel robot veya hizmet robotu kullandığını belirtmiştir. Çalışan sayısı büyüklük grubuna göre endüstriyel robot veya hizmet robotu kullananların oranı incelendiğinde; 10-49 çalışanı olan girişimlerin %3,7’sinin, 50-249 çalışanı olan girişimlerin %8,5’inin ve 250 ve üzeri çalışanı olan girişimlerin %23,7’sinin robot teknolojisi kullandığı görülmüştür.
  • Girişimlerin %21,1’i 2021 yılında internet aracılığıyla izlenebilen veya uzaktan kontrol edilebilen birbirine bağlı cihazlar veya sistemler (nesnelerin interneti) kullandığını belirtmiştir. Nesnelerin İnternetini kullanan girişimlerin kullanım amaçları incelendiğinde; nesnelerin İnternetinin en fazla %82,1 ile tesislerin güvenliğinin sağlanması amacı ile kullanıldığı görülmüştür. Bunu %36,2 ile enerji tüketimi yönetimi ve %32,9 ile lojistik yönetimi izlemiştir.
  • COVID-19 salgını nedeni ile 2020 yılında web sitesi veya mobil uygulamalar ya da EDI aracılığı ile mal veya hizmet satışına başladığını veya satış çabalarını artırdığını beyan eden girişimlerin oranı %14,0 olmuştur. Bu oran, çalışan sayısı büyüklük grubuna göre incelendiğinde; COVID-19 salgını nedeni ile 10-49 çalışanı olan girişimlerin %13,6’sının, 50-249 çalışanı olan girişimlerin %15,2’sinin ve 250 ve üzeri çalışanı olan girişimlerin %20,5’inin e-satışa başladığı veya satış çabalarını artırdığı görülmüştür.
  • En çarpıcı bulgulardan biri de yapay zeka teknoloji alanlarındadır. Yapay zekâ teknolojilerinden herhangi birini kullandığını belirten girişimlerin oranı, 2021 yılında %2,7 olmuştur. Yapay zekâ kullanan girişimlerin en fazla %45,2 ile görüntülere göre nesneleri veya kişileri tanımlayan teknolojiler kullandıkları görülmüştür. Bunu %43,9 ile veri analizi için makine öğrenmesi ya da derin öğrenme ve %39,6 ile farklı iş akışlarını otomatikleştiren veya karar vermeye yardımcı olan teknolojilerin kullanımı takip etmiştir.

Öne çıkan bulgular verildikten sonra bazı bulgulara derinlemesine bakalım. Ancak anlaşılır olması adına ilk olarak bulut bilişimi tanımlayalım ve işletmeler açısından önemine değinelim. Bulut bilişim, iş süreçlerinin yanı sıra uygulamalar, bilgi işlem, depolama, ağ oluşturma, geliştirme ve dağıtım platformlarını içeren bir dizi internet tabanlı bilgi işlem kaynağı sağlama yöntemidir. Bir diğer tanımda, bulut bilişim, bir müşteriye internet üzerinden sağlanan barındırma hizmetleridir. İstediğiniz şeyi istediğiniz yerde ve zamanda almanızı sağlayan internet tabanlı sanal depolama alanı olarak bulut bilişimi tanımlarsak hatalı olmaz. Buradan bakıldığında bulut bilişim işletmeleri belirli bir lokasyon ve belirli bir zaman dilimine hapsetmeyerek esnek çalışma ve uzaktan çalışma alışkanlıklarını değiştirdiği görülmektedir. Örnek olması adına COVID-19 pandemik krizi bunu bize yoğun bir şekilde göstermiştir. Günümüzün değişen iş ve teknoloji dünyası da esasen bunu gerektirmektedir. Yani belirli bir zaman ve çalışma ortamına bağımlı olmadan müşteri beklenti ve taleplerine anlık cevap vermeniz gerekir.

Bulut bilişimin avantajları nelerdir?

Bulut bilişim, işletmelerin BT kaynakları hakkında geleneksel düşünme şeklinde büyük bir değişim yaratmıştır. Kuruluşların bulut bilişim hizmetlerine yönelmesinin yedi yaygın nedenini şöyle ele alabiliriz

Maliyet: Bulut bilişim, donanım ve yazılım satın almak ve örgüt içerisinde veri merkezi kurmak ve çalıştırmak için yapılan sermaye giderlerini ortadan kaldırmaktadır. Bu maliyetler ortadan kalktığı altyapıyı yönetmek için bilgi teknolojileri uzmanlarına ihtiyaç duymasınız.

Esneklik: Bulut bilişim hizmetleri kullanıcılara zaman ve mekândan bağımsız olarak küresel ölçekte esneklik sağlamaktadır.

Performans: En büyük bulut bilişim hizmetleri, düzenli olarak en yeni nesil hızlı ve verimli bilgi işlem donanımları ile güncellendiğinden yüksek performans elde edilebilmektedir.

Hız: Bulut bilişim hizmetlerinin çoğuna self servis ve talep üzerine sunulur, bu nedenle büyük miktarda ve yüksel hacimli bilişim hizmetlerine bile dakikalar içinde, genellikle sadece birkaç tık yaparak ulaşabilirsiniz.

Verimlilik: Örgütler içindeki veri merkezleri genellikle çok sayıda “raf ve istifleme” gerektirir: donanım kurulumu, yazılım yaması ve diğer zaman alan BT yönetim işleri. Bulut bilişim, bu görevlerin çoğuna olan ihtiyacı ortadan kaldırır, böylece BT ekipleri daha önemli iş hedeflerine ulaşmak için zaman harcayabilir.

Güvenilirlik: Bulut bilişim, veri yedekleme, olağanüstü durumları kurtarma ve iş sürekliliğini daha kolay ve daha ucuz hale getirir, çünkü veriler bulut sağlayıcısının ağındaki birden fazla yedek sitede yedeklenebilir.

Güvenlik: Birçok bulut sağlayıcısı, genel olarak güvenliğinizi güçlendiren ve verilerinizi, uygulamalarınızı ve altyapınızı potansiyel tehditlerden korumaya yardımcı olan çok çeşitli politikalar, teknolojiler ve kontroller sunar. Diğer taraftan bulutta barındırılan bilgilerin önem seviyesi genellikle yüksek olduğundan kötü niyetli bireyler açısından değerli olarak görülür. İnsanların bilgisayarlarında sakladığı birçok kişisel bilgi günümüzde artan bir şekilde buluta aktarılmaktadır. Bu durum beraberinde güvenlik risklerini ve açıklarını getirmektedir. Bu yüzden, bulut sağlayıcınızın aldığı güvenlik önlemlerini anlamanız kritik öneme sahiptir ve verilerinizi güvence altına almak için kişisel önlemler almanız da aynı derecede önemlidir. Bakmanız gereken ilk şey, bulut sağlayıcınızın aldığı güvenlik önlemleridir. Bunlar bulut hizmet sağlayıcıdan sağlayıcıya ve çeşitli bulut türleri arasında değişiklik gösterir. Sağlayıcıların ne tür şifreleme yöntemleri vardır? Verilerinizin saklanacağı donanımlar için ne tür koruma yöntemleri mevcuttur? Verilerimin yedeklerini alacaklar mı? Güvenlik duvarları kurulmuş mudur? Topluluk bulutunuz varsa, bilgilerinizi diğer şirketlerden ayrı tutmak için ne gibi önlemler bulunmaktadır? Soru sorabileceğiniz birçok konu var, ancak verilerinizin güvenliği konusunda büyük bir titizlik gösteren bir bulut sağlayıcısı seçmek önemlidir. Kişisel verileriniz konusunda ne kadar dikkatli olursanız olun, buluta abone olarak harici bir kaynağa kontrolün elinde tutulması bağlamında biraz taviz vereceksiniz. Siz ve verilerinizin fiziksel konumu arasındaki bu mesafe kontrolün sağlanması açısından bir bariyer oluşturur. Burada önemli olan kullanıcı ve bulut hizmet sağlayıcı arasında bir dengenin kurulmasıdır.

Ücretli bulut bilişim uygulamaları kullanan girişimlerin yıllara ve çalışan sayılarına göre oranı Tablo 1’de verilmiştir. Tablo 1’e göre öne çıkan bulgular şöyledir:

  • Yıllara göre trend incelendiğinde ücretli bulut bilişim uygulamalarının oranının en yüksek olduğu yıl bütün girişimlerde 2020 yılı olmuştur. 10-49 çalışanı olan girişimlerde bu oran %11,9, 50-249 çalışanı olan girişimlerde %22,2 ve 250+ çalışanı olan girişimlerde ise 40,8 olmuştur. Ücretli bulut bilişim uygulamalarının oranında istikrarlı yükseliş trendinde olan girişim grubu ise 250+ çalışanı bulunan girişim grubudur. Diğer girişimlerde bulut bilişim uygulamalarının oranında istikrarlı bir trend gözlenmemiştir. Diğer taraftan genel olarak bulut bilişim uygulamalarının oranın en yüksek olduğu girişim grubu 250+ çalışanı olan girişimlerdir. Bu girişim grubunu sırasıyla 50-249 çalışanı olan girişimler ve 10-49 çalışanı olan girişimler takip etmiştir.
  • Bütün girişimlerde ücretli bulut bilişim uygulamalarının toplam oranına bakıldığında istikrarlı bir seyir izlemediği görülmektedir. 250+ çalışanı olan girişimlerin aksine diğer girişimlerin bu seyri bozduğu düşünülmektedir.

KOBİ, 250 kişiden az çalışan istihdam eden ve yıllık net satış hasılatı ya da mali bilançosu 125 milyon lirayı aşmayan ve yönetmelikte mikro işletme, küçük işletme ve orta büyüklükteki işletme olarak sınıflandırılan ekonomik birimlerdir.

  • Mikro işletme: 10 kişiden az çalışan istihdam eden ve yıllık net satış hasılatı veya mali bilançosundan biri 3 milyon lirayı aşmayan işletmelerdir.
  • Küçük işletme: 50 kişiden az çalışan istihdam eden ve yıllık net satış hasılatı veya mali bilançosundan biri 25 milyon lirayı aşmayan işletmelerdir.
  • Orta büyüklükteki işletme: 250 kişiden az çalışan istihdam eden ve yıllık net satış hasılatı veya mali bilançosundan biri 125 milyon lirayı aşmayan işletmelerdir.

KOBİ’ler Türkiye’deki tüm İşletmelerin %99,8’ini oluşturmaktadır. Buradan bakıldığında sadece %0,2’si büyük işletmelerdir. Türkiye’deki istihdamın %73,8’ini, Türkiye’deki işletmelerin toplam cirosunun %64,5’i, toplam ihracatın ise %56,3’ünü karşıladığı düşünüldüğünde KOBİ’ler sadece ülkemiz için değil ve diğer ülke ekonomilerinin de belkemiğidir. Bu perspektiften düşünüldüğünde ücretli bulut bilişim uygulamalarının oranı, 10-49 çalışanı olan girişim (küçük işletme)’ler ve 50-249 çalışanı olan girişim (orta büyüklükteki işletme)’lerde yapay zekayı ve dijital dönüşümü konuştuğumuz çağımız dikkate alındığında oldukça düşük ve rekabet edebilir bir durumda değildir. En azından bu oranların istikrarlı artış seyrinde olması ve 250+ çalışanı olan girişim (büyük işletme)’lere yaklaşması, büyük işletmelerin ise hızla bu süreci sürdürerek tamamlaması yani %100’e ulaşması gerekmektedir. Diğer bir konu ise girişimlerin buluta taşınmasını teşvik edecek uygulamaların artırılması ve yaptırımların uygulanmasına yönelik yasal düzenlemelere gidilmesi gerektiğidir. Şimdi bunlar yapılmıyor demiyorum elbette yapılıyor ancak daha etkin ve sürece ivme kazandıracak şekilde bu uygulamaların ele alınması ve takibinin yapılması gerekir.

Tablo 1: Bulut Bilişim Uygulamalarının Yıllara Göre Dağılımı (%)

Robot teknolojisi kullanan girişimlerin yıllara ve çalışan sayılarına göre oranı ise Tablo 2’de verilmiştir. Tablo 2’ye göre öne çıkan bulgular şöyledir:

  • Yıllara göre trend incelendiğinde robot teknolojisi kullanan girişimlerin toplam oranı yıllara göre istikrarlı bir şekilde azalmıştır. Sanayinin dijitalleşmesi anlamına gelen Endüstri 4.0’ı konuştuğumuz günümüzde bu bulgu kabul edilebilir ve aynı zamanda rekabet edebilir değildir. Tersine artan bir seyir göstermesi gerekir. Benzer azalış trendi 10-49 çalışanı olan girişim (küçük işletme)’lerde de mevcuttur. 50-249 çalışanı olan girişim (orta büyüklükte işletme)’lerde ise 2020 yılındaki yükselişten sonra düşüş söz konusudur. Bu arada ister Endüstri 4.0 (Industry 4.0) ister Toplum 5.0 (Society 5.0) veya Akıllı Ulus (Smart Nation) programı olsun bu kavramlara fazla takılmayalım. Takılacağımız tek konu, bu kavramların içeriği ve işletmelere ne vaat ettiği ve bizim o süreçlere nasıl uyum sağlayacağımızdır.
  • Diğer taraftan 250+ çalışanı olan girişim (büyük işletme)’lerde robot teknolojisi kullananların oranının istikrarlı bir artış trendi ortaya koyması sevindiricidir.

Tablo 2: Büyüklük Grubuna Göre Robot Teknolojisi Kullanan Girişimlerin Oranı (%)

Bu görselin boş bir alt özelliği var; dosya ismi: image-8.png

Özetle, Girişimlerde Bilişim Teknolojileri Kullanım Araştırması’nın 2021 yılı bulgularından öne çıkanları verilerek konu alanında farkındalık oluşturulması amaçlanmıştır. Teknolojide ülkemizin bağımsızlık mücadelesi olan Milli Teknoloji Hamlesi, 2023 Sanayi ve Teknoloji Stratejisi, 2021-2025 Ulusal Yapay Zeka Stratejisi ve On Birinci Kalkınma Planı‘nda yapay zeka ve robotik, kritik teknolojiler olup ülkemizin öncelikli alanlarındandır. Bulut bilişim ise aynı belgelerde dijital dönüşümün bir parçasıdır. Bu ve buna benzer kritik teknolojilere ve öncelikli sektörlere söz konusu bu belgeler içerisinde detaylı bir şekilde yer verilmesi çok önemlidir. Ancak yakından demiyorum çok yakından takip edilmesi ve her bir kritik teknoloji alanında firmaların aldığı yolun aylık olarak değerlendirilmesi ve ilerleme raporları hazırlanması gerekmektedir. Bu öneriyi tekrar tekrar yazıyorum ama olsun. Türkiye Büyük Millet Meclisi bünyesinde önemini ve işlevselliğini ayrıca vurgulamak için “Yapay Zekâ Komisyonu” ivedilikle kurulmalıdır. Firmalarımızın teknolojiyle büyümesi ve bunun sürdürülebilir kılınması ülkemiz ekonomik büyümesi, rekabet edebilirliği ve refahı açısından son derece önemlidir.

Faydalı olması dileğiyle.

Bilimle ve teknolojiyle kalınız.

Yararlanılan Kaynaklar

Öne çıkan

Word Dokümanlarından Metin Çıkarma: Extracting Text from Word Documents

Intro

Within the scope of this study, it is aimed to ensure that text data is read in R environment without corruption, to be cleaned after reading, and to create word clouds based on frequencies by using the R programming language. For this purpose, mainly readtext, textread and textclean libraries are used.

Giriş

R ortamında veya başka ortamlarda metin verisine hızlı bir şekilde ulaşıp, doğal dil işleme araçlarıyla analize uygun hale getirmek gereklidir. Tabiri caizse veri madenciliği alt alanlarından biri olan metin madenciliği (text mining) işlemlerinin yapılması gereklidir. Esasen veri madenciliğinin temel amacı da verinin analize uygun hale getirilmesidir.Burada da bunu yapıyoruz. İyi bir veri madenciliği iyi bir analiz için birincil basamaktır.

Günlük hayatta karşılaştığımız doküman uzantı türleri oldukça fazladır. Ancak uygulamada çoğunlukla karşılaştığımız doküman uzantıları doc, docx, txt, pdf, ppt, html, rtf, csv şeklindedir. Tabi bu listenin genişletilmesi mümkündür.

Bu çalışma kapsamında R programlama dili kullanılarak metin verisi bozulmadan R ortamında okunmasının sağlanması, okunduktan sonra temizlenmesi ve frekanslara dayalı kelime bulutlarının oluşturulması amaçlanmıştır. Bu amaçla ağırlıklı olarak readtext, textread ve textclean kütüphaneleri kullanılmıştır.

Yüklenen kütüphaneler

kütüphane<-c("dplyr","tibble","tidyr","ggplot2","readxl","pander", "writexl","RColorBrewer","readr","citation","report", "purrr", "textreadr", "readtext", "tidytext", "stringr", "tokenizers", "wordcloud2", "textclean")
yükle<-sapply(kütüphane, require, character.only = TRUE, warn.conflicts = FALSE)
 
#Kütüphane yüklenme durumunu gösteren tablo
 
tibble(Sıra=1:length(kütüphane), Kütüphane=names(yükle), Durumu=as.logical(yükle)) %>%
mutate(Durumu=if_else(Durumu==TRUE, "Yüklendi", "Paket Kurulumu Gerekli")) %>%
pander()
SıraKütüphaneDurumu
1dplyrYüklendi
2tibbleYüklendi
3tidyrYüklendi
4ggplot2Yüklendi
5readxlYüklendi
6panderYüklendi
7writexlYüklendi
8RColorBrewerYüklendi
9readrYüklendi
10citationYüklendi
11reportYüklendi
12purrrYüklendi
13textreadrYüklendi
14readtextYüklendi
15tidytextYüklendi
16stringrYüklendi
17tokenizersYüklendi
18wordcloud2Yüklendi
19textcleanYüklendi

Türkçe Metinler

Bildiğiniz üzere Türkçe metinler doğrudan okunmaya çalışıldığında dilimize özgü harf karakterlerinde bozulmalar meydana gelmektedir. Bu nedenle aşağıdaki kod ile Türkçe dili tanımlanmıştır.

Sys.setlocale(category = "LC_ALL",locale = "Turkish")
[Sonuç] "LC_COLLATE=Turkish_Turkey.1254;LC_CTYPE=Turkish_Turkey.1254;LC_MONETARY=Turkish_Turkey.1254;LC_NUMERIC=C;LC_TIME=Turkish_Turkey.1254"

Docx Uzantılı Dokümanları Okuma I

Aşağıda anayasa metninin %20’si tekrarsız örneklem ile seçilmiştir.

Anayasa metnini aşağıdaki linkten indirebilirsiniz.

metin=read_document("anayasa.docx")

metin %>% sample(size = length(metin)*0.2) %>% cat() 

[Sonuç]  5735 Türkiye Büyük Millet Meclisi Başkanlık Divanı için, bir yasama döneminde iki seçim yapılır.  (Değişik ikinci cümle: 7/5/2010-5982/10  md. )  İlk seçilenlerin görev süresi iki yıldır, ikinci devre için seçilenlerin görev süresi ise o yasama döneminin sonuna kadar devam eder. Türkiye Büyük Millet Meclisi üyelerine ödenecek ödenek ve yolluklar, kendilerine   T.C. Emekli Sandığı  tarafından bağlanan emekli aylığı ve benzeri ödemelerin kesilmesini gerektirmez. D) Askerî Yargıtay ve Askerî Yüksek İdare Mahkemesinden Anayasa Mahkemesi üyeliğine seçilmiş bulunan kişilerin herhangi bir sebeple görevleri sona erene kadar üyelikleri devam eder. Madde 40 –  Anayasa ile tanınmış hak ve hürriyetleri ihlal edilen herkes, yetkili makama geciktirilmeden başvurma imkanının sağlanmasını isteme hakkına sahiptir. Kanun, Cumhurbaşkanlığı kararnamesi veya Türkiye Büyük Millet Meclisi İçtüzüğü ya da bunların hükümleri, iptal kararlarının Resmî Gazetede yayımlandığı tarihte yürürlükten kalkar. Gereken  hallerde Anayasa Mahkemesi iptal hükmünün yürürlüğe gireceği tarihi ayrıca  kararlaştırabilir. Bu tarih, kararın Resmî Gazetede yayımlandığı günden başlayarak bir yılı geçemez. 2. Yönetmelikler (Mülga son fıkra : 23/7/1995-4121/15  md. ) Geçici Madde 10 –  Mahalli İdare seçimleri en geç Türkiye Büyük Millet Meclisinin ilk toplantısını izleyen bir yıl içinde yapılır. Madde 136 –  Genel idare içinde yer alan Diyanet İşleri Başkanlığı, laiklik ilkesi doğrultusunda, bütün siyasi görüş ve düşünüşlerin dışında kalarak ve milletçe dayanışma ve bütünleşmeyi amaç edinerek, özel kanununda gösterilen görevleri yerine getirir. Devlet, maddi imkanlardan yoksun başarılı öğrencilerin, öğrenimlerini sürdürebilmeleri amacı ile burslar ve başka yollarla gerekli yardımları yapar. Devlet, durumları sebebiyle özel eğitime ihtiyacı olanları topluma yararlı kılacak tedbirleri alır. III.  Türkiye Büyük Millet Meclisinin faaliyetleri ile ilgili hükümler En az ilkokul mezunu olmayanlar, kısıtlılar, askerlikle ilişiği olanlar, kamu hizmetinden yasaklılar, taksirli suçlar hariç toplam bir yıl veya daha fazla hapis ile ağır hapis cezasına hüküm giymiş olanlar; zimmet, ihtilas, irtikap, rüşvet, hırsızlık, dolandırıcılık, sahtecilik, inancı kötüye kullanma, dolanlı iflas gibi yüz kızartıcı suçlarla, kaçakçılık, Resmî ihale ve alım satımlara fesat  karıştırma, Devlet  sırlarını açığa vurma, terör eylemlerine katılma ve bu gibi eylemleri tahrik ve teşvik suçlarından biriyle hüküm giymiş olanlar, affa uğramış olsalar bile milletvekili seçilemezler. Danıştay üyelerinin dörtte üçü, birinci sınıf idari yargı hakim ve savcıları ile bu meslekten sayılanlar arasından Hakimler ve Savcılar (…)  Kurulu; dörtte biri, nitelikleri kanunda belirtilen görevliler arasından Cum hurbaşkanı; tarafından seçilir. Madde 57   –  Devlet, şehirlerin özelliklerini ve çevre şartlarını gözeten bir planlama çerçevesinde, konut ihtiyacını karşılayacak tedbirleri alır, ayrıca toplu konut teşebbüslerini destekler. 4 üncü maddesi, Bir siyasi partinin temelli kapatılmasına beyan veya faaliyetleriyle sebep olan kurucuları dahil üyeleri, Anayasa Mahkemesinin temelli kapatmaya ilişkin kesin kararının Resmî Gazetede gerekçeli olarak yayımlanmasından başlayarak beş yıl süreyle bir başka partinin kurucusu, üyesi, yöneticisi ve deneticisi olamazlar. (Ek fıkra: 21/6/2005-5370/1  md. )  Radyo ve televizyon faaliyetlerini düzenlemek ve denetlemek amacıyla kurulan Radyo ve Televizyon Üst Kurulu dokuz üyeden oluşur. Üyeler, siyasi parti gruplarının üye sayısı oranında belirlenecek üye sayısının ikişer katı olarak gösterecekleri adaylar arasından, her siyasi parti grubuna düşen üye sayısı esas alınmak suretiyle Türkiye Büyük Millet  Meclisi Genel Kurulunca seçilir. Radyo ve Televizyon Üst Kurulunun kuruluşu, görev ve yetkileri, üyelerinin nitelikleri, seçim usulleri ve görev süreleri kanunla düzenlenir. BAŞLANGIÇ hükmü, 33, 52, 53, 67, 68, 69, 84,85, 93, 127, 135,149, 171, İşlenemeyen Hüküm Birinci fıkranın (b) ve (c) bentleri uyarınca seçilen üyelerden, üçüncü fıkra uyarınca göreve başlayanların görev süresi, birinci fıkranın (a), (ç), (d) ve (e) bentleri uyarınca seçilen diğer Kurul üyelerinin görev süresinin bittiği tarihte sona erer. II.  Piyasaların denetimi ve dış ticaretin düzenlenmesi Madde 127 –  Mahalli idareler; il, belediye veya köy halkının mahalli müşterek ihtiyaçlarını karşılamak üzere kuruluş esasları kanunla belirtilen ve karar organları, gene kanunda gösterilen, seçmenler tarafından seçilerek oluşturulan kamu tüzelkişileridir. A. Kıyılardan yararlanma b) Cumhurbaşkanının istemi ve tespit edeceği süre içinde: I. İnkılap kanunlarının korunması (Değişik: 3/10/2001-4709/4  md. )  Bu esaslar dışında bir işleme tâbi tutulan kişilerin uğradıkları zarar, tazminat hukukunun genel prensiplerine göre, Devletçe ödenir. (Ek fıkra: 3/10/2001-4709/16  md. )  Devlet, işlemlerinde, ilgili kişilerin hangi kanun yolları ve mercilere başvuracağını ve sürelerini belirtmek zorundadır. b) 12 Aralık 1980 gün ve 2356 sayılı Milli Güvenlik Konseyi Hakkında Kanun, III.  Hakimler ve Savcılar (…)  Kurulu a) İKİNCİ KISIM II. Bölümdeki; kişi hürriyeti ve güvenliği, basın ve yayımla ilgili hükümler, toplantı hak ve hürriyetleri, K.: 2010/87 sayılı Kararı Kesinhesap  kanunu teklifi, yeni yıl bütçe kanunu teklifiyle birlikte görüşülür ve karara bağlanır. Madde 115 – (Mülga: 21/1/2017-6771/16  md. ) Madde 60 –  Herkes, sosyal güvenlik hakkına sahiptir. Kalkınma planlarının hazırlanmasına, Türkiye Büyük Millet Meclisince onaylanmasına, uygulanmasına, değiştirilmesine ve bütünlüğünü bozacak değişikliklerin önlenmesine ilişkin usul ve esaslar kanunla düzenlenir. Devlet, ailenin huzur ve refahı ile özellikle ananın ve çocukların korunması ve aile planlamasının öğretimi ile uygulanmasını sağlamak için gerekli tedbirleri alır, teşkilatı kurar. Madde 38 –  Kimse, işlendiği zaman yürürlükte bulunan kanunun suç saymadığı bir fiilden dolayı cezalandırılamaz; kimseye suçu işlediği zaman kanunda o suç için konulmuş olan cezadan daha ağır bir ceza verilemez. 4. Yasama dokunulmazlığı Madde 64 –  Devlet, sanat faaliyetlerini ve sanatçıyı korur. Sanat eserlerinin ve sanatçının korunması, değerlendirilmesi, desteklenmesi ve sanat sevgisinin yayılması için gereken tedbirleri alır. 5551 3. Görev ve yetkileri a) Anayasa hükümlerine aykırı olmamak kaydıyla, yürürlükteki kanun hükümlerine göre Kurul şeklinde çalışır. A.   Gençliğin korunması Madde 74 –  Vatandaşlar ve karşılıklılık esası gözetilmek kaydıyla Türkiye’de ikamet eden yabancılar kendileriyle veya kamu ile ilgili dilek ve şikayetleri hakkında, yetkili makamlara ve Türkiye Büyük Millet Meclisine yazı ile başvurma hakkına sahiptir. 75, 77, 101 (Mevcut 101 inci maddenin son fıkrasında yer alan “Cumhurbaşkanı seçilenin, varsa partisi ile ilişiği kesilir” ibaresinin ilgası haricinde), 102 Ara verme veya tatil sırasında toplanan Türkiye Büyük Millet Meclisinde, öncelikle bu toplantıyı gerektiren konu görüşülmeden ara verme veya tatile devam edilemez. J.  Kanunsuz emir Ekonomik, ticari veya teknik ilişkileri düzenleyen ve süresi bir yılı aşmayan  andlaşmalar , Devlet Maliyesi bakımından bir yüklenme getirmemek, kişi hallerine ve Türklerin yabancı memleketlerdeki mülkiyet haklarına dokunmamak şartıyla, yayımlanma ile yürürlüğe konabilir. Bu takdirde bu  andlaşmalar , yayımlarından başlayarak iki ay içinde Türkiye Büyük Millet Meclisinin bilgisine sunulur. Yargıtay Birinci Başkanı, birinci başkanvekilleri ve daire başkanları kendi üyeleri arasından Yargıtay Genel Kurulunca üye tamsayısının salt çoğunluğu ve gizli oyla dört yıl için seçilirler; süresi bitenler yeniden seçilebilirler. Madde 75 – (Değişik: 23/7/1995-4121/8  md. ) XII.  Sanatın ve sanatçının korunması Madde 66 –  Türk Devletine vatandaşlık bağı ile bağlı olan herkes  Türktür . 1. Başkomutanlık ve Genelkurmay Başkanlığı Madde 4 –  Anayasanın 1 inci maddesindeki Devletin şeklinin Cumhuriyet olduğu hakkındaki hüküm ile, 2  nci  maddesindeki Cumhuriyetin nitelikleri ve 3 üncü maddesi hükümleri değiştirilemez ve değiştirilmesi teklif edilemez. 9, 76, 78, 101 inci maddenin son fıkrasında yer alan “Cumhurbaşkanı seçilenin, varsa partisi ile ilişiği kesilir” ibaresinin ilgası bakımından, 114 üncü maddenin birinci, dördüncü, beşinci, altıncı ve yedinci fıkralarının ilgası bakımından, 127  nci  maddenin üçüncü fıkrası, 142, 145, 146, 148 inci maddenin altıncı fıkrasındaki “, Askerî Yargıtay, Askerî Yüksek İdare Mahkemesi”  ve “Yüksek” ibarelerinin yürürlükten  kaldırılmasına dair değişiklik ile yedinci fıkrasındaki değişiklik, 149, 154, 155 inci maddenin üçüncü fıkrası, 156, 157, 158, 159, Geçici 21 inci maddenin (F) ve (G) fıkraları haricindeki hükümleri Konusu suç teşkil eden emir, hiçbir suretle yerine getirilmez; yerine getiren kimse sorumluluktan kurtulamaz . Merkezî yönetim  kesinhesap  kanunu teklifi, ilgili olduğu malî yılın sonundan başlayarak en geç altı ay sonra Cumhurbaşkanı tarafından Türkiye Büyük Millet Meclisine sunulur. Sayıştay genel uygunluk bildirimini, ilişkin olduğu  kesinhesap  kanun teklifinin verilmesinden başlayarak en geç  yetmişbeş  gün içinde Meclise sunar. Madde 13 –    (Değişik: 3/10/2001-4709/2  md. ) Yasama ve yürütme organları ile idare, mahkeme kararlarına uymak zorundadır; bu organlar ve idare, mahkeme kararlarını hiçbir suretle değiştiremez ve bunların yerine getirilmesini geciktiremez. Herkes, önceden izin almaksızın dernek kurma ve bunlara üye olma ya da üyelikten çıkma hürriyetine sahiptir. c) ÜÇÜNCÜ  KISIM'daki ; yasama ile ilgili hükümler; Ekonomik Hükümler 18/10/1982 TARİHLİ VE 2709 SAYILI KANUNA İŞLENEMEYEN HÜKÜMLER Meclisteki açık görüşmelerin, o oturumdaki Başkanlık Divanının teklifi üzerine  Meclisce  başkaca bir karar alınmadıkça, her türlü vasıta ile yayımı serbesttir. Devletçe kamu tüzelkişiliği olarak kurulan tek radyo ve televizyon kurumu ile kamu tüzelkişilerinden yardım gören haber ajanslarının özerkliği ve yayınlarının tarafsızlığı esastır. Siyasi partilerin tüzük ve programları ile eylemleri, Devletin bağımsızlığına, ülkesi ve  milletiyle bölünmez bütünlüğüne, insan haklarına, eşitlik ve hukuk devleti ilkelerine, millet  egemenliğine, demokratik ve laik Cumhuriyet ilkelerine aykırı olamaz; sınıf veya zümre diktatörlüğünü veya herhangi bir tür diktatörlüğü savunmayı ve yerleştirmeyi amaçlayamaz; suç işlenmesini teşvik edemez. İlgili kanunlarda gerekli düzenlemeler yapılıncaya kadar, Hâkimler ve Savcılar Yüksek Kuruluna seçilen asıl üyeler, Yargıtay daire başkanı için ilgili mevzuatında öngörülen tüm malî ve sosyal haklar ile emeklilik hakkından aynen yararlanırlar. Ayrıca, Kurulun Başkanı dışındaki asıl üyelerine, (30000) gösterge rakamının memur aylıklarına uygulanan katsayı ile çarpımı sonucu bulunacak miktarda aylık ek tazminat ödenir. Madde 152 –  Bir davaya bakmakta olan mahkeme, uygulanacak bir kanun veya Cumhurbaşkanlığı kararnamesinin hükümlerini Anayasaya aykırı görürse veya taraflardan birinin ileri  sürdüğü aykırılık iddiasının ciddi olduğu kanısına varırsa, Anayasa Mahkemesinin bu konuda vereceği karara kadar davayı geri bırakır. Bu haklar, ancak kamu yararı amacıyla, kanunla sınırlanabilir. Grev ve lokavtın yasaklanabileceği veya ertelenebileceği haller ve işyerleri kanunla düzenlenir. 17/10/2001 Madde 18 –  Hiç kimse zorla çalıştırılamaz. Angarya yasaktır. Cumhurbaşkanı seçilen milletvekilinin Türkiye Büyük Millet Meclisi üyeliği sona erer. Kamu idarelerinin ve kamu iktisadî teşebbüsleri dışındaki kamu tüzel kişilerinin harcamaları yıllık bütçelerle yapılır. B. Göreve başlama ve güvenoyu Cumhurbaşkanı, ilk genel seçimler sonucu Türkiye Büyük Millet Meclisi toplanıp; Başkanlık Divanı oluşuncaya kadar, 12 Aralık 1980 gün ve 2356 sayılı Kanunla teşekkül etmiş olan Milli Güvenlik Konseyinin Başkanlığını da yürütür. Hakimler ve savcılar  altmışbeş  yaşını bitirinceye kadar hizmet görürler; askeri hakimlerin yaş haddi, yükselme ve emeklilikleri kanunda gösterilir. 3– 3/10/2001 tarih li  ve 4709 sayılı Kanunun hükümleridir. I. Anayasanın değiştirilmesi, seçimlere ve halkoylamasına katılma: D.  Sendikal faaliyet Cumhurbaşkanı, ayrıca Anayasada ve kanunlarda verilen seçme ve atama görevleri ile diğer görevleri yerine getirir ve yetkileri kullanır. IX. Bilim ve sanat hürriyeti (Ek fıkra: 3/10/2001-4709/15 md; Mülga fıkra: 7/5/2004-5170/5  md. ) E. Bakanlıkların kurulması ve bakanlar B. Sıkıyönetim, seferberlik ve savaş hali Başkenti Ankara'dır. B.  Başkanlık Divanı Kararnameler ve yönetmelikler, yayımdan sonraki bir tarih belirlenmemişse, Resmî Gazetede yayımlandıkları gün yürürlüğe girer. Seçimlerinin birlikte yenilenmesine karar verilen Meclisin ve Cumhurbaşkanının yetki ve görevleri, yeni Meclisin ve Cumhurbaşkanının göreve başlamasına kadar devam eder. Yüksek öğretim öğrencilerinin siyasi partilere üye olabilmelerine ilişkin esaslar kanunla düzenlenir Madde 11 –  Anayasa hükümleri, yasama, yürütme ve yargı organlarını, idare makamlarını ve diğer kuruluş ve kişileri bağlayan temel hukuk kurallarıdır. C.  Görev sırasında güvenoyu Üniversitelerin hazırladığı bütçeler; Yükseköğretim Kurulunca tetkik ve onaylandıktan sonra Milli Eğitim Bakanlığına sunulur ve merkezi yönetim bütçesinin bağlı olduğu esaslara uygun olarak işleme tabi tutularak yürürlüğe konulur ve denetlenir. ç) Türkiye Adalet Akademisi Genel Kurulu, kendi üyeleri arasından, Hâkimler ve Savcılar Yüksek Kuruluna bir asıl ve bir yedek üye seçer. Bu Kanunun yürürlüğe girdiği tarihten itibaren yedi gün içinde Türkiye Adalet Akademisi Başkanı adaylık başvurusunu ilan eder. İlan tarihinden itibaren  yedi gün içinde adaylar Başkanlığa başvurur. Başvuru tarihinin sona erdiği günden itibaren  onbeş  gün içinde Türkiye Adalet Akademisi Genel Kurulu seçim yapar. Her üyenin (…)  oy kullanabileceği seçimde, en fazla oy alan adaylar sırasıyla asıl ve yedek üye seçilmiş olur. VII.  Ücrette adalet sağlanması 9/11/2005 Orman olarak muhafazasında bilim ve fen bakımından hiçbir yarar görülmeyen, aksine tarım alanlarına dönüştürülmesinde kesin yarar olduğu tespit edilen yerler ile 31/12/1981 tarihinden önce bilim ve fen bakımından orman niteliğini tam olarak kaybetmiş olan tarla, bağ, meyvelik, zeytinlik gibi çeşitli tarım alanlarında veya hayvancılıkta kullanılmasında yarar olduğu tespit edilen araziler, şehir, kasaba ve köy yapılarının toplu olarak bulunduğu yerler dışında, orman sın ırlarında daraltma yapılamaz. FİKİR, İNANÇ VE KARARIYLA anlaşılmak, sözüne ve ruhuna bu yönde saygı ve mutlak sadakatle yorumlanıp uygulanmak üzere. Milletlerarası  andlaşmaları  onaylar ve yayımlar. Vergi, resim, harç ve benzeri mali yükümlülükler kanunla konulur, değiştirilir veya kaldırılır. 6, 7 ve 14 üncü maddeleri birlikte, Genel Kurulda kamu idare bütçeleri ile değişiklik önergeleri, üzerinde ayrıca görüşme yapılmaksızın okunur ve oylanır. "Devletin varlığı ve bağımsızlığını vatanın ve milletin bölünmez bütünlüğünü, milletin kayıtsız ve şartsız egemenliğini koruyacağıma; hukukun üstünlüğüne, demokratik ve laik Cumhuriyete ve Atatürk ilke ve inkılaplarına bağlı kalacağıma; toplumun huzur ve refahı, milli dayanışma ve adalet anlayışı içinde herkesin insan haklarından ve temel hürriyetlerden yararlanması ülküsünden ve Anayasaya  sadakattan  ayrılmayacağıma; büyük Türk milleti önünde namusum ve şerefim üzerine  andiçerim ". F. Üyelikle ilgili hükümler Bayrağı, şekli kanununda belirtilen, beyaz ay yıldızlı al bayraktır. Madde 77 – (Değişik: 21/1/2017-6771/4  md. ) (Ek fıkra: 9/2/2008-5735/2  md. ; İptal: Anayasa Mahkemesinin 5/6/2008 tarihli ve E.: 2008/16, K.: 2008/116 sayılı Kararı ile. ) İkinci fıkrada öngörülen taksitlendirmelerde ve herhangi bir sebeple ödenmemiş kamulaştırma bedellerinde kamu alacakları için öngörülen en yüksek faiz uygulanır. Türk Silahlı Kuvvetlerinin kullanılmasına karar verir. 14 üncü madde hükümlerine aykırı olmamak şartıyla ibadet, dini ayin ve törenler serbesttir. (Değişik fıkra: 23/7/1995-4121/13  md. )  Bu meslek kuruluşları ve üst kuruluşları organlarının seçimlerinde siyasi partiler aday gösteremezler. Hakim ve savcıların nitelikleri, atanmaları, hakları ve ödevleri, aylık ve ödenekleri, meslekte ilerlemeleri, görevlerinin ve görev yerlerinin geçici veya sürekli olarak değiştirilmesi, haklarında disiplin kovuşturması açılması ve disiplin cezası verilmesi, görevleriyle ilgili veya görevleri sırasında işledikleri suçlarından dolayı soruşturma yapılması ve yargılanmalarına karar verilmesi, meslekten  çıkarmayı gerektiren suçluluk veya yetersizlik halleri ve meslek içi eğitimleri ile diğer özlük işleri mahkemelerin bağımsızlığı ve hakimlik teminatı esaslarına göre kanunla düzenlenir. TÜRKİYE CUMHURİYETİ ANAYASASI Seçme ve seçilme hakkı ise yine bu hükümlere dayalı olarak hazırlanacak Seçim Kanununun; Madde 155 –  Danıştay, idari mahkemelerce verilen ve kanunun başka bir idari yargı merciine bırakmadığı karar ve hükümlerin son inceleme merciidir. Kanunla gösterilen belli davalara da ilk ve son derece mahkemesi olarak bakar. Memurlar ve diğer kamu görevlileri ile kamu kurumu niteliğindeki meslek kuruluşları ve bunların üst kuruluşları mensuplarına savunma hakkı tanınmadıkça disiplin cezası verilemez. Seçimden önce veya sonra bir suç işlediği ileri sürülen bir milletvekili, Meclisin kararı olmadıkça tutulamaz, sorguya çekilemez, tutuklanamaz ve yargılanamaz. Ağır cezayı gerektiren suçüstü hali ve seçimden önce soruşturmasına başlanılmış olmak kaydıyla Anayasanın 14 üncü  maddesindeki durumlar bu hükmün dışındadır. Ancak, bu halde yetkili makam durumu hemen ve doğrudan doğruya Türkiye Büyük Millet Meclisine bildirmek zorundadır. Bu hükümlere aykırı faaliyette bulunanlar hakkında uygulanacak müeyyideler, kanunla düzenlenir. A. Toplu iş sözleşmesi ve toplu sözleşme hakkı Sağlık hizmetlerinin yaygın bir şekilde yerine getirilmesi için kanunla genel sağlık sigortası kurulabilir. Devletleştirme gerçek karşılığı üzerinden yapılır. Gerçek karşılığın hesaplanma tarzı ve usulleri kanunla düzenlenir. b) 75, 77, 101 ve 102  nci  maddelerinde yapılan değişiklikler, birlikte yapılacak ilk Türkiye Büyük Millet Meclisi ve Cumhurbaşkanlığı seçimlerine ilişkin takvimin başladığı tarihte, Kuvvetler ayrımının, Devlet organları arasında üstünlük sıralaması anlamına gelmeyip, belli Devlet yetki ve görevlerinin kullanılmasından ibaret ve bununla  sınırlı medeni bir işbölümü ve  işbirliği olduğu ve üstünlüğün ancak Anayasa ve kanunlarda bulunduğu; II.  Yüksek mahkemeler Cumhurbaşkanının görevde bulunduğu sürede işlediği iddia edilen suçlar için görevi bittikten sonra da bu madde hükmü uygulanır. Geçici Madde 17 – (Ek: 10/5/2007-5659/1  md. ) E. Kanun hükmünde kararname çıkarma yetkisi verme A. Sosyal güvenlik hakkı Kişinin Hakları ve Ödevleri 5982 A. İdarenin esasları Madde 35 –  Herkes, mülkiyet ve miras haklarına sahiptir. Yakalanan veya tutuklanan kişilere, yakalama veya tutuklama sebepleri ve haklarındaki iddialar herhalde yazılı ve bunun hemen mümkün olmaması halinde sözlü olarak derhal, toplu suçlarda en geç hakim huzuruna çıkarılıncaya kadar bildirilir. Madde 129 –  Memurlar ve diğer kamu görevlileri Anayasa ve kanunlara sadık kalarak faaliyette bulunmakla yükümlüdürler. Türkiye Büyük Millet Meclisi Başkanı, Başkanvekilleri, üyesi bulundukları siyasi partinin veya parti grubunun Meclis içinde veya dışındaki faaliyetlerine; görevlerinin gereği olan haller dışında, Meclis tartışmalarına katılamazlar; Başkan ve oturumu yöneten Başkanvekili oy kullanamazlar. Ülkenin iç ve dış siyaseti hakkında Meclise mesaj verir. (Ek fıkra: 7/5/2010-5982/4  md. )  Devlet, her türlü istismara ve şiddete karşı çocukları koruyucu tedbirleri alır. Hangi yönetmeliklerin Resmî Gazetede yayımlanacağı kanunda belirtilir. İdari işlemlere karşı açılacak davalarda süre, yazılı bildirim tarihinden başlar. IX.  Yargı yetkisi Kamu tüzelkişiliği,  kanunla veya Cumhurbaşkanlığı kararnamesiyle  kurulur. (Ek fıkra: 7/5/2010-5982/23  md. )  Ekonomik ve sosyal politikaların oluşturulmasında Cumhurbaşkanına  istişarî  nitelikte görüş bildirmek amacıyla Ekonomik ve Sosyal Konsey kurulur. Ekonomik ve Sosyal Konseyin kuruluş ve işleyişi kanunla düzenlenir. Madde 27 –  Herkes, bilim ve sanatı serbestçe öğrenme ve öğretme, açıklama, yayma ve bu alanlarda her türlü araştırma hakkına sahiptir. Siyasi partiler, demokratik siyasi hayatın vazgeçilmez unsurlarıdır. XI. Anayasanın bağlayıcılığı ve üstünlüğü Vatandaş sınır dışı edilemez ve yurda girme hakkından yoksun bırakılamaz. Madde 44 –  Devlet, toprağın verimli olarak işletilmesini korumak ve geliştirmek, erozyonla kaybedilmesini önlemek ve topraksız olan veya yeter toprağı bulunmayan çiftçilikle uğraşan köylüye toprak sağlamak amacıyla gerekli tedbirleri alır. Kanun, bu amaçla, değişik tarım bölgeleri ve çeşitlerine göre toprağın genişliğini  tesbit  edebilir. Topraksız olan veya yeter toprağı bulunmayan çiftçiye toprak sağlanması, üretimin düşürülmesi, ormanların küçülmesi ve diğer toprak ve yeraltı servetlerinin azalması sonucunu doğuramaz. Sayıştayın  kuruluşu, işleyişi, denetim usulleri, mensuplarının nitelikleri, atanmaları, ödev ve yetkileri, hakları ve yükümlülükleri ve diğer özlük işleri, Başkan ve üyelerinin teminatı kanunla düzenlenir. 3361 Madde 43 –  Kıyılar, Devletin hüküm ve tasarrufu altındadır. Hakimler ve savcılar, kanunda belirtilenlerden başka, Resmî ve özel hiçbir görev alamazlar. Madde 146  – (Değişik: 7/5/2010-5982/16  md. ) Madde 165 –  Sermayesinin yarısından fazlası doğrudan doğruya veya dolaylı olarak Devlete ait olan kamu kuruluş ve ortaklıklarının Türkiye Büyük Millet Meclisince denetlenmesi esasları kanunla düzenlenir. B. Esnaf ve sanatkarların korunması Eğitim ve öğretim hürriyeti, Anayasaya sadakat borcunu ortadan kaldırmaz. (Değişik birinci cümle: 7/5/2010-5982/11  md. )  Yargı yetkisi, idarî eylem ve işlemlerin hukuka uygunluğunun denetimi ile sınırlı olup, hiçbir surette yerindelik denetimi şeklinde kullanılamaz. Yürütme görevinin kanunlarda gösterilen şekil ve esaslara uygun olarak yerine getirilmesini  kısıtlayacak, idari eylem ve işlem niteliğinde veya takdir yetkisini kaldıracak biçimde yargı kararı verilemez. Madde 35-  Bu Kanun yayımı tarihinde yürürlüğe girer ve halkoylamasına sunulması halinde tümüyle oylanır. Madde 139 –  Hakimler ve savcılar azlolunamaz, kendileri istemedikçe Anayasada gösterilen yaştan önce emekliye ayrılamaz; bir mahkemenin veya kadronun kaldırılması sebebiyle de olsa, aylık, ödenek ve diğer özlük haklarından yoksun kılınamaz. Madde 167 –  Devlet, para, kredi, sermaye, mal ve hizmet piyasalarının sağlıklı ve düzenli işlemelerini sağlayıcı ve geliştirici tedbirleri alır; piyasalarda fiili veya anlaşma sonucu doğacak tekelleşme ve kartelleşmeyi önler. Çevreyi geliştirmek, çevre sağlığını korumak ve çevre kirlenmesini önlemek Devletin ve vatandaşların ödevidir. 6.  1 Teşrinisani 1928 tarihli ve 1353 sayılı Türk Harflerinin Kabul ve Tatbiki hakkında Kanun; Madde 76 –  Onsekiz  yaşını dolduran her Türk milletvekili seçilebilir. Madde 113 – (Mülga: 21/1/2017-6771/16  md. ) Bu Kanunun yürürlüğe girdiği tarihten itibaren otuz gün içinde aşağıda belirtilen esas ve usuller dahilinde Hâkimler ve Savcılar Yüksek Kurulu üyeleri seçilir: Cumhurbaşkanı bütçe kanun teklifini, malî yılbaşından en az  yetmişbeş  gün önce, Türkiye Büyük Millet Meclisine sunar. Bütçe teklifi Bütçe Komisyonunda görüşülür. Komisyonun  ellibeş  gün içinde kabul edeceği metin Genel Kurulda görüşülür ve malî yılbaşına kadar karara bağlanır. Madde 99 – (Mülga: 21/1/2017-6771/16  md. ) Yayımlandığı Resmî Gazete :  Tarih    : 9/11/1982   Sayı     :   17863 (Mükerrer) XI. Toplantı hak ve hürriyetleri G. Cumhurbaşkanı Genel Sekreterliği Genel Hükümler Yüce Divanda seçilmeye engel bir suçtan mahkûm edilen Cumhurbaşkanının görevi sona erer. Mülkiyet hakkının kullanılması toplum yararına aykırı olamaz. İlgili kanunlarda düzenleme yapılıncaya kadar, Hâkimler ve Savcılar Yüksek Kurulu; Madde 51 – (Değişik: 3/10/2001-4709/20  md. ) D.  Kamulaştırma B. Çalışma şartları ve dinlenme hakkı 143 Memurlar ve diğer kamu görevlileri hakkında işledikleri iddia edilen suçlardan ötürü ceza kovuşturması açılması, kanunla belirlenen istisnalar dışında, kanunun gösterdiği idari merciin iznine bağlıdır. Cumhurbaşkanı yardımcıları ile bakanları atar ve görevlerine son verir. ANAYASA MAHKEMESİ KARARLARININ 67, 75, 175, Geçici Madde 4 ve İşlenemeyen Hükümler Madde 24 –  Herkes, vicdan, dini inanç ve kanaat hürriyetine sahiptir. B.  Yargı yolu Madde 171 –  Devlet, milli ekonominin yararlarını dikkate alarak, öncelikle üretimin artırılmasını ve tüketicinin korunmasını amaçlayan kooperatifçiliğin gelişmesini sağlayacak tedbirleri alır. Siyasi partiler önceden izin almadan kurulurlar ve Anayasa ve kanun hükümleri içerisinde faaliyetlerini sürdürürler. Devlet başarılı sporcuyu korur. 1 inci maddesi, Anayasa Mahkemesi, iki bölüm ve Genel Kurul halinde çalışır. Bölümler, başkanvekili başkanlığında dört üyenin katılımıyla toplanır. Genel Kurul, Mahkeme Başkanının veya Başkanın belirleyeceği başkanvekilinin başkanlığında en az on üye ile toplanır. Bölümler ve Genel Kurul,  kararlarını salt çoğunlukla alır. Bireysel başvuruların kabul edilebilirlik incelemesi için komisyonlar oluşturulabilir. Ödenek ve yollukların en çok üç aylığı önceden ödenebilir. Türkiye Büyük Millet Meclisi tatilde ise derhal toplantıya çağırılır; Meclis gerekli gördüğü takdirde olağanüstü halin süresini kısaltabilir, uzatabilir veya olağanüstü hali kaldırabilir. İdari işlemin uygulanması halinde telafisi güç veya imkansız zararların doğması ve idari işlemin açıkça hukuka aykırı olması şartlarının birlikte gerçekleşmesi durumunda gerekçe gösterilerek yürütmenin durdurulmasına karar verilebilir. (Ek üçüncü fıkra: 29/10/2005-5428/2  md. )  Mahallî idarelerin hesap ve işlemlerinin denetimi ve kesin hükme bağlanması Sayıştay tarafından yapılır. BİRİNCİ BÖLÜM (Ek fıkra: 17/3/2011-6214/1  md. )  Spor federasyonlarının spor faaliyetlerinin yönetimine ve disiplinine ilişkin kararlarına karşı ancak zorunlu tahkim yoluna başvurulabilir. Tahkim kurulu kararları kesin olup bu kararlara karşı hiçbir yargı merciine başvurulamaz. Ücretli hafta ve bayram tatili ile ücretli yıllık izin hakları ve şartları kanunla düzenlenir. I.  Temel hak ve hürriyetlerin niteliği IV.  Sayıştay Madde 73 –  Herkes, kamu giderlerini karşılamak üzere, mali gücüne göre, vergi ödemekle yükümlüdür. Türkiye Büyük Millet Meclisi adına Türk Silahlı Kuvvetlerinin Başkomutanlığını temsil eder. Genel görüşme, toplumu ve Devlet faaliyetlerini ilgilendiren belli bir konunun Türkiye Büyük Millet Meclisi Genel Kurulunda görüşülmesidir. 2.  Andiçme Madde 173 –  Devlet, esnaf ve sanatkarı koruyucu ve destekleyici tedbirleri alır. B. Konut hakkı B) Bu Kanunun 28 inci maddesi ile Anayasanın 87  nci  maddesinde yapılan değişiklik, bu Kanunun yürürlük tarihinden önce, Anayasanın 14 üncü maddesindeki fiilleri işleyenler hakkında uygulanmaz. Meclis araştırması, genel görüşme ve yazılı soru önergelerinin verilme şekli, içeriği ve kapsamı ile araştırma usulleri Meclis İçtüzüğü ile düzenlenir. Yazılı soru, yazılı olarak en geç  onbeş  gün içinde cevaplanmak üzere milletvekillerinin, Cumhurbaşkanı yardımcıları ve bakanlara yazılı olarak soru sormalarından ibarettir. Madde 39 –  Kamu görev ve hizmetinde bulunanlara karşı, bu görev ve hizmetin yerine getirilmesiyle ilgili olarak yapılan isnatlardan dolayı açılan hakaret davalarında, sanık, isnadın doğruluğunu ispat hakkına sahiptir. Bunun dışındaki hallerde ispat isteminin kabulü, ancak isnat olunan  fiilin doğru olup olmadığının anlaşılmasında kamu yararı bulunmasına veya şikayetçinin ispata razı olmasına bağlıdır. Türkiye Büyük Millet Meclisi; Meclis araştırması, genel görüşme, Meclis soruşturması ve yazılı soru yollarıyla bilgi edinme ve denetleme yetkisini kullanır. Hakim ve savcı olup da adalet hizmetindeki idari görevlerde çalışanlar, hakimler ve savcılar hakkındaki hükümlere tabidirler. Bunlar, hakimler ve savcılara ait esaslar dairesinde sınıflandırılır ve derecelendirilirler, hakimlere ve savcılara tanınan her türlü haklardan yararlanırlar. Madde 81 –  Türkiye Büyük Millet Meclisi üyeleri, göreve başlarken aşağıdaki şekilde  andiçerler : Türkiye Büyük Millet Meclisi üyesi hakkında, seçiminden önce veya sonra verilmiş bir ceza hükmünün yerine getirilmesi, üyelik sıfatının sona ermesine bırakılır; üyelik süresince zamanaşımı işlemez. 133 D.  Duruşmaların açık ve kararların gerekçeli olması Ceza sorumluluğu şahsidir. ( Mülga son fıkra: 7/5/2010-5982/9  md. ) Madde 154 –  Yargıtay, adliye mahkemelerince verilen ve kanunun başka bir adli yargı merciine bırakmadığı karar ve hükümlerin son inceleme merciidir. Kanunla gösterilen belli davalara da ilk ve son derece mahkemesi olarak bakar. E. Devletleştirme ve Özelleştirme Geçici Madde 2 –  12 Aralık 1980 gün ve 2356 sayılı Kanunla kuruluşu gösterilen Milli Güvenlik Konseyi, Anayasaya dayalı olarak hazırlanacak Siyasi Partiler Kanunu ile Seçim Kanununa göre yapılacak ilk genel seçimler sonucu Türkiye Büyük Millet Meclisi toplanıp Başkanlık Divanını oluşturuncaya kadar 2324 sayılı Anayasa Düzeni Hakkında Kanun ve 2485 sayılı Kurucu Meclis Hakkında Kanunlara göre görevlerini devam ettirir. Kanuna uygun şekilde basın işletmesi olarak kurulan basımevi ve eklentileri ile basın araçları, suç aleti olduğu gerekçesiyle zapt ve müsadere edilemez veya işletilmekten alıkonulamaz. Görülmekte olan bir dava hakkında Yasama Meclisinde yargı yetkisinin kullanılması ile ilgili soru sorulamaz, görüşme yapılamaz veya herhangi bir beyanda bulunulamaz. 130, 160, 161, 162, 163, İşlenemeyen Hüküm Kimsenin konutuna dokunulamaz. Millî güvenlik, kamu düzeni, suç işlenmesinin önlenmesi, genel sağlık ve genel ahlâkın korunması veya başkalarının hak ve özgürlüklerinin korunması sebeplerinden biri veya birkaçına bağlı olarak usulüne göre verilmiş hâkim kararı olmadıkça; yine bu sebeplere bağlı olarak gecikmesinde sakınca bulunan hallerde de kanunla yetkili kılınmış merciin yazılı  emri bulunmadıkça; kimsenin konutuna girilemez, arama yapılamaz ve buradaki eşyaya el konulamaz. Yetkili merciin kararı  yirmidört  saat içinde görevli hâkimin onayına sunulur. Hâkim, kararını el koymadan itibaren  kırksekiz  saat içinde açıklar; aksi halde, el koyma kendiliğinden kalkar. (Değişik fıkra: 21/1/2017-6771/14  md. )  Kurul üyeliği seçimi, üyelerin görev süresinin dolmasından önceki otuz gün içinde yapılır. Seçilen üyelerin görev süreleri dolmadan Kurul üyeliğinin boşalması durumunda, boşalmayı takip eden otuz gün içinde, yeni üyelerin seçimi yapılır.

Docx Uzantılı Dokümanları Okuma II

Aşağıda yapılan işlemde alternaitf olarak anayasa, cümlelere çevrilmiş ve oluşturulmuş ilk iki cümle verilmiştir.

metin=readtext("anayasa.docx")

tokenize_sentences(metin$text)[[1]][1:2]

## [1] "TÜRKİYE CUMHURİYETİ ANAYASASI     Kanun Numarası: 2709 Kabul Tarihi: 18/10/1982 Yayımlandığı Resmî Gazete: Tarih  : 9/11/1982 Sayı   : 17863 (Mükerrer)  Yayımlandığı Düstur: Tertip : 5   Cilt : 22 Sayfa : 3 BAŞLANGIÇ  Türk Vatanı ve Milletinin ebedi varlığını ve Yüce Türk Devletinin bölünmez bütünlüğünü belirleyen bu Anayasa, Türkiye Cumhuriyetinin kurucusu, ölümsüz önder ve eşsiz kahraman Atatürk’ün belirlediği milliyetçilik anlayışı ve onun inkılap ve ilkeleri doğrultusunda; Dünya milletleri ailesinin eşit haklara sahip şerefli bir üyesi olarak, Türkiye Cumhuriyetinin ebedi varlığı, refahı, maddi ve manevi mutluluğu ile çağdaş medeniyet düzeyine ulaşma azmi yönünde; Millet iradesinin mutlak üstünlüğü, egemenliğin kayıtsız şartsız Türk Milletine ait olduğu ve bunu millet adına kullanmaya yetkili kılınan hiçbir kişi ve kuruluşun, bu Anayasada gösterilen hürriyetçi demokrasi ve bunun icaplarıyla belirlenmiş hukuk düzeni dışına çıkamayacağı; Kuvvetler ayrımının, Devlet organları arasında üstünlük sıralaması anlamına gelmeyip, belli Devlet yetki ve görevlerinin kullanılmasından ibaret ve bununla sınırlı medeni bir işbölümü ve işbirliği olduğu ve üstünlüğün ancak Anayasa ve kanunlarda bulunduğu;  Hiçbir faaliyetin Türk milli menfaatlerinin, Türk varlığının, Devleti ve ülkesiyle bölünmezliği esasının, Türklüğün tarihi ve manevi değerlerinin, Atatürk milliyetçiliği, ilke ve inkılapları ve medeniyetçiliğinin karşısında korunma göremeyeceği ve laiklik ilkesinin gereği olarak kutsal din duygularının, Devlet işlerine ve politikaya kesinlikle karıştırılamayacağı;  Her Türk vatandaşının bu Anayasadaki temel hak ve hürriyetlerden eşitlik ve sosyal adalet gereklerince yararlanarak milli kültür, medeniyet ve hukuk düzeni içinde onurlu bir hayat sürdürme ve maddi ve manevi varlığını bu yönde geliştirme hak ve yetkisine doğuştan sahip olduğu;  Topluca Türk vatandaşlarının milli gurur ve iftiharlarda, milli sevinç ve kederlerde, milli varlığa karşı hak ve ödevlerde, nimet ve külfetlerde ve millet hayatının her türlü tecellisinde ortak olduğu, birbirinin hak ve hürriyetlerine kesin saygı, karşılıklı içten sevgi ve kardeşlik duygularıyla ve \"Yurtta sulh, cihanda sulh\" arzu ve inancı içinde, huzurlu bir hayat talebine hakları bulunduğu; FİKİR, İNANÇ VE KARARIYLA anlaşılmak, sözüne ve ruhuna bu yönde saygı ve mutlak sadakatle yorumlanıp uygulanmak üzere."
## [2] "TÜRK MİLLETİ TARAFINDAN, demokrasiye aşık Türk evlatlarının vatan ve millet sevgisine emanet ve tevdi olunur."

Anayasa Metninin Temizlenmesi

Bu kısımda anayasa metninin tamamı noktalama, sayısal karakterler, bağlaç,edatlar ve pekiştirmelerden temizlenmiştir. Büyük harfler ise küçük harflere dönüştürülmüştür. Türkçe bağlaç ve edatlar stopwords(“tr”, source = “stopwords-iso”) fonksiyonu ile tanımlanmıştır. Bu fonksiyon çalıştırıldığında 471 adet edat ve bağlacın olduğu görülecektir. length(stopwords::stopwords(“tr”, source = “stopwords-iso”)) fonksiyonu ile bu sayıya ulaşabilirsiniz.

Türkçe Dilinde Tanımlanan Bağlaç ve Edatlar

Bu kısımda Türkçe dilinde tanımlanan bağlaç ve edatların tamamı aşağıdaki verilmiştir. İstersek tanımlanan bu bağlaç ve edatların olduğu vektöre çıkarılmasını istediğimiz, diğer bir deyişle tek başına anlam ifade etmeyen ilave bağlaç ve edatları da dahil edebiliriz.

baglac_ve_edat=stopwords::stopwords("tr", source = "stopwords-iso")
baglac_ve_edat

##   [1] "acaba"          "acep"           "açıkça"         "açıkçası"      
##   [5] "adamakıllı"     "adeta"          "ait"            "altı"          
##   [9] "altmış"         "ama"            "amma"           "anca"          
##  [13] "ancak"          "arada"          "artık"          "aslında"       
##  [17] "aynen"          "ayrıca"         "az"             "bana"          
##  [21] "bari"           "başka"          "başkası"        "bazen"         
##  [25] "bazı"           "belki"          "ben"            "benden"        
##  [29] "beni"           "benim"          "beri"           "beriki"        
##  [33] "beş"            "bilcümle"       "bile"           "bin"           
##  [37] "binaen"         "binaenaleyh"    "bir"            "biraz"         
##  [41] "birazdan"       "birbiri"        "birçoğu"        "birçok"        
##  [45] "birden"         "birdenbire"     "biri"           "birice"        
##  [49] "birileri"       "birisi"         "birkaç"         "birkaçı"       
##  [53] "birkez"         "birlikte"       "birşey"         "birşeyi"       
##  [57] "bitevi"         "biteviye"       "bittabi"        "biz"           
##  [61] "bizatihi"       "bizce"          "bizcileyin"     "bizden"        
##  [65] "bize"           "bizi"           "bizim"          "bizimki"       
##  [69] "bizzat"         "boşuna"         "böyle"          "böylece"       
##  [73] "böylecene"      "böylelikle"     "böylemesine"    "böylesine"     
##  [77] "bu"             "buna"           "bunda"          "bundan"        
##  [81] "bunlar"         "bunları"        "bunların"       "bunu"          
##  [85] "bunun"          "buracıkta"      "burada"         "buradan"       
##  [89] "burası"         "büsbütün"       "bütün"          "çabuk"         
##  [93] "çabukça"        "çeşitli"        "çoğu"           "çoğun"         
##  [97] "çoğunca"        "çoğunlukla"     "çok"            "çokça"         
## [101] "çokları"        "çoklarınca"     "çokluk"         "çoklukla"      
## [105] "cuk"            "cümlesi"        "çünkü"          "da"            
## [109] "daha"           "dahi"           "dahil"          "dahilen"       
## [113] "daima"          "dair"           "dayanarak"      "de"            
## [117] "defa"           "değil"          "değin"          "dek"           
## [121] "demin"          "demincek"       "deminden"       "denli"         
## [125] "derakap"        "derhal"         "derken"         "diğer"         
## [129] "diğeri"         "diye"           "doğru"          "doksan"        
## [133] "dokuz"          "dolayı"         "dolayısıyla"    "dört"          
## [137] "edecek"         "eden"           "eder"           "ederek"        
## [141] "edilecek"       "ediliyor"       "edilmesi"       "ediyor"        
## [145] "eğer"           "elbet"          "elbette"        "elli"          
## [149] "emme"           "en"             "enikonu"        "epey"          
## [153] "epeyce"         "epeyi"          "esasen"         "esnasında"     
## [157] "etmesi"         "etraflı"        "etraflıca"      "etti"          
## [161] "ettiği"         "ettiğini"       "evleviyetle"    "evvel"         
## [165] "evvela"         "evvelce"        "evvelden"       "evvelemirde"   
## [169] "evveli"         "fakat"          "filanca"        "gah"           
## [173] "gayet"          "gayetle"        "gayri"          "gayrı"         
## [177] "geçende"        "geçenlerde"     "gelgelelim"     "gene"          
## [181] "gerçi"          "gerek"          "gibi"           "gibilerden"    
## [185] "gibisinden"     "gine"           "gırla"          "göre"          
## [189] "hakeza"         "halbuki"        "halen"          "halihazırda"   
## [193] "haliyle"        "handiyse"       "hangi"          "hangisi"       
## [197] "hani"           "hariç"          "hasebiyle"      "hasılı"        
## [201] "hatta"          "hele"           "hem"            "henüz"         
## [205] "hep"            "hepsi"          "her"            "herhangi"      
## [209] "herkes"         "herkesin"       "hiç"            "hiçbir"        
## [213] "hiçbiri"        "hoş"            "hulasaten"      "için"          
## [217] "iken"           "iki"            "ila"            "ile"           
## [221] "ilen"           "ilgili"         "ilk"            "illa"          
## [225] "illaki"         "imdi"           "indinde"        "inen"          
## [229] "insermi"        "iş"             "ise"            "işte"          
## [233] "ister"          "itibaren"       "itibariyle"     "itibarıyla"    
## [237] "iyi"            "iyice"          "iyicene"        "kaçı"          
## [241] "kadar"          "kaffesi"        "kah"            "kala"          
## [245] "kanımca"        "karşın"         "katrilyon"      "kaynak"        
## [249] "kelli"          "kendi"          "kendilerine"    "kendini"       
## [253] "kendisi"        "kendisine"      "kendisini"      "kere"          
## [257] "keşke"          "kez"            "keza"           "kezalik"       
## [261] "ki"             "kim"            "kimden"         "kime"          
## [265] "kimi"           "kimisi"         "kimse"          "kimsecik"      
## [269] "kimsecikler"    "kırk"           "kısaca"         "külliyen"      
## [273] "lakin"          "leh"            "lütfen"         "maada"         
## [277] "madem"          "mademki"        "mamafih"        "mebni"         
## [281] "meğer"          "meğerki"        "meğerse"        "milyar"        
## [285] "milyon"         "mı"             "mu"             "mü"            
## [289] "naşi"           "nasıl"          "nasılsa"        "nazaran"       
## [293] "ne"             "neden"          "nedeniyle"      "nedenle"       
## [297] "nedense"        "nerde"          "nerden"         "nerdeyse"      
## [301] "nere"           "nerede"         "nereden"        "neredeyse"     
## [305] "neresi"         "nereye"         "netekim"        "neye"          
## [309] "neyi"           "neyse"          "nice"           "niçin"         
## [313] "nihayet"        "nihayetinde"    "nitekim"        "niye"          
## [317] "o"              "öbür"           "öbürkü"         "öbürü"         
## [321] "olan"           "olarak"         "oldu"           "olduğu"        
## [325] "olduğunu"       "oldukça"        "olduklarını"    "olmadı"        
## [329] "olmadığı"       "olmak"          "olması"         "olmayan"       
## [333] "olmaz"          "olsa"           "olsun"          "olup"          
## [337] "olur"           "olursa"         "oluyor"         "on"            
## [341] "ona"            "onca"           "önce"           "önceden"       
## [345] "önceleri"       "öncelikle"      "onculayın"      "onda"          
## [349] "ondan"          "onlar"          "onlardan"       "onları"        
## [353] "onların"        "onu"            "onun"           "oracık"        
## [357] "oracıkta"       "orada"          "oradan"         "oranca"        
## [361] "oranla"         "oraya"          "öteki"          "ötekisi"       
## [365] "otuz"           "öyle"           "öylece"         "öylelikle"     
## [369] "öylemesine"     "oysa"           "oysaki"         "öz"            
## [373] "pek"            "pekala"         "pekçe"          "peki"          
## [377] "peyderpey"      "rağmen"         "sadece"         "sahi"          
## [381] "sahiden"        "sana"           "sanki"          "şayet"         
## [385] "sekiz"          "seksen"         "sen"            "senden"        
## [389] "seni"           "senin"          "şey"            "şeyden"        
## [393] "şeyi"           "şeyler"         "şimdi"          "siz"           
## [397] "sizden"         "sizi"           "sizin"          "sonra"         
## [401] "sonradan"       "sonraları"      "sonunda"        "şöyle"         
## [405] "şu"             "şuna"           "şuncacık"       "şunda"         
## [409] "şundan"         "şunlar"         "şunları"        "şunu"          
## [413] "şunun"          "şura"           "şuracık"        "şuracıkta"     
## [417] "şurası"         "tabii"          "tam"            "tamam"         
## [421] "tamamen"        "tamamıyla"      "tarafından"     "tek"           
## [425] "trilyon"        "tüm"            "üç"             "üzere"         
## [429] "var"            "vardı"          "vasıtasıyla"    "ve"            
## [433] "velev"          "velhasıl"       "velhasılıkelam" "veya"          
## [437] "veyahut"        "ya"             "yahut"          "yakinen"       
## [441] "yakında"        "yakından"       "yakınlarda"     "yalnız"        
## [445] "yalnızca"       "yani"           "yapacak"        "yapılan"       
## [449] "yapılması"      "yapıyor"        "yapmak"         "yaptı"         
## [453] "yaptığı"        "yaptığını"      "yaptıkları"     "yedi"          
## [457] "yeniden"        "yenilerde"      "yerine"         "yetmiş"        
## [461] "yine"           "yirmi"          "yok"            "yoksa"         
## [465] "yoluyla"        "yüz"            "yüzünden"       "zarfında"      
## [469] "zaten"          "zati"           "zira"

Türkçe Dilinde Tanımlanan Bağlaç ve Edatların Sayısı

Bağlaç ve edatlar vektör içerisinde tanımlandığından length() fonskiyonu ile vektörün uzunluğunu aşağıdaki gibi hesaplayabiliriz. Aşağıda görüleceği üzere sonuç 471’dir.

length(baglac_ve_edat)
## [1] 471

Türkçe Dilinde Tanımlanan Bağlaç ve Edatlara ilave

Bu kısımda 12 adet bağlaç, edat ve kelime baglac_ve_edat vektörüne dahil edilerek 483’e yükseltilmiştir.

ilave=c("öyleyse", "nitekim", "fazla","ileri", "içinde", "ilişkin", "geçici", "fıkra", "madde", "genel", "sayılı", "kanun")

baglac_ve_edat=c(baglac_ve_edat,ilave)

length(baglac_ve_edat)#vektördeki eleman sayısı

## [1] 483

Metnin Temizlenmesi ve Kelimelere Dönüştürülmesi

Anayasa metni temizlendikten sonra yeni durumda kelimelerin sayısı length(kelimedonusum$anayasa.docx) fonksiyonu ile 15996 bulunmuştur.

metin=readtext("anayasa.docx")
kelimedonusum=tokenize_words(x = metin,
                                  lowercase = TRUE,
                                  stopwords = baglac_ve_edat,
                                  strip_punct = TRUE,
                                  strip_numeric = TRUE)


length(kelimedonusum$anayasa.docx)

## [1] 15996

Kelimelerin Frekansı

Bu kısımda kelimelerin metinde tekrarlanma sıklığı verilmiş, ardından ise kelimedeki karakter sayısı 3’ten büyük olan kelimeler getirilmiştir.

frekans=kelimedonusum$anayasa.docx %>% 
                as_tibble()%>% 
                rename(kelime=value)%>%
                count(kelime) %>%
                arrange(desc(n))%>%
                filter(nchar(kelime)>3)
frekans

## # A tibble: 4,284 x 2
##    kelime            n
##    <chr>         <int>
##  1 türkiye         171
##  2 millet          152
##  3 büyük           151
##  4 kamu            112
##  5 kanunla         109
##  6 anayasa         101
##  7 meclisi          97
##  8 devlet           78
##  9 cumhurbaşkanı    76
## 10 düzenlenir       73
## # ... with 4,274 more rows

Kelime Bulutu I

wordcloud2(frekans)

Kelime Bulutu II

wordcloud2(frekans, color = "random-light", backgroundColor = "grey")

Kelime Öbekleri

kelime_obek=metin$text %>% 
           as_tibble() %>% 
           rename(metin=value)%>%
           mutate(metin = tolower(metin) %>% # küçük harfe dönüştürme
           replace_contraction() %>% 
           replace_white() %>%  # boşlukların çıkarılma
           str_remove_all(pattern = "[0-9]") %>% # rakamları çıkarma
           str_remove_all(pattern = "[()]") %>% # spesifik karakterleri çıkarma
           str_remove_all(pattern = "-") %>%
           str_replace_all(pattern = "/", replacement = "") %>%  #/ sembollerinin kaldırılması
           str_remove(pattern = "[.]") %>% # remove first matched pattern
           str_remove(pattern = " "))

#3'lü kelime öbeklerinin sayısı
kelime_obek_sayi=tokenize_ngrams(x = kelime_obek$metin, n=3, stopwords = baglac_ve_edat) %>% 
                 unlist()%>% 
                 as_tibble()%>% 
                 rename("Kelime Öbeği"=value) %>%
                 count("Kelime Öbeği") %>%
                 arrange(desc(n))
kelime_obek_sayi

## # A tibble: 1 x 2
##   `"Kelime Öbeği"`     n
##   <chr>            <int>
## 1 Kelime Öbeği     16332

Kelime Öbeklerinin Kelime Bulutu

Bu kısımda ikili kelime öbeklerinin kelime bulutu oluşturulmuştur.

kelime_obek_frekans=tokenize_ngrams(x = kelime_obek$metin, n=2, stopwords = c(baglac_ve_edat,"inci","içinde","md", "ek fıkra", "tarihli sayılı", "mülga md","ek", "md devlet")) %>% 
                 unlist()%>% 
                 as_tibble()%>% 
                 rename(Obek=value) %>%
                 count(Obek) %>%
                 arrange(desc(n))

wordcloud2(head(kelime_obek_frekans, 100),color = "random-light", backgroundColor = "black")

URL’den Site İçeriklerini Okuma

Burada örnek olması adına haber sitesi CNNTÜRK’ün içeriği okunmuştur. 02.10.2021 tarihine ait sonuçlar aşağıda verilmiştir.

metin=read_document('https://www.cnnturk.com/turkiye')

metin %>% sample(size = length(metin)*0.2) %>% cat() 

## Spor Haberleri Otomobil TOGG tv.cnnturk.com TOGG KANAL D turkiye D-SMART turkiye Dünya Dünyadan en son haberler, Türkiye'den son dakika gelişmeleri, günün öne çıkan gündem haberleri, dünya ekonomi piyasalarından flaş haberler, en yeni spor haberleri ve magazin dünyasından son olaylar CNN Türk'te. haber arama 1 Bu videoyu izleyemiyorsanız, reklam engelleme Evinin önünde ayı saldırdı Hava Durumu sitemap sms Canlı Yayın 3 Cumhurbaşkanı Erdoğan Varlık Fonu toplantısına katıldı MD Canlı Yayın Yargıtay, alkollü sürücüye verilen cezayı az buldu 32 dakika önce Dizi İzle tümü ABD Başkanlık Seçimleri Milli Piyango Sonuçları Renk Taksicilere denetim! Ceza yağdı Film İzle Haberler... Deprem mi oldu? Kandilli ve AFAD son dakika depremler listesi 2 Ekim 2021 Demirören Tv Holding A.Ş. - CNN ™ CNN Inc. A WarnerMedia Company. video Yayın Akışı Korona Günlükleri KATEGORİLER turkiye Zonguldak, en fazla vaka artışının yaşandığı il oldu son dakika İndirim Kuponları Spor XS Türkiye Turistlere fırçalı tuzak {$ item.diff $} Teknoloji Roma dönemine ait! İznik'te bulundu Programlar

URL’den Site İçeriklerinin Kelime Bulutu

metin=read_document('https://www.cnnturk.com/turkiye')

temizmetin= metin %>% 
           as_tibble() %>% 
           rename(metin=value)%>%
           mutate(metin = tolower(metin) %>% # küçük harfe dönüştürme
           replace_contraction() %>%
           replace_white() %>%  # boşlukların çıkarılma
           str_remove_all(pattern = "[0-9]") %>% # rakamları çıkarma
           str_remove_all(pattern = "[{$()}]") %>% # spesifik karakterleri çıkarma
           str_remove_all(pattern = "-") %>%
           str_replace_all(pattern = "/", replacement = "") %>%  #/ sembollerinin kaldırılması
           str_remove(pattern = "[.]") %>% # remove first matched pattern
           str_remove(pattern = " "))


kelimedonusum=tokenize_words(x = temizmetin$metin,
                                  lowercase = TRUE,
                                  stopwords = c(baglac_ve_edat,NA, "sondakika","diziizle","dakika", "tümünügör", "canliyayin", "canlıyayın", "filmizle","haberler", "dakika", "katıldı"),
                                  strip_punct = TRUE,
                                  strip_numeric = TRUE)
frekans=kelimedonusum %>% 
        unlist()%>% 
        as_tibble() %>% 
        rename(kelime=value)%>%
        count(kelime) %>%
        arrange(desc(n))%>%
        filter(nchar(kelime)>3)


#kelime bulutu

wordcloud2(head(frekans, 100),color = "random-light", backgroundColor = "green")

Sonuç

Özetle, çalışma kapsamında R programlama dili kullanılarak metin verisi bozulmadan R ortamında okunması, okunduktan sonra temizlenmesi ve frekanslara dayalı kelime bulutlarının oluşturulması sağlanmıştır.

Faydalı olması dileğiyle.

Bilimle ve teknolojiyle kalınız.

Not:

  •  Kaynak gösterilmeden alıntı yapılamaz veya kopyalanamaz.
  •  It can not be cited or copied without referencing.

Yararlanılan Kaynaklar

IDReferanslar
[1]Dawei Lang and Guan-tin Chien (2018). wordcloud2: Create Word Cloud by ‘htmlwidget’. R package version 0.2.1. https://CRAN.R-project.org/package=wordcloud2
[2]Dietrich J (2020). citation: Software Citation Tools. R packageversion 0.4.1.
[3]Erich Neuwirth (2014). RColorBrewer: ColorBrewer Palettes. R package version 1.1-2. https://CRAN.R-project.org/package=RColorBrewer
[4]Gergely Daróczi and Roman Tsegelskyi (2021). pander: An R ‘Pandoc’ Writer. R package version 0.6.4. https://CRAN.R-project.org/package=pander
[5]H. Wickham. ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York, 2016.
[6]Hadley Wickham (2019). stringr: Simple, Consistent Wrappers for Common String Operations. R package version 1.4.0. https://CRAN.R-project.org/package=stringr
[7]Hadley Wickham (2021). tidyr: Tidy Messy Data. R package version 1.1.3. https://CRAN.R-project.org/package=tidyr
[8]Hadley Wickham and Jennifer Bryan (2019). readxl: Read Excel Files. R package version 1.3.1. https://CRAN.R-project.org/package=readxl
[9]Hadley Wickham and Jim Hester (2021). readr: Read Rectangular Text Data. R package version 2.0.0. https://CRAN.R-project.org/package=readr
[10]Hadley Wickham, Romain François, Lionel Henry and Kirill Müller (2021). dplyr: A Grammar of Data Manipulation. R package version 1.0.7. https://CRAN.R-project.org/package=dplyr
[11]Jeroen Ooms (2021). writexl: Export Data Frames to Excel ‘xlsx’ Format. R package version 1.4.0. https://CRAN.R-project.org/package=writexl
[12]Kenneth Benoit and Adam Obeng (2021). readtext: Import and Handling for Plain and Formatted Text Files. R package version 0.81. https://CRAN.R-project.org/package=readtext
[13]Kirill Müller and Hadley Wickham (2021). tibble: Simple Data Frames. R package version 3.1.3. https://CRAN.R-project.org/package=tibble
[14]Lincoln A. Mullen et al., “Fast, Consistent Tokenization of Natural Language Text,” Journal of Open Source Software 3, no. 23 (2018): 655, https://doi.org/10.21105/joss.00655.
[15]Lionel Henry and Hadley Wickham (2020). purrr: Functional Programming Tools. R package version 0.3.4. https://CRAN.R-project.org/package=purrr
[16]Makowski, D., Ben-Shachar, M.S., Patil, I. & Lüdecke, D. (2020). Automated Results Reporting as a Practical Tool to Improve Reproducibility and Methodological Best Practices Adoption. CRAN. Available from https://github.com/easystats/report. doi: .
[17]R Core Team (2021). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL https://www.R-project.org/.
[18]Rinker, T. W. (2018). textclean: Text Cleaning Tools version 0.9.3. Buffalo, New York. https://github.com/trinker/textclean
[19]Rinker, T. W. (2018). textreadr: Read Text Documents into R version 0.9.1. Buffalo, New York. http://github.com/trinker/textreadr
[20]Silge J, Robinson D (2016). “tidytext: Text Mining and Analysis UsingTidy Data Principles in R.” JOSS, 1(3). doi: 10.21105/joss.00037(URL: https://doi.org/10.21105/joss.00037), <URL:http://dx.doi.org/10.21105/joss.00037>.
Öne çıkan

Şifre Kombinasyonlarının Kırılma Olasılıkları: Cracking Probability of Password Combinations

Intro

In this study, probability of breaking password combinations with the function I created using R programming language was calculated by considering different dimensions. The different dimensions considered are:

  • How much does number of digits in the password combination affect probability of cracking?
  • How much do characters in the language used in the password combination affect the probability of cracking?
  • How does repetitive and non-repeatable password combination affect probability of cracking?
  • How much does the number, letter or both (alphanumeric) used in the password combination affect probability of cracking?
  • How much do the symbols and lowercase letters used in password combination affect probability of cracking?

Giriş

Şifreler artık günlük hayatımınızın bir parçası olmuştur. Anlaşılan o ki bulut bilişim ve artan dijital dönüşüm sayesinde hayatımızın daha da içerisine girmeye devam edecektir. Ancak artan dijitalleşme siber güvenlik endişelerini de beraberinde getirmeye devam etmektedir. Hemen hemen hepimizin uygulamalar kullanırken birden fazla şifre kullanırız. Şifre belirlerken bir kısmımız kolay hatırlansın diye düşük güvenlikli şifreler belirlediği görülmektedir. Bazıları ise harf, rakam ve noktalama işaretlerini kullanarak yüksek güvenlikli şifre kombinasyonları oluşturduğunu görmekteyiz.

Burada temel soru şu; esasen kaçımız oluşturduğumuz şifre kombinasyonlarının kırılma olasılığını biliyor? Cevabınızı duyar gibiyim :); muhtemelen çok çok azımız. Belki de sadece bu işin içinde yer alanlar… Şifre kombinasyonların kırılma olasılığını bilmek bizlere daha güçlü şifre belirleme olanağı sunar. Bu nedenle bu çalışmanın temel motivasyonudur.

Bu çalışmada R programlama dili kullanarak oluşturduğum fonksiyonla şifre kombinasyonlarının kırılma olasılığı farklı boyutları ele alınarak hesaplanmıştır. Ele alınan farklı boyutlar şunlardır.

  • Şifre kombinasyonundaki hane sayısı kırılma olasılığını ne kadar etkiliyor?
  • Şifre kombinasyonunda kullanılan dildeki karakterler kırılma olasılığını ne kadar etkiliyor?
  • Şifre kombinasyonunun tekrarlı ve tekrarsız olması kırılma olasılığını ne kadar etkiliyor?
  • Şifre kombinasyonunda kullanılan rakam, harf veya her ikisi (alfanumerik) kırılma olasılığını ne kadar etkiliyor?
  • Şifre kombinasyonunda kullanılan semboller ve küçük harfler kırılma olasılığını ne kadar etkiliyor?

Kütüphaneler

kütüphane<-c("dplyr","tibble","tidyr","readxl", "writexl", "kableExtra", "report", "citation", "rmarkdown")
yükle<-sapply(kütüphane, require, character.only = TRUE, warn.conflicts = FALSE)
 
#Kütüphane yüklenme durumunu gösteren tablo
 
tibble(Sıra=1:length(kütüphane), Kütüphane=names(yükle), Durumu=as.logical(yükle)) %>% mutate(Durumu=if_else(Durumu==TRUE, "Yüklendi", "Paket Kurulumu Gerekli")) %>% 
kable(caption = htmltools::tags$caption(
    style = 'caption-side: top; text-align: center;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Yüklenen Kütüphanelerin Listesi")) %>% 
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16) %>% row_spec(0, bold = T, color = "black") 

Basit Fonksiyon

Aşağıdaki şifre kombinasyonlarının sayısının hesaplanmasında yazılan fonksiyonlarda genel olarak üretilen şifre permütasyon sayısının çarpmaya göre tersi (1/permütasyon sayısı) alındığında oluşturulan şifrenin kırılma olasılığını hesaplamış oluruz. Temel olarak yapılan hesaplamalarda permütasyon kullanılmıştır. Bunun nedeni, şifre kombinasyonlarında sıra düzenin önemli olmasıdır.

Aşağıda yazılan basit kirilma_olasiliği() fonksiyonunda default olarak function(permütasyon=“tekrarlı”, hane=6) şeklinde tanımlanmıştır. Fonksiyonda permütasyon=“tekrarlı” veya permütasyon=“tekrarsız”, ve hane=45 veya hane’yi istediğiniz basamak olarak belirleyebiliriz. Fonksiyonda bunu tamamen kullanıcıya esneklik sağlasın diye bu şekilde belirleyerek farklı kombinasyonlarda olasılıkların nasıl değiştiği görülsün istedim.

options(scipen = 999)

basit_kirilma_olasiliği=function(permütasyon="tekrarlı", hane=6){
  rakam <- 0:9

  if(permütasyon=="tekrarsız"){
            sonuc=format(factorial(length(rakam))/factorial(length(rakam)-hane), big.mark=".")
            return(paste(permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  }  else if(permütasyon=="tekrarlı"){
            sonuc=format(length(rakam)^hane, big.mark=".")
            return(paste(permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  
}
 
}  
# Üretilecek şifre kombinasyonunda kaç haneli olacağını, tekrarlı kombinasyonla mı tekrarsız kombinasyonla mı oluşturulacağını fonksiyon içerisinde tanımlayınız.

basit_kirilma_olasiliği(permütasyon="tekrarlı", hane=10)  

Uygulama 1: Tekrarlı Permütasyon

Bu kısımda oluşturulan fonksiyonla rakamlara dayalı 10 haneli tekrarlı şifre permütasyon sayısı hesaplanmıştır.

basit_kirilma_olasiliği(permütasyon="tekrarlı", hane=10)
## [1] "tekrarlı permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=10.000.000.000. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 10.000.000.000'da 1'dir."

Uygulama 2: Tekrarsız Permütasyon

Bu kısımda oluşturulan fonksiyonla rakamlara dayalı 10 haneli tekrarsız şifre permütasyon sayısı hesaplanmıştır.

basit_kirilma_olasiliği(permütasyon="tekrarsız", hane=10)
## [1] "tekrarsız permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=3.628.800. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 3.628.800'da 1'dir."

Fonksiyon I

Aşağıda kirilma_olasiliği() fonksiyonu default olarak function(permütasyon=“tekrarlı”, dili=“İngilizce”, hane=6) şeklinde tanımlanmıştır. Fonksiyonda permütasyon=“tekrarlı” veya permütasyon=“tekrarsız”dili=“Türkçe” veya *dili=“İngilizce” ve hane=45 veya hane**’yi istediğiniz basamak olarak belirleyebiliriz. Fonksiyonda bunu tamamen kullanıcıya esneklik sağlasın diye bu şekilde belirleyerek farklı kombinasyonlarda olasılıkların nasıl değiştiği görülsün istedim.

options(scipen = 999)

kirilma_olasiliği=function(permütasyon="tekrarlı", dili="İngilizce", hane=6){
  rakam <- 0:9
  HARF <- c("A","B", "C", "Ç", "D", "E","F","G", "Ğ", "H", "I", "İ", "J", "K", "L", "M", "N", "O", "Ö", "P", "R", "S", "Ş", "T", "U", "Ü", "V", "Y", "Z")
  tr <- c(rakam, HARF)
  ing<-c(rakam, LETTERS)
  if(permütasyon=="tekrarlı" && dili=="Türkçe"){
            sonuc=format(length(tr)^hane, big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  }  else if(permütasyon=="tekrarsız" && dili=="Türkçe"){
            sonuc=format(factorial(length(tr))/factorial(length(tr)-hane), big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  }  else if(permütasyon=="tekrarlı" && dili=="İngilizce"){
            sonuc=format(length(ing)^hane, big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  }  else if(permütasyon=="tekrarsız" && dili=="İngilizce"){
            sonuc=format(factorial(length(ing))/factorial(length(ing)-hane), big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  
  }
  
}
   
# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını kirilma_olasiliği() fonksiyonu içerisinde tanımlayınız.

kirilma_olasiliği(permütasyon="tekrarlı", hane=10, dili="Türkçe")  

Uygulama 1: Türkçe Tekrarlı Permütasyon

Bu kısımda oluşturulan fonksiyonla Türkçe dilinde 10 haneli tekrarlı şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını kirilma_olasiliği() fonksiyonu içerisinde tanımlayınız.

kirilma_olasiliği(permütasyon="tekrarlı", hane=10, dili="Türkçe") 
## [1] "Türkçe dilinde tekrarlı permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=8.140.406.085.191.601. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 8.140.406.085.191.601'da 1'dir."

Uygulama 2: Türkçe Tekrarsız Permütasyon

Bu kısımda oluşturulan fonksiyonla Türkçe dilinde 10 haneli tekrarsız şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını kirilma_olasiliği() fonksiyonu içerisinde tanımlayınız.

kirilma_olasiliği(permütasyon="tekrarsız", hane=10, dili="Türkçe") 
## [1] "Türkçe dilinde tekrarsız permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=2.306.992.893.004.800. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 2.306.992.893.004.800'da 1'dir."

Uygulama 3: İngilizce Tekrarlı Permütasyon

Bu kısımda oluşturulan fonksiyonla İngilizce dilinde 10 haneli tekrarlı şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını kirilma_olasiliği() fonksiyonu içerisinde tanımlayınız.

kirilma_olasiliği(permütasyon="tekrarlı", hane=10, dili="İngilizce") 
## [1] "İngilizce dilinde tekrarlı permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=3.656.158.440.062.976. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 3.656.158.440.062.976'da 1'dir."

Uygulama 4: İngilizce Tekrarsız Permütasyon

Bu kısımda oluşturulan fonksiyonla İngilizce dilinde 10 haneli tekrarsız şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını kirilma_olasiliği() fonksiyonu içerisinde tanımlayınız.

kirilma_olasiliği(permütasyon="tekrarsız", hane=10, dili="İngilizce") 
## [1] "İngilizce dilinde tekrarsız permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=922.393.263.052.800. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 922.393.263.052.800'da 1'dir."

Fonksiyon II

Bir önceki fonksiyondan farklı olarak burada fonksiyona hem İngilizce hem de Türkçe karakterlerin küçük harfle yazılışları da dahil edilmiştir. Bunun yapılmasının nedeni, bir önceki fonksiyonla karşılaştırma yapabilmenizdir.

options(scipen = 999)

kirilma_olasiliği_kh=function(permütasyon="tekrarlı", dili="İngilizce", hane=6){
  rakam <- 0:9
  HARF <- c("A","B", "C", "Ç", "D", "E","F","G", "Ğ", "H", "I", "İ", "J", "K", "L", "M", "N", "O", "Ö", "P", "R", "S", "Ş", "T", "U", "Ü", "V", "Y", "Z")
  tr <- c(rakam, HARF, tolower(HARF))#ilave olarak küçük harfler de eklenmiştir.
  ing<-c(rakam, LETTERS, letters)#ilave olarak küçük harfler de eklenmiştir.
  if(permütasyon=="tekrarlı" && dili=="Türkçe"){
            sonuc=format(length(tr)^hane, big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  }  else if(permütasyon=="tekrarsız" && dili=="Türkçe"){
            sonuc=format(factorial(length(tr))/factorial(length(tr)-hane), big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  }  else if(permütasyon=="tekrarlı" && dili=="İngilizce"){
            sonuc=format(length(ing)^hane, big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  }  else if(permütasyon=="tekrarsız" && dili=="İngilizce"){
            sonuc=format(factorial(length(ing))/factorial(length(ing)-hane), big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  
  }
  
}
   
# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını kirilma_olasiliği() fonksiyonu içerisinde tanımlayınız.

kirilma_olasiliği_kh(permütasyon="tekrarlı", hane=10, dili="Türkçe") 

Uygulama 1: Türkçe Tekrarlı Permütasyon

Bu kısımda oluşturulan fonksiyonla Türkçe dilinde 10 haneli tekrarlı şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını fonksiyon içerisinde tanımlayınız.

kirilma_olasiliği_kh(permütasyon="tekrarlı", hane=10, dili="Türkçe")  
## [1] "Türkçe dilinde tekrarlı permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=2.113.922.820.157.210.624. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 2.113.922.820.157.210.624'da 1'dir."

Uygulama 2: Türkçe Tekrarsız Permütasyon

Bu kısımda oluşturulan fonksiyonla Türkçe dilinde 10 haneli tekrarsız şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını fonksiyon içerisinde tanımlayınız.

kirilma_olasiliği_kh(permütasyon="tekrarsız", hane=10, dili="Türkçe") 
## [1] "Türkçe dilinde tekrarsız permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=1.055.082.251.814.008.960. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 1.055.082.251.814.008.960'da 1'dir."

Uygulama 3: İngilizce Tekrarlı Permütasyon

Bu kısımda oluşturulan fonksiyonla İngilizce dilinde 10 haneli tekrarlı şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını fonksiyon içerisinde tanımlayınız.

kirilma_olasiliği_kh(permütasyon="tekrarlı", hane=10, dili="İngilizce")  
## [1] "İngilizce dilinde tekrarlı permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=839.299.365.868.340.224. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 839.299.365.868.340.224'da 1'dir."

Uygulama 4: İngilizce Tekrarsız Permütasyon

Bu kısımda oluşturulan fonksiyonla İngilizce dilinde 10 haneli tekrarsız şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını fonksiyon içerisinde tanımlayınız.

kirilma_olasiliği_kh(permütasyon="tekrarsız", hane=10, dili="İngilizce")  
## [1] "İngilizce dilinde tekrarsız permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=390.164.706.723.041.920. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 390.164.706.723.041.920'da 1'dir."

Fonksiyon III

Önceki fonksiyondan farklı olarak burada fonksiyona semboller de dahil edilmiştir. Bunun yapılmasının nedeni, önceki fonskiyonlarla karşılaştırma yapabilmenizdir.

options(scipen = 999)

kirilma_olasiliği_tum=function(permütasyon="tekrarlı", dili="İngilizce", hane=6){
  rakam <- 0:9
  HARF <- c("A","B", "C", "Ç", "D", "E","F","G", "Ğ", "H", "I", "İ", "J", "K", "L", "M", "N", "O", "Ö", "P", "R", "S", "Ş", "T", "U", "Ü", "V", "Y", "Z")
  ni=c("!",  "#", "$", "%", "&", "(", ")", "*",  "+", "-", "/", ":", ";", "<", "=", ">", "?", "@", "[", "^", "_", "{", "|", "}", "~")
  tr <- c(rakam, HARF, tolower(HARF), ni)#ilave olarak küçük harfler de eklenmiştir.
  ing<-c(rakam, LETTERS, letters, ni)#ilave olarak küçük harfler de eklenmiştir.
  if(permütasyon=="tekrarlı" && dili=="Türkçe"){
            sonuc=format(length(tr)^hane, big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  }  else if(permütasyon=="tekrarsız" && dili=="Türkçe"){
            sonuc=format(factorial(length(tr))/factorial(length(tr)-hane), big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  }  else if(permütasyon=="tekrarlı" && dili=="İngilizce"){
            sonuc=format(length(ing)^hane, big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  }  else if(permütasyon=="tekrarsız" && dili=="İngilizce"){
            sonuc=format(factorial(length(ing))/factorial(length(ing)-hane), big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  
  }
  
}
  
   
# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını fonksiyon içerisinde tanımlayınız.

kirilma_olasiliği_tum(permütasyon="tekrarlı", hane=10, dili="Türkçe")   

Uygulama 1: Türkçe Tekrarlı Permütasyon

Bu kısımda oluşturulan fonksiyonla Türkçe dilinde 10 haneli tekrarlı şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını fonksiyon içerisinde tanımlayınız.

kirilma_olasiliği_tum(permütasyon="tekrarlı", hane=10, dili="Türkçe")   
## [1] "Türkçe dilinde tekrarlı permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=48.398.230.717.929.316.352. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 48.398.230.717.929.316.352'da 1'dir."

Uygulama 2: Türkçe Tekrarsız Permütasyon

Bu kısımda oluşturulan fonksiyonla Türkçe dilinde 10 haneli tekrarsız şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını fonksiyon içerisinde tanımlayınız.

kirilma_olasiliği_tum(permütasyon="tekrarsız", hane=10, dili="Türkçe") 
## [1] "Türkçe dilinde tekrarsız permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=29.318.602.952.589.398.016. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 29.318.602.952.589.398.016'da 1'dir."

Uygulama 3: İngilizce Tekrarlı Permütasyon

Bu kısımda oluşturulan fonksiyonla İngilizce dilinde 10 haneli tekrarlı şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını fonksiyon içerisinde tanımlayınız.

kirilma_olasiliği_tum(permütasyon="tekrarlı", hane=10, dili="İngilizce") 
## [1] "İngilizce dilinde tekrarlı permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=24.842.341.419.143.569.408. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 24.842.341.419.143.569.408'da 1'dir."

Uygulama 4: İngilizce Tekrarsız Permütasyon

Bu kısımda oluşturulan fonksiyonla İngilizce dilinde 10 haneli tekrarsız şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını fonksiyon içerisinde tanımlayınız.

kirilma_olasiliği_tum(permütasyon="tekrarsız", hane=10, dili="İngilizce") 
## [1] "İngilizce dilinde tekrarsız permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=14.517.925.392.916.006.912. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 14.517.925.392.916.006.912'da 1'dir."

Sonuç

Özetle, yapılan çalışmayla İngilizce ve Türkçe karakterlerinin yanında rakamlar ve semboller de dahil edilerek üretilen şifre kombinasyonlarının sayısı ve bu kombinasyon sayılarından yola çıkılarak şifrelerin kırılma olasılıkları hesaplanarak konu alanında farkındalık oluşturulması amaçlanmıştır.

Çalışmanın tamamını RPubs üzerinde de yayınladım. İlgilenenler için linki: https://rpubs.com/tevfik1461/cracking

Faydalı olması dileğiyle.

Bilimle ve teknolojiyle kalınız.

Not:

  •  Kaynak gösterilmeden alıntı yapılamaz veya kopyalanamaz.
  •  It can not be cited or copied without referencing.

Kaynakça

IDReferanslar
[1]Dietrich J (2020). citation: Software Citation Tools. R packageversion 0.4.1.
[2]Hadley Wickham (2021). tidyr: Tidy Messy Data. R package version 1.1.3. https://CRAN.R-project.org/package=tidyr
[3]Hadley Wickham and Jennifer Bryan (2019). readxl: Read Excel Files. R package version 1.3.1. https://CRAN.R-project.org/package=readxl
[4]Hadley Wickham, Romain François, Lionel Henry and Kirill Müller (2021). dplyr: A Grammar of Data Manipulation. R package version 1.0.7. https://CRAN.R-project.org/package=dplyr
[5]Hao Zhu (2021). kableExtra: Construct Complex Table with ‘kable’ and Pipe Syntax. R package version 1.3.4. https://CRAN.R-project.org/package=kableExtra
[6]Jeroen Ooms (2021). writexl: Export Data Frames to Excel ‘xlsx’ Format. R package version 1.4.0. https://CRAN.R-project.org/package=writexl
[7]JJ Allaire and Yihui Xie and Jonathan McPherson and Javier Luraschi and Kevin Ushey and Aron Atkins and Hadley Wickham and Joe Cheng and Winston Chang and Richard Iannone (2021). rmarkdown: Dynamic Documents for R. R package version 2.10. URL https://rmarkdown.rstudio.com.
[8]Kirill Müller and Hadley Wickham (2021). tibble: Simple Data Frames. R package version 3.1.3. https://CRAN.R-project.org/package=tibble
[9]Makowski, D., Ben-Shachar, M.S., Patil, I. & Lüdecke, D. (2020). Automated Results Reporting as a Practical Tool to Improve Reproducibility and Methodological Best Practices Adoption. CRAN. Available from https://github.com/easystats/report. doi: .
[10]R Core Team (2021). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL https://www.R-project.org/.
Öne çıkan

Küresel İnovasyon Endeksi 2021 Yılı Raporu ve Türkiye

Dünya ekonomilerini inovasyon yeteneklerine göre sıralayan Küresel İnovasyon Endeksi, ingilizce ifadeyle Global Inovation Index (GII)’in 226 sayfalık 2021 yılı raporu 20 Eylül 2021 tarihinde Dünya Fikri Mülkiyet Hakları Örgütü (WIPO) tarafından yayınlanmıştır. GII, küresel inovasyonun durumu hakkında yeni veriler ve analizler sağlayarak okuyucuların ve politika yapıcıların 130’dan fazla ekonominin inovasyon ekosistemi performansını karşılaştırmasına olanak tanımaktadır. İnovasyon girdileri ve çıktıları olarak gruplandırılmış yaklaşık 80 göstergeden oluşan GII, inovasyonun çok boyutlu yönlerini yakalamayı amaçlamaktadır. Yayınlanan bu yılki endeks raporu Küresel İnovasyon Endeksi’nin 14. baskısı olup, raporun 2021 yılı temasına Küresel İnovasyon Takipçisi (Global Innovation Tracker) özelliği dahil edilerek COVID-19 pandemisi de dahil olmak üzere küresel inovasyonun nabzı ortaya konulmaktadır. Bu bağlamda 2021 GII, COVID-19 pandemik krizinin küresel inovasyon performansı üzerindeki etkisini değerlendirmektedir. Küresel İnovasyon Endeksi’nin çerçevesi Şekil 1’de verilmiştir.

Şekil 1: Küresel İnovasyon Endeksi (GII)’nin Yapısı

Kaynak: WIPO

Küresel İnovasyon Endeksine göre Türkiye ile ilgili öne çıkan bulgular şöyledir:

  • Türkiye, GII 2021’de yer alan 132 ekonomi arasında 41. sırada yer alarak bir önceki yıla göre 10 sıra yükselmiştir. Türkiye, 2021’de inovasyon çıktı alt endeksinde
  • Türkiye, 2021’de inovasyon çıktı alt endeksinde inovasyon girdi alt endeksine göre daha iyi performans göstermiştir. Bu yıl Türkiye, inovasyon girdi alt endeksinde hem 2020 hem de 2019’dan daha yüksek performans göstererek 45. sırada yer almıştır. Tablo 1’de Türkiye’nin son üç yıldaki GII sıralaması verilmiştir.

Tablo 1: Yıllara Göre Küresel İnovasyon Endeks (GII) Değeri, Türkiye

YılGIIİnovasyon Girdi Endeksiİnovasyon Çıktı Endeksi
2021414541
2020515253
2019495649
  • Türkiye 34 üst orta gelir grubunda yer alan ülke ekonomileri arasında 4. sırada yer almaktadır.
  • İnovasyon çıktı endeksinde ise Türkiye 41. sırada yer almaktadır. Bu pozisyon hem 2020 hem de 2019’dan daha yüksektir.
  • Türkiye, Kuzey Afrika ve Batı Asya’daki 19 ekonomi arasında 4. sırada yer almaktadır.
  • GSYİH’ye kıyasla, Türkiye’nin performansı, gelişmişlik düzeyine göre beklentilerin altındadır.
  • Türkiye, inovasyon yatırımlarının düzeyine göre daha fazla inovasyon çıktısı üretmektedir.
  • Türkiye, altı alt endekste üst orta gelir grubu ülkeler ile Kuzey Afrika ve Batı Asya bölgesi ülkeler ortalamalarının üzerinde bir performans sergilemiştir. Bu alt endeksler şöyledir: İnsan sermayesi ve araştırma, Altyapı, pazarın gelişmişliği, iş gelişmişliği, bilgi ve teknoloji çıktıları ve yaratıcı çıktılar.
  • Türkiye, insan sermayesi ve araştırma endeksinde en iyi performansı sergilerken, en düşük performansı kurumlar alt endeksinde göstermiştir.  Türkiye insan sermayesi ve araştırma endeksinde 26., kurumlar alt endeksinde ise 93. sırada yer almıştır. 2020 yılında kurumlar alt endeksinde Türkiye 94. sırada bulunmaktadır.
  • Türkiye,  Türkiye kaynaklı marka başvuruları sıralamasında 130 ülke ekonomisi içerisinde bir önceki yıla göre 11 sıra yükseliş göstererek 6. sıraya,  Türkiye kaynaklı  endüstriyel tasarımlar sıralamasında ise 1 sıra yükseliş göstererek 5. sırada yer almıştır. Bu sıralama, sınai mülkiyet istatistikleri açısından Türkiye için önemli bir başarı göstergesidir.
  • Türkiye, 1.2.3 kodlu işten çıkarma maliyeti göstergesinde en düşük performansı göstermiş olup, 130 ülke ekonomisi içerisinde 118. sırada yer almıştır. İşten çıkarma maliyeti göstergesini 5.2.4 kodlu ortak girişim/stratejik ittifak anlaşmaları takip etmiş olup, Türkiye 130 ülke ekonomisi içerisinde 115. sırada yer almıştır.

Özetle, Türkiye nitelikli personel istihdamını ve şeffaflığı ilke edinerek ve verimsiz veya nispeten verimli alanlardan yüksek katma değerli alanlara daha fazla kaynak aktararak daha üst sıralara yükselmesi ve uluslararası arenada söz sahibi olması her zaman mümkündür. Ayrıca, 80 göstergeden oluşan endeks görev alanları itibarıyla neredeyse bütün kamu kurum ve kuruluşlarını ilgilendirdiğinden ilgili kamu kurum ve kuruluşlarının bilimin rehberliğinde ortak aklı esas alarak eş güdümlü çalışması ve süreci görmek adına belirli aralıklarla ilerleme raporları hazırlaması gerektiği unutulmamalıdır.  Raporun ana ve alt endeksler açısından detaylı bir şekilde incelenmesi, atılacak adımlar ve alınacak politika tedbirleri açısından yol gösterici olacaktır. Üretilen yeni bilgi ve yöntemlerin sahada uygulanması anlamına gelen inovasyon ile inovasyon yetenek ve becerileri geliştiği ölçüde ülke ekonomileri gelişim göstereceği ve refah seviyelerinin artacağı aşikardır.

Faydalı olması ve farkındalık oluşturması dileğiyle.

Bilimle, teknolojiyle ve inovasyonla kalınız.

Not: Kaynak gösterilmeden alıntı yapılamaz veya kopyalanamaz.

Note: It can not be cited or copied without referencing.

Yararlanılan Kaynaklar

Öne çıkan

Bulut Performans Endeksi [BE] Simülasyonu

Bulut Performance Index [BI] Simulation

Giriş

Bulut Endeksi (BE)‘nin ilk uygulamaları her ne kadar finansal performans analizi alanında olsa da diğer çok kriterli karar verme (ÇKKV) problemlerinin çözümünde ve performans analizlerinde de kullanılabilmektedir. Bu endeksle maximum ve minimum prensibine dayalı olarak çalışan diğer Çoklu Karar Verme Yöntemlerinin eksikliklerinin giderilmesi de amaçlanmıştır. Nihai olarak, geliştirilen endekse ilişkin çalışmanın makalesi hakemli bir dergi olan Verimlilik Dergisi’nin 2017 yılı 3. sayısında yayınlanmış olup, uygulamayı göstermesi ve somutlaştırması adına Microsoft Excel 2016’da hazırladığım bütün seviyeleri içeren Bulut Endeks (BE) simülasyonu aşağıdaki linkten indirilebilir. Simülasyonun daha iyi anlaşılması adına yayınlanmış makaleyle birlikte değerlendirilmesi önem arz etmektedir.

Makaleyi indirmek için buraya tıklayınız: Bulut Endeksi

Dergi Bilim Kurulu: Bilim Kurulu

Bulut Endeks (BE) Metodolojisi

Endeksin uygulama adımları Şekil 1’de gösterilmiştir.

Şekil 1. BE Uygulama Adımları

BE, karar vericiye genel (Level 1), orta (Level 2) ve çekirdek (Level 3) olmak 3 seviyede statik ve dinamik çıktı üretme olanağı tanır. Bu seviyeler Şekil 2’te özetlenmiştir. Çekirdek (core) denilen her bir kriter seviyesinde üretilen Bulut Endeks sonuçları ile hem alternatifler arasında (horizontal analysis: yatay analiz) hem de kriterler bazında her bir alternatifin kendi içerisinde (vertical analysis: dikey analiz) değerlendirilmesine olanak sağlanır. Bu seviyede yatay analiz açısından kriter sayısı (satır sayısı) X alternatif sayısı (sütun sayısı) kadar (horizantal analysis) sonuç üretilerek çok daha derinlemesine analiz yapılabilir. Dikey analiz için ise matrisin sütun (alternatif) sayısı kadar sonuç üretilmiş olacaktı. Örneğin,  kullanılacak karar kriteri (satır) sayısı 10, alternatif (sütun) sayısı 50 ise yatay ve dikey analiz açısından 10×50=500 adet sonuç üretilmiş olacaktı. Verimlilik dergisinde yer alan örnek esas alınarak aşağıda excel dokümanı üzerindeki uygulamada, yatay ve dikey analiz için üretilecek sonuç 24 (kriter) x 23 (alternatif) = 552’dir.

Karar vericinin araştırma tasarıma ve amacına bağlı olarak orta ve çekirdek seviyede çıktı üretilmek istenmeyebilir, genel seviyede elde edilen BE sonuçları karar vericiye yeterli olabilir.

BE çıktı üretme seviyeleri 3 seviyede ele alınabilir;

  1. Seviye 1 (Genel)’de alternatiflerin bütün kriterlerinin değerlerinden hareketle genel bir BE değeri üretilir.
  2. Seviye 2 (Kategorize edilmiş kriter değerleri)’de kriter kümelerine göre BE değeri üretilir.
  3. Seviye 3 (Çekirdek)’de kriter değerleri baz alınarak alternatifler kendi içinde ve aralarında analiz edilerek BE değeri üretilir.

Şekil 2. BE Çıktı Üretme Seviyeleri

be

BE 3 seviyede çıktı üretmekte olup, bu 3 çıktı seviyesine göre üretilen çıktı sayısı ile üretilen BE skorların dayalı olduğu seviye değişkenleri Şekil 3’te gösterilmiştir.

Burada,

L:  seviye (Level),

m: matristeki satır veya kriter sayısı (the number of rows or criteria in the matrix),

n: matristeki sütun veya alternatiflerin sayısı (the number of columns or alternatives in the matrix),

c: benzer özelliklere sahip kriterlerden oluşan toplam küme sayısı olmak üzere (the total number of clusters of criteria with similar characteristics)

göstermek üzere seviyelere göre üretilen çıktı sayısı

Seviye 1 için üretilen sonuç sayısı (Number of results produced for Level 1)

L1=n

Seviye 2 için üretilen sonuç sayısı (Number of results produced for Level 2)

L2=cxm

Seviye 3 için üretilen sonuç sayısı (Number of results produced for Level 3)

L3=mxn

kadardır.

Şekil 3. BE Çıktı Üretme Seviyeleri ve BE Çıktılarının Dayalı Olduğu Tabaka Değişkenleri

BE Tabaka

Alt seviyelerde (2. ve 3. seviyeler) analiz neden önemlidir?

Bu önemlidir çünkü genel endeks değerleri çok iyi bir alternatif, kriterler kategorize edilerek oluşturulmuş 2. seviyede ve kriterlerin tek başına değerlendirildiği 3. seviyede Bulut Endeksleri skorlarında farklılık gösterebildiği, başka alternatiflerin bu alt endekslerde öne çıktığı görülebilmektedir. Benzer şekilde, Seviye 3’te kriter bazlı değerlendirmelere de olanak tanıyan bu endeksle alternatiflerin gerçekleşen kriter değeri ile olması gereken değerleri karşılaştırılarak çekirdek seviyede Bulut Endeksi değerleri elde edilebilir.

Geliştirilen endeks yöneylem araştırma (operation research) alanı içerisinde yer alan Çok Kriterli Karar Verme (ÇKKV) problemlerinin çözümünde sektör ayrımı olmaksızın rahatlıkla kullanılabilecektir. Karar kriterlerinin açık uçlu ve tek yönlü eşitsizlik içerdiği durumlarda alt seviyeleriyle birlikte (genel, orta ve çekirdek) uygulama alanı sunarak bir çok çıktı elde edilmesine olanak tanır. Bahsedilen bu yönleriyle Bulut Endeksi (BE) literatüre önemli bir katkı sunmaktadır.

Aşağıda excel ortamında uygulaması yapılan Bulut Endeksi (BE) simülasyonunda kriterlerin yönüne göre veri kümesi içerisindeki değerlerin minimum ve maksimum olanı alınarak kriter değerlerinin standart değeri olarak belirlenerek (Aşağıdaki örneğimizde kriterin yönüne göre kriterlerin maksimum ve minimum değerleri standart değer olarak alınmıştır. Karar verici yapılan işin, sektörün niteliğine ve literatürde öngörülen değerlere göre kriterlerin standart değerlerini belirleyebilir. Belirlenen kritere ait standart değer, veri kümesindeki değerlerin minimum olanı olabileceği gibi maksimum olanı, veri kümesindeki değerlerin ortalaması ya da literatürdeki değeri de olabilir.) varsayımsal olarak bu değerler ideal değerler olarak alınmıştır. Exceldeki örneğimizde ağırlıklandırma işlemi yapılmamıştır. Eğer karar verici ağırlıklandırma yapacaksa Adım 5 (Minimum Olması İstenen Değerlerin Tersine Çevrilmesi)‘te mutlak eşleştirme yapıldıktan sonra elde edilen matristeki kriterlerin değerleri ile belirlenen ağırlık katsayıları ile çarpılarak ağırlandırılmış karar matrisi elde edilir. Daha sonra Adım 6 (Endeks Referans Değerlerinin Belirlenmesi)’ya geçilir. Ağırlıklandırma işleminde karar verici veri setinin yapısına, araştırmanın içerik ve niteliğine göre istediği ağırlıklandırma yöntemini (nitel ya da nicel yöntemler) kullanılabilir.  

Excel simülasyonunda Minimum Olması İstenen Değerlerin Tersine Çevrilmesi aşamasında kriter değerlerinin tersine sıralanarak ilgili değeri ilgili alternatifin altına yazdırmak için kullanılan formül:

=KÜÇÜK($D$60:$H$60;RANK(D60;$D$60:$H$60;0)))

Şimdi sırasıyla formül içinde kullanılan fonksiyonları dışardan içe doğru açıklayalım.

=KÜÇÜK fonksiyonu, bir veri kümesinde n. en küçük değeri verir. Bir veri kümesinde belirli bir göreli konumu olan değerleri elde etmek için bu fonksiyon kullanılır.

=RANK fonksiyonu, bir veri kümesi içindeki bir değerin o veri kümesi içindeki sırasını verir. Bu fonksiyonun içinde yer alan 0 ise yapılacak sıralamanın tersine olacağı anlamına gelir. Eğer bu formülde 0 yerine 1 kullanılmış olsaydı ya da hiç bir şey kullanılmamış olsaydı (default olarak) normal sıralama değerlerini elde edecektik.

Özetle, Minimum Olması İstenen Değerlerin Tersine Çevrilmesi aşamasında =KÜÇÜK($D$60:$H$60;RANK(D60;$D$60:$H$60;0))) formülünde tersine sıralama yaparak veri kümesindeki seçili değerin sırasını belirliyoruz. Daha sonra belirlenen bu sıraya göre o sırada yer alan değeri getirmesini istiyoruz. Diğer bir deyişle, kriter yönü minimum olan değerlerin kendi içerisinde tersine sıralama yaparak yerini değiştirmiş oluyoruz. Böylece verilerde hiç bir bozulma olmadan Mutlak Eşleştirme yapmış oluyoruz.

Microsoft Excel ortamında hazırlamış olduğum simülasyon çalışmasını aşağıdaki linkten indirebilirsiniz. Simülasyon uygulamasında tekrarlı basit tesadüfi örnekleme tekniği kullanarak sentetik alternatif kriter değerleri üretilmiştir. F9 tuşuna basılı tutarak alternatiflere yönelik yeni kriter değerleri üreterek farklılaşmaları görebilirsiniz. Simülasyon çalışmasındaki sayfalar formül korumalı olduğu için tbulut şifresini girerek çalışmalarınıza uyarlayabilirsiniz. Bu simülasyon çalışması Bulut Endeksi (BE)’nin bütün seviyelerinde hazırlanarak kullanıcılara Bulut Endeksi (BE)’nin anlaşılmasının ve kullanılmasının kolaylaştırılması amaçlanmıştır.

Bulut Endeksi (BE) Hangi Alanlarda Kullanılır?

Dinamik bir nitelik de taşıyan Endeks açık uçlu ve tek yönlü eşitsizlikleri (standart değeri olan ya da hesaplanan) içeren;

  1. Sıralama (Ranking)
  2. Seçim (Selection)
  3. Etkinlik ve verimlilik ölçümleri (measurements  of efficiency and productivity)
  4. Performans değenlendirme (performance evaluation)
  5. Risk tahmini (risk estimation)
  6. Optimal çözüm (optimal solution)

problemlerinin çözümünde sektör ayrımı gözetmeksizin rahatlıkla uygulanabilir. Kamu kurum ya da kuruluşları ile birlikte özel sektör oluşturacağı endekslerde ve analizlerde hem genel değerlendirmeye hem de alt seviyelerde değerlendirmelere olanak tanıdığı ve aynı zamanda dinamik bir yapıya sahip olduğu için Bulut Endeksi (BE)’ni kullanabilirler. Bu noktada, kurum ya da kuruluşların yapması gereken tek şey, değerlendirmeye konu kriterlerin ve gerekliyse bu kriterlerin ağırlıklarının belirlenmesidir.

Bulut Endeks (BE) Yöntemini Kullanan Bilinen Çalışmalar

  1. Kıran, Şafak. (2018). Sağlık kurumları finansal tablo analizlerinde kullanılabilecek anahtar finansal oranların belirlenmesi: Bir performans endeksi önerisi, Kahramanmaraş Sütçü İmam Üniversitesi, Sosyal Bilimler Enstitüsü, Sağlık Yönetimi Ana Bilim Dalı. Yüksek Lisans Tezi. YÖK Tez No: 524092. Bulut Performans Endeksi (BE)’nin 1. ve 2. seviyelerinde yapılan örneklem büyüklüğü (n) geniş kapsamlı bir çalışmadır.
  2. Güden, Merve.(2021). “Metal Eşya Endeksine Kayıtlı Şirketlerin Finansal Performanslarının Bulut Endeks Performans Yöntemiyle Değerlendirilmesi” Yüksek Lisans Tezi, Adnan Menderes Üniversitesi, İşletme Anabilim Dalı, Muhasebe ve Finansman Yüksek Lisans Programı. YÖK Tez No: 659934. Bulut Performans Endeksi (BE)’nin 1, 2 ve 3. seviyelerinde yapılan bir çalışmadır.

Faydalı olması ve farkındalık oluşturması dileğiyle.

Bilimle ve teknolojiyle kalınız.

Saygılarımla.

Not: Kaynak gösterilmeden alıntı yapılamaz veya kopyalanamaz.

Note: It can not be cited or copied without referencing.

Yararlanılan Kaynaklar

Öne çıkan

R’da Quandl Kütüphanesi İle Veri Çekme ve Dinamik Grafik Oluşturma: Extracting Data with Quandl Library and Creating Dynamic Charts in R

Intro

Within the scope of the study, how the data sets are drawn with the Quandl R package, how the metadata is obtained, how dynamic graphics are created especially in the data sets with time series are discussed using dygraphs and plotly packages.

Giriş

Çalışma kapsamında Quandl R paketi ile veri setlerinin nasıl çekildiği, meta verinin nasıl elde edildiği, özellikle zaman serileri bulunan veri setlerinde dinamik grafiklerin nasıl oluşturulduğu dygraphs ve plotly paketleri kullanılarak ele alınmıştır.

Quandl R paketi ile premium veri setlerini alabileceğiniz gibi ücretsiz olarak tanımlanmış veri setlerini de alabilirsiniz. Burada bir ücret söz konusu değildir. Bazı veri setlerinin indirilebilmesi için bu pakette ücretli abonelik tanımlanmıştır.Quandl R paketi ücretsizdir. Ancak günde 50’den fazla arama yapmak istiyorsanız, ücretsiz bir Quandl hesabı oluşturmanız ve API anahtarınızı almanız gerekir.Premium veri setlerine ulaşabilmek için de API anahtarının olması gerekir. API anahtarını https://www.quandl.com/login web adresinden kayıt yaptırarak alabilirsiniz.API anahtarını elde ettikten sonra Quandl.api_key(“API anahtarı”) ve Quandl(“FRED/GDP”) veya kombine olarak Quandl(“FRED/GDP”,api_key=”API anahtarı”) şeklinde yazılması gerekir. Buradaki örneğimizde ABD Merkez Bankasının Gayri Safi Milli Hasıla (GDP) verisi çekilmiştir.Fonksiyon içerisinde FRED ise Federal Reserve Economic Data yani Federal Rezerv Ekonomik Verisi’nin kısaltmasıdır. Ücretsiz olarak tanımlanan veri setlerinde bahsedildiği üzere API anahtarına ihtiyaç yoktur.Veri setlerini farklı formatlarda alabilirsiniz. Bunlardan bir kaçı şöyledir:

  • Ham veri: Quandl(“FRED/GDP”, type=”raw”)
  • ts formatı: Quandl(“FRED/GDP”, type=”ts”)
  • xts formatı:Quandl(“FRED/GDP”, type=”xts”)
  • zoo formatı: Quandl(“FRED/GDP”, type=”zoo”)

Yukarıda belirtilen ts, xts ve zoo formatları zaman serisi formatları bilinmektedir.

Eğer veriyi farklı zaman periyodları halinde almak istersek veri setinin yapısına göre saatlik, günlük, haftalık, aylık, çeyrek dönemlik olarak da alabiliriz. Örneğin, Quandl(“FRED/GDP”, type=”ts”, collapse=”annual”) fonksiyonunda ABD GDP verisini yıllık olarak ve ts formatında almış oluruz.

Çalışmada grafikler oluşturulurken veri madenciliği teknikleri kullanarak nasıl grafiklere uygun hale getirildiğini de görmüş olacaksınız.

Yüklenen kütüphaneler

kütüphane<-c("dplyr","tibble","tidyr","ggplot2","ggthemes","readxl", "writexl", "psych", "GGally", "rstatix","RColorBrewer","htmlwidgets","kableExtra","stargazer","readr", "lubridate", "Quandl", "xts", "data.table", "dygraphs", "quantmod", "plotly")
yükle<-sapply(kütüphane, require, character.only = TRUE, warn.conflicts = FALSE)
 
#Kütüphane yüklenme durumunu gösteren tablo
 
tablo=suppressWarnings(yükle, classes = "warning")
   
isim=names(tablo)
   
deger=as_tibble(tablo)
   
data.frame(Sıra=1:length(isim), Kütüphane=isim, Durumu=deger$value) %>% 
mutate(Durumu=if_else(Durumu==TRUE, "Yüklendi", "Paket Kurulumu Gerekli")) %>% 
kable(caption = "Yüklenen Kütüphaneler")%>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = F, html_font="calibri")

Veri setlerine ulaşma

National Stock Exchange of India Prices (NSE) OIL veri setinden çeyrek dönemlik ve zoo formatında veri elde edilmiştir.

```{r}
Quandl('NSE/OIL', collapse = "quarterly", type = "zoo", limit = 10)%>% 
kable() %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = F, html_font="calibri")
```

Türkiye aramasına göre veri setleri

Burada ilk 6 kayıt verilmiştir.

Quandl.api_key('Api Anahtarı')
Quandl.search(query="Turkey", silent=T) %>% 
select(id, dataset_code, database_code, name,	description)%>%
kable() %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = F, html_font="calibri")

Ekonomik göstergeler veri seti (Global Economic Indicators)’nden bir kesit

Quandl.api_key('Api Anahtarı')
Quandl.datatable('EDIA/ECD')%>% 
as_tibble() %>% 
head() %>% 
kable() %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = F, html_font="calibri")

ABD Milli Hasıla verisi

# veri birleştirme
r=Quandl("FRED/GDPC1") %>% 
as_tibble()%>% mutate(tur=rep("Reel GSMH",298))

g=Quandl("FRED/GDP") %>% 
as_tibble() %>% mutate(tur=rep("GSMH",298))

rp=Quandl("FRED/GDPPOT")%>% 
as_tibble() %>% mutate(tur=rep("Reel Potansiyel GSMH",332))

veri=bind_rows(r,g, rp) %>% rename("Hasıla"=Value, "Tarih"=Date)
veri %>% ggplot(aes(x=Tarih, y=Hasıla, group=tur))+geom_line(aes(colour=tur), size = 1) + theme_igray() + ggtitle("ABD Milli Hasıla ($)")+ xlab("Tarih")+ylab("Milyar $")+scale_x_date(date_breaks = "8 years", date_labels = "%Y" )+
theme(plot.title = element_text(hjust = 0.5))+
labs(color='Türü')+
labs(caption = "Veri kaynağı: FRED")

Dinamik grafik oluşturma 1

Burada dygraph kütüphanesi kullanılarak dinamik grafik oluşturulmuştur. Ancak burada sadece oluşturulan grafiğin resmi verilmiştir. Çalışmanın sonunda html linki paylaşılacaktır.

r=Quandl("FRED/GDPC1") %>% 
as_tibble()%>% mutate(tur=rep("Reel GSMH",298))%>% rename("Hasıla"=Value, "Tarih"=Date)
r1=r[,c(1:2)]
r1$Tarih= as.Date(r1$Tarih)

r2=as.xts(as.data.table(r1))

dygraph(r2, main="ABD GSMH") %>%
  dyOptions(labelsUTC = TRUE, fillGraph=TRUE, fillAlpha=0.2, drawGrid = T, colors="red") %>%
  dyRangeSelector() %>%
  dyAxis("y", label = "Milyar ($)") %>%
  dyCrosshair(direction = "vertical") %>%
  dyHighlight(highlightCircleSize = 8, highlightSeriesBackgroundAlpha = 0.4, hideOnMouseOut = FALSE)  %>%
  dyRoller(rollPeriod = 1)

Dinamik grafik oluşturma 2

Burada dygraph kütüphanesi kullanılarak birden fazla değişken aynı grafik üzerinde gösterilmiştir. Ancak burada sadece oluşturulan grafiğin resmi verilmiştir. Çalışmanın sonunda html linki paylaşılacaktır.

r=Quandl("FRED/GDPC1") %>% 
as_tibble()%>% mutate(tur=rep("Reel GSMH",298))

g=Quandl("FRED/GDP") %>% 
as_tibble() %>% mutate(tur=rep("GSMH",298))

rp=Quandl("FRED/GDPPOT")%>% 
as_tibble() %>% mutate(tur=rep("Reel Potansiyel GSMH",332))

veri=bind_rows(r,g, rp) %>% rename("Hasıla"=Value, "Tarih"=Date)


lv=pivot_wider(veri, names_from = tur, values_from = Hasıla)

lv$Tarih= as.Date(lv$Tarih)

lv1=as.xts(as.data.table(lv))

dygraph(lv1, main="ABD GSMH Türleri") %>%
  dyOptions(labelsUTC = TRUE, fillGraph=TRUE, fillAlpha=0.2, drawGrid = T) %>%
  dyRangeSelector() %>%
  dyAxis("y", label = "Milyar ($)") %>%
  dyCrosshair(direction = "vertical") %>%
  dyHighlight(highlightCircleSize = 8, highlightSeriesBackgroundAlpha = 0.4, hideOnMouseOut = FALSE)  %>%
  dyRoller(rollPeriod = 1)

Dinamik grafik oluşturma 3

Burada plotly kütüphanesi kullanılarak birden fazla değişken aynı grafik üzerinde gösterilmiştir. Ancak burada sadece oluşturulan grafiğin resmi verilmiştir. Çalışmanın sonunda html linki paylaşılacaktır.

r=Quandl("FRED/GDPC1") %>% 
as_tibble()%>% mutate(tur=rep("RGSMH",298))

g=Quandl("FRED/GDP") %>% 
as_tibble() %>% mutate(tur=rep("GSMH",298))

rp=Quandl("FRED/GDPPOT")%>% 
as_tibble() %>% mutate(tur=rep("RPGSMH",332))

veri=bind_rows(r,g, rp) %>% rename("Hasıla"=Value, "Tarih"=Date)


lv=pivot_wider(veri, names_from = tur, values_from = Hasıla) #tablonun geniş formata dönüştürülmesi

sekil <- plot_ly(lv, x = ~Tarih, y = ~GSMH, name = 'GSMH', type = 'scatter', mode = 'lines') 
sekil<- sekil %>% add_trace(y = ~RGSMH, name = 'RGSMH', mode = 'lines') 
sekil <- sekil %>% add_trace(y = ~RPGSMH, name = 'RPGSMH', mode = 'lines')%>%
         layout(title = "ABD GSMH Türleri",
         xaxis = list(title = "Tarih"),
         yaxis = list (title = "Hasıla ($)"))

sekil

Dinamik grafik oluşturma 4

Burada plotly kütüphanesi kullanılarak birden fazla değişken aynı grafik üzerinde alan grafiği olarak gösterilmiştir. Ancak burada sadece oluşturulan grafiğin resmi verilmiştir. Çalışmanın sonunda html linki paylaşılacaktır.

r=Quandl("FRED/GDPC1") %>% 
as_tibble()%>% mutate(tur=rep("RGSMH",298))

g=Quandl("FRED/GDP") %>% 
as_tibble() %>% mutate(tur=rep("GSMH",298))

rp=Quandl("FRED/GDPPOT")%>% 
as_tibble() %>% mutate(tur=rep("RPGSMH",332))

veri=bind_rows(r,g, rp) %>% rename("Hasıla"=Value, "Tarih"=Date)


lv=pivot_wider(veri, names_from = tur, values_from = Hasıla)

#alan grafiği
c <- plot_ly(na.omit(lv), x = ~Tarih, y = ~GSMH, type="scatter", mode="markers", fill = "tozeroy", name = 'GSMH')
c <- add_trace(c, x = ~Tarih, y = ~RGSMH, type="scatter", mode="markers", fill = "tozeroy", name = 'RGSMH')
c <- add_trace(c, x = ~Tarih, y = ~RPGSMH, type="scatter", mode="markers", fill = "tonexty", name='RPGSMH')%>%
         layout(title = "ABD GSMH Türleri",
         xaxis = list(title = "Tarih"),
         yaxis = list (title = "Milyar $"))
c

Dünya Bankası metaveri

data <- Quandl.datatable("WB/METADATA")
data %>% head(10) %>% kable() %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = F, html_font="calibri")

Dünya Bankası (DB) veri seti

Burada DB veri setinden TX.VAL.TRVL.ZS.WT değişkeninden orta yüksek gelirli ülkelerde hizmet ihracatının payı (%) grafikle verilmiştir.

options(scipen=999)
veri=Quandl.datatable('WB/DATA') %>% 
as_tibble() %>% filter(country_name=="Upper middle income")%>%
filter(series_id=="TX.VAL.TRVL.ZS.WT")%>%select(year, value) 
veri %>%  
ggplot(aes(x=year, y=value))+ geom_line(aes(color="red"), size = 2) + theme_dark() + ggtitle("Orta Yüksek Gelir Grubundaki Ülkelerde Hizmet İhracatının Payı (%)")+ xlab("Yıl")+ylab("%")+
theme(plot.title = element_text(hjust = 0.5))+
theme(legend.position = "none")+
scale_x_continuous(breaks = seq(from = min(veri$year), to = max(veri$year), by = 2))+
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+
labs(caption = "Veri kaynağı: Dünya Bankası")

Sonuç

Çalışma kapsamında Quandl R paketi ile veri setlerinin nasıl çekildiği, meta verinin nasıl elde edildiği, özellikle zaman serileri bulunan veri setlerinde dinamik grafiklerin nasıl oluşturulduğu dygraphs, quantmod ve plotly paketleri kullanılarak ele alınmıştır.

Bu çalışma ile ilgili çalışmanın tamamına Quandl Kütüphanesi İle Veri Çekme ve Dinamik Grafik Oluşturma adlı çalışmamın olduğu  https://rpubs.com/tevfik1461/vericekme  linkinden ulaşabilir, dinamik grafikleri burada görebilirsiniz.

Faydalı olması ve farkındalık oluşturması dileğiyle.

Bilimle ve teknolojiyle kalınız.

Saygılarımla…

Not: Kaynak gösterilmeden alıntı yapılamaz veya kopyalanamaz.

Note: It can not be cited or copied without referencing.

Kaynaklar

Öne çıkan

R’da Sosyal Ağ Analizi (SAA): Social Network Analysis in R


Intro

In this study, it is aimed to raise awareness about network analysis (NA or SNA) by analyzing synthetic data produced after basic components of network analysis have been revealed and to show metrics widely used.

Giriş

Ağ analizi ya da sosyal ağ analizi (SAA), araştırmacıların aktörler arasındaki ilişkileri tanımlamasına ve bu ilişkilerin tekrarından ortaya çıkan sosyal yapıları analiz etmesine olanak sağlayan bir dizi tekniktir. SAA’nın temel amacı, sosyal olguyu olabildiğince açıklamaktır ve bu analiz genellikle sosyal ağ analizi (SNA) olarak adlandırılmaktadır. Burada sosyal ağ terimi, bireyler, aileler, haneler, köyler, topluluklar, bölgeler vb.olarak ifade edilebilir. SAA, nicel kavramların açıklanmasına katkısının yanı sıra, nitel kavramların nicel ölçümlerini sağlayarak olguların daha iyi anlaşılmasını sağlar.

Bu çalışma kapsamında R programlama dili kullanılarak üretilen sentetik veriler üzerinden sosyal ağ analizine giriş niteliğinde uygulama örnekleri yapılacaktır.

SNA’da, veri seti genellikle analizden önce matris formatına dönüştürülür. Ancak, diğer veri kümesi biçimleri, R veya Python gibi bazı programlama dilleri tarafından desteklenir.

Ağ analizi birçok farklı konu alanında yapılabilmektedir. Öne çıkan alanlar şu şekilde sıralanabilir:

  • Pazarlama Analitiği
  • Sosyal ilişkiler
  • İlaç
  • Bankacılık İşlemleri
  • Tedarik zinciri
  • Telekom
  • Lojistik

Bir ağın bileşenleri

Bir SAA’nın bileşenleri düğüm ve kenar olup Şekil 1’de gösterilmiştir.

  • Düğüm (Vertex ya da Node): Düğümler veya köşeler, birbiriyle ilişkili birimlerdir. Bir kenar (iki elemanlı bir set), iki köşeyi birleştiren bir çizgi olarak çizilir.

  • Kenar (Edge): İki öğeden oluşan bir küme olan kenar, iki düğümü birbirine bağlayan bir çizgi olarak tanımlanır.


Şekil 1: Bir Ağın Bileşenleri

Sonraki bölümlerde sırasıyla adım adım R kod blokları verilecektir. Daha sonra elde edilen sonuçlar sunulacaktır. Aşağıda çok fazla kütüphane yüklediğime bakmayınız :). Çok daha azı ile de SAA yapılabilmektedir. Daha çok burada visNetwork, dplyr, igraph ve *networkD3 paketleri kullanılmıştır. İlk çalışmadan farklı olarak ikinci çalışmada 3d ağlara, Sankey diyagramına, dendrograma ve radyal ağlara yer verilmiştir. Çalışmanın bu versiyonunda ise tidygraph, ggraph ve netrankr paketlerinin kullanılmasına ve diğer metriklerin hesaplanmasına yer verilmiştir.

Yüklenen kütüphaneler

kütüphane<-c("dplyr","tibble","tidyr","ggplot2","ggthemes","readxl", "writexl", "psych", "GGally", "rstatix","RColorBrewer","htmlwidgets","kableExtra","stargazer","readr", "visNetwork" , "igraph", "networkD3", "tidygraph", "ggraph", "netrankr")
yükle<-sapply(kütüphane, require, character.only = TRUE, warn.conflicts = FALSE)
 
#Kütüphane yüklenme durumunu gösteren tablo
 
tablo=suppressWarnings(yükle, classes = "warning")
   
isim=names(tablo)
   
deger=as_tibble(tablo)
   
data.frame(Sıra=1:length(isim), Kütüphane=isim, Durumu=deger$value) %>% mutate(Durumu=if_else(Durumu==TRUE, "Yüklendi", "Paket Kurulumu Gerekli")) %>% kbl(caption = "Kütüphane Yüklenme Bilgisi") %>% kable_styling(bootstrap_options = c("striped", "hover"), full_width = F, html_font="calibri")

Örnek 1

düğüm <- data.frame(id = 1:3, label=1:3)
kenar <- data.frame(from = c(1,2), to = c(2,3), arrows="to")
visNetwork(düğüm, kenar, main="Basit Bir Ağ Örneği")

Örnek 2

dugum <- data.frame(id = 1:10, label = paste("Etiket", 1:10),
 group = sample(LETTERS[1:3], 10, replace = TRUE), value = 1:10,
 title = paste0("<p>", 1:10,"<br>Düğüm</p>"), stringsAsFactors = FALSE)

kenar <- data.frame(from = c(8,2,7,6,1,8,9,4,6,2),
 to = c(3,7,2,7,9,1,5,3,2,9),
 value = rnorm(10, 10), label = paste("Kenar", 1:10),
 title = paste0("<p>", 1:10,"<br>Kenar</p>"))

visNetwork(dugum, kenar, height = "500px", width = "100%") %>% 
  visOptions(highlightNearest = TRUE) %>%
  visLayout(randomSeed = 1461)

Örnek 3

dugum <- data.frame(
  id = 1:3,
  label = 1:3,
  group=c("A","B","C"),
  value = c(10, 10, 10)
)
kenar<- data.frame(
  from = c(1, 2, 3),
  to = c(2, 3, 1)
)
visNetwork(dugum, kenar, main="Gruplara Göre Ağın Gösterimi") %>% 
  visNodes(shape = "ellipse") %>% 
  visEdges(arrows = "to", smooth = list(enabled = FALSE))%>%
  visGroups(groupname = "A", color = "red") %>%
  visGroups(groupname = "B", color = "lightblue") %>%
  visGroups(groupname = "C", color = "green")%>%
  visLegend(width = 0.1, position = "left", main = "Grup")

Örnek 4: Merkezilik Ölçüleri

Bu kısımda ağ analizinde düğümlerin derece metriği hesaplanmıştır. Derece, bir düğümün kaç komşusu olduğunu gösteren basit bir merkezilik ölçüsüdür. Ağ yönlendiriliyorsa, ölçümün iki versiyonuna sahibiz: derece içi, gelen bağlantıların sayısı veya önceki düğümlerin sayısıdır. Derece dışı, giden bağlantıların sayısı veya ardıl düğümlerin sayısıdır. Tipik olarak, derece ile ilgileniyoruz, çünkü iç bağlantılar ağdaki diğer düğümler tarafından verilirken, dış bağlantılar düğümün kendisi tarafından belirlenir.

Bir düğüm, çok sayıda komşusu varsa veya yönlendirilmiş durumda, kendisine bağlanan çok sayıda başka düğüm varsa veya diğer birçok düğüme bağlanırsa önemlidir.

set.seed(1461)
grup=sample(x=c("Ankara", "İzmir", "Trabzon"), 10, replace = T)
nodes <- data.frame(id = 1:10, label = paste("E", 1:10), grup=grup, title = grup)
edges <- data.frame(from = sample(1:10, 10, replace = T), to =sample(1:10, 10, replace = T), arrows = "to", dashes=c(TRUE, TRUE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE))
graph <- graph.data.frame(edges, directed = T)
degree_value <- degree(graph, mode = "total")# derece içi ve dışının toplamı verilmektedir.
nodes$derece <- degree_value[match(nodes$id, names(degree_value))]
nodes$label <- paste("Derece:", nodes$derece, "(", nodes$id, ")")

visNetwork(nodes, edges, main="Ağ Analizinde Düğümlerde Toplam Derecenin Hesaplanması")%>% 
  visOptions(selectedBy = list(variable = "derece", multiple = F),highlightNearest = TRUE)

Örnek 5: Ağa Navigasyon Butonlarının Atanması

Bu kısımda ağ analizinde düğümlerin derece metriği hesaplanmıştır.

Bir düğüm, çok sayıda komşusu varsa veya yönlendirilmiş durumda, kendisine bağlanan çok sayıda başka düğüm varsa veya diğer birçok düğüme bağlanırsa önemlidir.

set.seed(1461)
grup=sample(x=c("Ankara", "İzmir", "Trabzon"), 10, replace = T)
nodes <- data.frame(id = 1:10, label = paste("E", 1:10), grup=grup, title = grup)
edges <- data.frame(from = sample(1:10, 10, replace = T), to =sample(1:10, 10, replace = T), arrows = "to", dashes=c(TRUE, TRUE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE))
graph <- graph.data.frame(edges, directed = T)
degree_value <- degree(graph, mode = "total")# derece içi ve dışının toplamı verilmektedir.
nodes$derece <- degree_value[match(nodes$id, names(degree_value))]
nodes$label <- paste("Derece:", nodes$derece, "(", nodes$id, ")")

visNetwork(nodes, edges, main="Ağ Analizinde Düğümlerde Toplam Derecenin Hesaplanması")%>% 
visOptions(selectedBy = list(variable = "derece", multiple = F),highlightNearest = TRUE)%>% 
visInteraction(navigationButtons = TRUE)

3D ağlar oluşturma

set.seed(1461)

kaynak <- sample(x=c("Ankara", "İzmir", "Trabzon", "Kayseri", "Sivas", "Antalya"), 10, replace = T)
hedef <-  sample(x=c("Ankara", "İzmir", "Trabzon", "Kayseri", "Sivas", "Antalya"), 10, replace = T)
veri <- data.frame(kaynak, hedef)

simpleNetwork(veri, fontFamily = "calibri", fontSize = 16, zoom = T, nodeColour = "blue", linkColour = "#666", linkDistance = 100)

Hiyerarşik dendogram oluşturma

set.seed(1461)
hk <- USArrests %>% sample_n(20) %>%
  scale() %>% dist() %>%
  hclust(method = "complete")
dendroNetwork(hk, fontSize = 14, height = 500, width = 800,  zoom = T, linkColour = "blue", nodeColour = "green")

Radyal Ağ Oluşturma 1

hk <- hclust(dist(USArrests), "ave")
radialNetwork(as.radialNetwork(hk))

Radyal Ağ Oluşturma 2

radialNetwork(as.radialNetwork(hk), fontSize = 14)

Chord ağı oluşturma

ulasim <- matrix(sample(x=1:10000, 25, replace=F),
nrow =5)
chordNetwork(Data = ulasim, width = 500, height = 500, colourScale = c("#000000", "#FFDD89", "#957244", "#F26223", "#CCFF99"),
             labels = c("Trabzon", "Sivas", "Ankara", "İstanbul", "Antalya"),
             padding = 0.1, fontSize = 16,
             fontFamily = "calibri", labelDistance = 30)

Sankey Diyagram Oluşturma

set.seed(1453)
baglantı <- data.frame(
  kaynak=sample(x=c("Ankara", "İzmir", "Trabzon"), 40, replace = T), 
  hedef=sample(x=c("Kars", "Manisa", "Siirt", "Tekirdağ", "Kayseri"), 40, replace = T),
  deger=sample(x=1:1000, 40, replace=F))

dugum <- data.frame(
  isim=c(as.character(baglantı$kaynak), as.character(baglantı$hedef)) %>% 
    unique()
)

baglantı$IDKaynak <- match(baglantı$kaynak, dugum$isim)-1 
baglantı$IDHedef <- match(baglantı$hedef, dugum$isim)-1

# veri seti
baglantı %>% 
kbl() %>%  
kable_styling(bootstrap_options = c("striped", "hover"))

# Sankey Diyagramı
sd=sankeyNetwork(Links = baglantı, Nodes = dugum, Source = "IDKaynak", Target = "IDHedef", 
              Value = "deger", NodeID = "isim", fontSize= 15, nodeWidth = 10, nodePadding = 50, sinksRight=F, fontFamily = "Calibri")

sd<- prependContent(sd, htmltools::tags$h5("Örnek Bir Sankey Diyagramı"))
sd<-  htmltools::strong(sd)
sd

Tidygraph ve ggraph paketleri ile ağın gösterimi

Burada düğüm sayısı 25 olan bir ağ gösterilmiştir.

f=create_complete(25)
ggraph(f, layout="stress") + 
  geom_edge_link() + 
  geom_node_point()+
  theme_graph()+
  ggtitle(paste("Örnek Ağın Yapısı(Kenar Sayısı=",gsize(f),","," Düğüm Sayısı=",gorder(f),")", sep=""))+
  theme(plot.title = element_text(hjust = 0.5))

Tidygraph ve ggraph paketleri ile ağın gösterimi 1

Burada düğüm sayısı 20 olan halka ağ gösterilmiştir.

f=create_ring(20,  directed = TRUE)
ggraph(f, layout = "stress") + 
  geom_edge_link() + 
  geom_node_point()+
  theme_graph()+
  ggtitle(paste("Örnek Ağın Yapısı(Kenar Sayısı=",gsize(f),","," Düğüm Sayısı=",gorder(f),")", sep=""))+
  theme(plot.title = element_text(hjust = 0.5))

Tidygraph ve ggraph paketleri ile ağın gösterimi 2

k=create_notable('bull') %>%
activate(nodes) %>%
mutate(name = letters[1:5])
ggraph(k, layout = "stress") + 
  geom_edge_link() + 
  geom_node_point()+
  geom_node_label(aes(label = name))+
  theme_graph()+
  ggtitle(paste("Örnek Ağın Yapısı (Kenar Sayısı=",gsize(k),","," Düğüm Sayısı=",gorder(k),")", sep=""))+
  theme(plot.title = element_text(hjust = 0.5))

Tidygraph ve ggraph paketleri ile ağın gösterimi 3

dugum <- tibble(id = c(1, 2, 3, 4, 5, 6, 7, 8), dugum=letters[1:8])
kenar <- tibble(from = c(1, 4, 2, 4, 4, 6, 6, 7, 7, 7),
                  to = c(2, 4, 3, 2, 1, 5, 8, 8, 6, 5))
grafik <- tbl_graph(nodes = dugum, edges = kenar, directed = F)

ggraph(grafik, layout = 'linear', circular = TRUE) +
    geom_edge_link(arrow = arrow(length = unit(4, 'mm')), 
                   end_cap = circle(3, 'mm')) +
    geom_node_point(size = 10, colour = "red") +
    geom_node_text(aes(label = dugum)) +
    theme_graph()+
    ggtitle(paste("Örnek Ağın Yapısı(Kenar Sayısı=",gsize(grafik),","," Düğüm Sayısı=",gorder(grafik),")", sep=""))+
    theme(plot.title = element_text(hjust = 0.5))

Veri seti üzerinden ağ analizi

Bu kısımda R ortamında bulunan highschool veri seti üzerinden ağ analizi yapılarak metrikleri verilmiştir.

data(highschool) 
graph <- highschool %>% mutate(year=factor(year))
graph <- as_tbl_graph(highschool)
graph %>%
ggraph(layout="kk") +
geom_edge_fan(aes(color=year), arrow=arrow()) +
geom_node_point() +
theme_graph()+
ggtitle("Highschool Veri Setindeki Ağın Yapısı")+
theme(plot.title = element_text(hjust = 0.5))

Alt grafiklere bakma

graph <- as_tbl_graph(highschool)
graph %>%
  activate(edges) %>% 
  mutate(year=factor(year))%>%
  filter(year == 1958) %>%
  ggraph(layout="kk") +
  geom_edge_fan(aes(color=year), arrow=arrow()) +
  geom_node_point() +
  theme_graph()+
  ggtitle("Alt Grafikler:1958")+
  theme(plot.title = element_text(hjust = 0.5))

Yönsüz ağa dönüştürme

graph <- as_tbl_graph(highschool)%>%
         activate(edges) %>% 
         mutate(year=factor(year))
         
undirected_graph <- graph %>%
  convert(to_undirected) %>%
  convert(to_simple)
  
undirected_graph  %>%
    ggraph(layout="kk") +
    geom_edge_fan() +
    geom_node_point() +
    theme_graph()+
    ggtitle("Yönsüz Ağ")+
    theme(plot.title = element_text(hjust = 0.5))

Dereceyle orantılı olarak düğümleri gösterme

graph <- as_tbl_graph(highschool)%>%
         activate(edges) %>% 
         mutate(year=factor(year))
         
undirected_graph <- graph %>%
  convert(to_undirected) %>%
  convert(to_simple)
  
undirected_graph %>%
activate(nodes) %>%
mutate(degree=centrality_degree())%>% 
ggraph(layout="kk") +
geom_edge_fan() +
geom_node_point(aes(size=degree, color=degree)) +
theme_graph()+
ggtitle("Dereceyle Orantılı Düğümler")+
theme(plot.title = element_text(hjust = 0.5))

Özvektör merkezilik ölçüsü ile gösterme

graph <- as_tbl_graph(highschool) %>%
         activate(edges) %>% 
         mutate(year=factor(year))
         
graph %>%
convert(to_undirected) %>%
convert(to_simple)%>%
activate(nodes) %>%
mutate(centrality=centrality_eigen()) %>%
ggraph(layout="kk") +
geom_edge_fan() +
geom_node_point(aes(size=centrality, color=centrality)) +
theme_graph()+
ggtitle("Özvektör Merkezilik Ölçüsü")+
theme(plot.title = element_text(hjust = 0.5))

Arasındalık merkezilik ölçüsü ile gösterme

graph <- as_tbl_graph(highschool)%>%
         activate(edges) %>% 
         mutate(year=factor(year))
         
graph %>%
convert(to_undirected) %>%
convert(to_simple)%>%
activate(nodes) %>%
mutate(Arasindalik=centrality_betweenness()) %>%
ggraph(layout="kk") +
geom_edge_fan() +
geom_node_point(aes(size=Arasindalik, color=Arasindalik)) +
theme_graph()+
ggtitle("Arasındalık Merkezilik Ölçüsü")+
theme(plot.title = element_text(hjust = 0.5))

Merkezilik bilgi kriteri ile ağı gösterme

Arasındaki direnç mesafesinin tersin toplamına dayalı merkezilik ölçüsüdür.

graph <- as_tbl_graph(highschool)%>%
         activate(edges) %>% 
         mutate(year=factor(year))
         
graph %>%
convert(to_undirected) %>%
convert(to_simple)%>%
activate(nodes) %>%
mutate(Bilgi_Kriteri=centrality_information()) %>%
ggraph(layout="kk") +
geom_edge_fan() +
geom_node_point(aes(size=Bilgi_Kriteri, color=Bilgi_Kriteri)) +
theme_graph()+
ggtitle("Merkezilik Bilgi Kriteri Ölçüsü")+
theme(plot.title = element_text(hjust = 0.5))

Merkezilik Katz kriteri ile ağı gösterme

Uzak düğümleri cezalandıran yürüyüşlere dayalı merkezilik ölçüsüdür.

graph <- as_tbl_graph(highschool)%>%
         activate(edges) %>% 
         mutate(year=factor(year))
         
graph %>%
convert(to_undirected) %>%
convert(to_simple)%>%
activate(nodes) %>%
mutate(Katz_Kriteri=centrality_katz()) %>%
ggraph(layout="kk") +
geom_edge_fan() +
geom_node_point(aes(size=Katz_Kriteri, color=Katz_Kriteri)) +
theme_graph()+
ggtitle("Merkezilik Katz Kriteri Ölçüsü")+
theme(plot.title = element_text(hjust = 0.5))

Merkezilik rassal yürüyüş (RY) kriteri ile ağı gösterme

Düğümler arasında beklenen rastgele yürüyüş uzunluğunun tersinin toplamına eşit merkezilik ölçüsüdür.

options(scipen = 999)

graph <- as_tbl_graph(highschool)%>%
         activate(edges) %>% 
         mutate(year=factor(year))
         
graph %>%
convert(to_undirected) %>%
convert(to_simple)%>%
activate(nodes) %>%
mutate(RY_Kriteri=centrality_random_walk()) %>%
ggraph(layout="kk") +
geom_edge_fan() +
geom_node_point(aes(size=RY_Kriteri, color=RY_Kriteri)) +
theme_graph()+
ggtitle("Merkezilik Rassal Yürüyüş (RY) Kriteri Ölçüsü")+
theme(plot.title = element_text(hjust = 0.5))

K core decomposition ölçüsü ile ağı gösterme

Düğümler arasında beklenen rastgele yürüyüş uzunluğunun tersinin toplamına eşit merkezilik ölçüsüdür.

options(scipen = 999)
graph <- as_tbl_graph(highschool) %>%
         activate(edges) %>% 
         mutate(year=factor(year))
         
graph %>%
convert(to_undirected) %>%
convert(to_simple)%>%
activate(nodes) %>%
mutate(K_Core=node_coreness()) %>%
ggraph(layout="kk") +
geom_edge_fan() +
geom_node_point(aes(size=K_Core, color=K_Core)) +
theme_graph()+
ggtitle("K Core Merkezilik Ölçüsü")+
theme(plot.title = element_text(hjust = 0.5))

Sonuç

Bu çalışmada, ağ analizinin temel bileşenleri ortaya konulduktan sonra üretilen sentetik veriler analiz edilerek ağ analizi (AA veya SAA) konusunda farkındalık oluşturulması ve yaygın kullanım alanına sahip metriklerin gösterilmesi amaçlanmıştır.

Sosyal ağ analizi ile ilgili çalışmanın tamamına https://rpubs.com/tevfik1461/saa5 linkinden de ulaşabilirsiniz.

Faydalı olması ve farkındalık oluşturması dileğiyle.

Bilimle ve teknoloji ile kalınız.

Not: Kaynak gösterilmeden alıntı yapılamaz veya kopyalanamaz.

Note: It can not be cited or copied without referencing.

Yararlanılan Kaynaklar