Öne çıkan

R Markdown İle Örnek Uygulama Raporu Oluşturma: Example of Creating an Application Report with R Markdown

Bu çalışmanın amacı prettydoc paketi kullanılarak R Markdown üzerinde html uzantılı raporlama yapmaktır. Bu nedenle kod bloklarıyla birlikte adım adım uygulama adımlarına yer verilmiştir. Çalışma R programlama ara yüzü olan R Studio üzerinde yapılmıştır.

R Markdown Raporunu Tanımlama

title: "R Markdown Örnek Uygulama Raporu"
author: "Tevfik Bulut"
date: "`r format(Sys.time(), '%d %B %Y')`"
output:
  prettydoc::html_pretty:
    theme: cayman
    highlight: github
    toc: true
    toc_float: false
    #toc_depth: 4
    number_sections: true

Yüklenen Kütüphaneler

Aşağıdaki R kod bloğunun çalıştırılmasından sonra kütüphanelerin yüklenip yüklenmediğine dair aşağıdaki gibi mantıksal vektör sonuçları gelecektir. Eğer mantıksal vektör sonuçlarının hepsi TRUE ise kütüphanelerin hepsini yüklenmiştir demektir. Kolaylık sağlaması açısından yukarıda kütüphanelerin yüklenmesini gösterir tabloyu da elde etmek ve daha kolay okumanız için yukarıdaki kod bloğu içerisinden kısa bir kod yazdım. Bu kod çalıştırıldığında aşağıdaki tabloda görüleceği üzere bütün kütüphaneler yüklenmiştir. Eğer ilgili kütüphane yüklenmemiş olursa “Paket Kurulumu Gerekli” ifadesi satırda yazacaktır. Satırda yazan bu uyarı metnine göre paketi ya kurar yada yüklersiniz. Bir paketin kurulması ile yüklenmesinin aynı şey olmadığını burada ifade etmek gerekir konuyu yabancı olanlar için. Paket kurulumu ilk defa yapılan bir işlem iken, paketin yüklenmesi zaten kurulan bir paketin yüklenmesi yani çalışır duruma getirilmesidir. İlk defa bir paket kurulumu gerçekleştiriliyorsa install.packages() fonksiyonunu, zaten bir paket kurulumu gerçekleştirilmiş ise ilgili paketin veya kütüphanenin yüklenmesi veya okunması için library() veya require() fonksiyonlarını kullanıyoruz. Fonksiyonlardaki parantez () içerisine yüklenecek paket veya kütüphane adını yazıyoruz.


kütüphane<-c("dplyr","tibble","tidyr","ggplot2","ggthemes","readr","readxl","ggpubr","formattable", "ggstance", "pastecs","writexl", "psych", "GGally","pander", "rstatix","RColorBrewer", "htmlwidgets","kableExtra","stargazer","readr", "equatiomatic")
yükle% mutate(yuklenme_durumu=if_else(yuklenme_durumu==TRUE, "Yuklendi", "Paket Kurulumu Gerekli")) %>% kbl(caption = "Kütüphane Yüklenme Bilgisi") %>% kable_classic_2(full_width = F, html_font="arial")

Tanımlayıcı İstatistikler

mtcars Veri Seti

Çalışma kapsamında R içerisinde bulunan mtcars veri setinden yararlanarak tanımlayıcı ve çıkarımsal istatistikler ortaya konulmuştur.Veri seti 11 değişkenden ve 32 gözlemden oluşmaktadır.

  1. mpg:Mil/(ABD) galon
  2. cyl:Silindir sayısı
  3. disp:Displacement (m.in.)
  4. hp:Brüt beygir gücü
  5. drat:Arka aks oranı
  6. wt:Ağırlık (1000 lbs)
  7. qsec: 1/4 mil zaman
  8. vs:Motor (0 = V şeklinde, 1 = düz)
  9. am:Şanzıman (0 = otomatik, 1 = manuel)
  10. gear: İleri vites sayısı
veri=mtcars
veri %>% kbl() %>% kable_styling()

Tanımlayıcı İstatistikler Tablosu

