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.
- mpg:Mil/(ABD) galon
- cyl:Silindir sayısı
- disp:Displacement (m.in.)
- hp:Brüt beygir gücü
- drat:Arka aks oranı
- wt:Ağırlık (1000 lbs)
- qsec: 1/4 mil zaman
- vs:Motor (0 = V şeklinde, 1 = düz)
- am:Şanzıman (0 = otomatik, 1 = manuel)
- 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
- https://github.com/yixuan/prettydoc/
- https://bookdown.org/yihui/rmarkdown-cookbook/equatiomatic.html
- https://rmd4sci.njtierney.com/math
- Anderson, Daniel, Andrew Heiss, and Jay Sumners. 2021. Equatiomatic: Transform Models into LaTeX Equations. https://github.com/datalorax/equatiomatic.
- https://rpruim.github.io/s341/S19/from-class/MathinRmd.html
- https://www.rdocumentation.org/packages/datasets/versions/3.6.2/topics/mtcars
- https://cran.r-project.org/web/packages/kableExtra/vignettes/awesome_table_in_html.html#Add_header_rows_to_group_columns
- https://tevfikbulut.com/2020/07/12/rda-multinominal-lojistik-regresyon-uzerine-bir-vaka-calismasi-a-case-study-on-multinominal-logistic-regression-in-r/
- https://cran.r-project.org/web/packages/prettydoc/index.html
- https://rmarkdown.rstudio.com/docs/
- 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.