veri1 <- within(veri, {
   vs <- factor(vs, labels = c("V", "S")) #değişkenin nominal kategorik veri tipine dönüştürülmesi
   am <- factor(am, labels = c("otomatik", "manuel")) #değişkenin nominal kategorik veri tipine dönüştürülmesi
   cyl  <- ordered(cyl) # değişkenin nominal sıra ölçekli veri tipine dönüştürülmesi
   gear <- ordered(gear) # değişkenin nominal sıra ölçekli veri tipine dönüştürülmesi
   carb % kbl(caption = "Tanımlayıcı İstatistikler") %>%
  kable_classic(full_width = F, html_font = "Cambria")

Tanımlayıcı İstatistikler Tablosu Alternatifi

cikarma=names(veri1) %in% c("vs", "am", "cyl","gear", "carb") # tanımlayıcı istatistiklerden çıkarılacak nominal değişkenler

stargazer(veri[!cikarma], type = "text",title="Tablo 1: Sürekli Değişkenlerde Tanımlayıcı İstatistikler Tablosu", digits=1, out="table3.html", flip=T)

Vites türüne göre yakıt tüketimleri ve beygir güçleri

Veri setinde ‘mpg’ değişkeni yakıt tüketimini, ‘am’ değişkeni vites tipini ve ‘hp’ değişkeni ise beygir gücünü göstermektedir.


veri1 %>% ggplot(aes(x=mpg, y=hp, col=(am))) + geom_point()+
    facet_wrap(. ~ am, scales="free_y")+
    theme_economist()+
    theme(legend.position = "none")+
    theme(
      strip.text.x = element_text(
        size = 12, color = "black", face = "bold"
        ))
      

Eşitlik yazma

Eşitlik ortalanmak isteniyorsa eşitliğin soluna ve sağına çift dolar işareti ilave edilir. Eşitlik sola yaslanacaksa soluna ve sağına tek dolar işareti eklenir.

$$X_i$$

Büyüktür işareti

$$ x\ge y$$

Kesirli ifade yazımı

$$\frac{2}{3}$$

$$ x = \frac{-b \pm \sqrt{b^2 – 4ac}}{2a} $$

$$ E = mc^2 $$

Tabakalı örneklemede örneklem büyüklüğü formülü

İlgili değişken kesikli ise aşağıdaki eşitlik örneklem büyüklüüğünün hesaplanmasında kullanılır.

$$ n = \frac{Nt^2pq}{d^2(N-1)+t^2pq} $$

Standart sapma

$$\sigma = \sqrt{\frac{\sum\limits_{i=1}^{n} \left(x_{i} – \bar{x}\right)^{2}} {n-1}}$$

Sayı serilerini toplama

$$x_{1} + x_{2} + \cdots + x_{n}$$

$Y = X\beta + \epsilon$,footnotes^[Doğrusal regresyon modellerinde regresyon eşitliğini göstermektedir.].

Çıkarımsal İstatistikler

Modeli kurma ve eşitliklere dönüştürme

# Doğrusal regresyon modeli
model1 <- lm(mpg ~ am + hp, veri1)
# Teorik modeli gösterme
equatiomatic::extract_eq(model1)

model2 <- lm(mpg ~ am + hp+drat + wt, veri1)

Model 1 katsayılarını gösterme

equatiomatic::extract_eq(model1, use_coefs = TRUE,  wrap = TRUE)

Model 2 katsayılarını gösterme

equatiomatic::extract_eq(model2, use_coefs = TRUE,  wrap = TRUE)

Model 1 ve 2 Özeti

İki model karşılaştırıldığında kurulan 2. modelin açıklayıcılığı 1. modele göre daha yüksektir. Diğer bir ifadeyle düzeltilmiş R^2 (Adjusted R2) 1. modelde % yaklaşık % 76,7 iken 2. modelde % 82’dir.

stargazer(model1,model2, type = "text", title="Model Karşılaştırmaları")

Regresyon Model1 Grafikleri

par(mfrow = c(2,2))
plot(model1)

Regresyon Model2 Grafikleri

par(mfrow = c(2,2))
plot(model2)

Yapılan bu R Markdown çalışmasının özellikle veri bilimi (data science) ile ilgilenen akademi ve saha çalışanlarına bir katkı sunacağı düşünülmektedir.

Çalışmaya ve kod bloklarının uygulama sonuçlarına https://rpubs.com/tevfik1461/Markdown linkinde yer verilmiş olup, buradan yukarıda yapılan işlemleri daha iyi takip edebilir, somut rapor çıktısını inceleyebilirsiniz.

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

  1. https://github.com/yixuan/prettydoc/
  2. https://bookdown.org/yihui/rmarkdown-cookbook/equatiomatic.html
  3. https://rmd4sci.njtierney.com/math
  4. Anderson, Daniel, Andrew Heiss, and Jay Sumners. 2021. Equatiomatic: Transform Models into LaTeX Equations. https://github.com/datalorax/equatiomatic.
  5. https://rpruim.github.io/s341/S19/from-class/MathinRmd.html
  6. https://www.rdocumentation.org/packages/datasets/versions/3.6.2/topics/mtcars
  7. https://cran.r-project.org/web/packages/kableExtra/vignettes/awesome_table_in_html.html#Add_header_rows_to_group_columns
  8. https://tevfikbulut.com/2020/07/12/rda-multinominal-lojistik-regresyon-uzerine-bir-vaka-calismasi-a-case-study-on-multinominal-logistic-regression-in-r/
  9. https://cran.r-project.org/web/packages/prettydoc/index.html
  10. https://rmarkdown.rstudio.com/docs/
  11. https://rpubs.com/tevfik1461/Markdown

R Markdown raporunun oluşturulmasında kullanılan kodların tamamı kod bloklarıyla birlikte aşağıdaki linkten pdf formatında indirilebilir.