📌 Aşağıda 5 soru bulunmaktadır. İlk 4 soruyu ders notlarınızdan faydalanarak yapabilirsiniz. Sadece dosyayı yayınlarken hata aldığınız durumlarda hata kodunu anlamak için yapay zekadan destek alabilirsiniz. Tüm soruları yapay zekaya yaptırdığınız tespit edilirse sınavınız geçersiz sayılacaktır.

📌 Son soru 30 puan değerinde olup kendi deneyimlerinizden yola çıkarak yanıtlayabileceğiniz bir sorudur. Farklı sınav kağıtlarında birbirinin aynısı yanıtlar tespit edilmesi durumunda ilgili öğrencilerin sınavları geçersiz sayılacaktır.

📌 Sınavınızı 29 Kasım 2025 Cumartesi günü saat 11’e kadar Rpubs hesaplarınızda yayınlamanız gerekmektedir. Teslim tarihinden geç yayınlanan dosyalar değerlendirmeye dahil edilmeyecektir.

Soruları yanıtlamak için aşağıdaki paketleri etkinleştirin:

  • dplyr

  • MASS

  • lsr

survey veri seti, bir grup üniversite öğrencisinden toplanmış bilgiler içerir. Değişkenler arasında yaş, cinsiyet, boy, nabız, egzersiz sıklığı gibi psikolojik ve fizyolojik özellikler vardır. Bu veri seti University of Adelaide öğrencilerinden toplanmış bir anket çalışmasından gelir. Veri seti 237 gözlem ve 12 değişkenden oluşur.

Soru 1: Bu veri setini etkinleştirerek Sex (cinsiyet)“,”Age (yaş)“,”Pulse (nabiz)” ve “Exer (egzersiz)”, “Height (boy)”, “Smoke (sigara) değişkenlerini seçin. Seçtiğiniz bu değişkenlerden oluşan veri setini veri_1 olarak isimlendirin.

Soru 1.1: veri_1 veri setindeki değişkenlerin isimlerini Türkçeleştirin ve bu veri setini veri_2 olarak isimlendirin.

Soru 1.2: veri_2’nin ilk 10 satırını görüntüleyin.

Soru 2: veri_2 veri setindeki kategorik değişkenlerin etiketlerini (örn. never, some, heavy) Türkçeleştirin ve bu veri setini veri_3 olarak isimlendirin.

Soru 3: veri_3 veri setindeki eksik değerleri sorgulayın. Eksik değer varsa çıkarın ve gözlem sayısındaki farkı açıklayın. Veri setinin son halini veri_son olarak isimlendirin.

Soru 4: veri_son için yas, nabiz ve boy değişkenlerinin

  • min

  • max

  • 1st quarter

  • 3rd quarter

  • mean

  • median

değerlerini açıklayın.

Soru 4.1: Egzersiz sıklığına göre ortalama nabzı hesapladığınız bir tablo oluşturun. Bu tablodaki değerlerin açıklamasını yazın.

Soru 4.2: veri_son için yas değişkenine ait mod, medyan ve aritmetik ortalama değerlerini hesaplayın.

Soru 5: Günlük yaşamınızda veri toplayarak analiz etmek isteyebileceğiniz bir durum düşünün (sosyal medya kullanım süresi, kahve tüketimi, sınav kaygısı…). Bu durumu kısaca açıklayın.

Bu durumla ilgili

  • kimlerden veri toplayabileceğinizi,

  • veri topladığınız kişilerden hangi bilgileri almanın anlamlı olacağını,

  • toplayacağınız bilgiler kapsamında değişkenlerin türlerini

açıklayın.

  • Topladığınız verileri göz önünde bulundurarak frekans tablosu oluşturabileceğiniz üç değişken tanımlayın.

  • Topladığınız verileri göz önünde bulundurarak min, max, quarters, mod, median, mean değerlerini hesaplayabileceğiniz üç değişken tanımlayın.

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(MASS)
## 
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
## 
##     select
library(lsr)
data(survey)
veri_1 <- survey %>%
  dplyr::select(Sex, Age, Pulse, Exer, Height, Smoke)

#
head(veri_1)
##      Sex    Age Pulse Exer Height Smoke
## 1 Female 18.250    92 Some 173.00 Never
## 2   Male 17.583   104 None 177.80 Regul
## 3   Male 16.917    87 None     NA Occas
## 4   Male 20.333    NA None 160.00 Never
## 5   Male 23.667    35 Some 165.00 Never
## 6 Female 21.000    64 Some 172.72 Never
veri_2 <- veri_1 %>%
  rename(
    Cinsiyet = Sex,
    Yas = Age,
    Nabiz = Pulse,
    Egzersiz = Exer,
    Boy = Height,
    Sigara = Smoke
  )

#
head(veri_2)
##   Cinsiyet    Yas Nabiz Egzersiz    Boy Sigara
## 1   Female 18.250    92     Some 173.00  Never
## 2     Male 17.583   104     None 177.80  Regul
## 3     Male 16.917    87     None     NA  Occas
## 4     Male 20.333    NA     None 160.00  Never
## 5     Male 23.667    35     Some 165.00  Never
## 6   Female 21.000    64     Some 172.72  Never
head(veri_2, 10)
##    Cinsiyet    Yas Nabiz Egzersiz    Boy Sigara
## 1    Female 18.250    92     Some 173.00  Never
## 2      Male 17.583   104     None 177.80  Regul
## 3      Male 16.917    87     None     NA  Occas
## 4      Male 20.333    NA     None 160.00  Never
## 5      Male 23.667    35     Some 165.00  Never
## 6    Female 21.000    64     Some 172.72  Never
## 7      Male 18.833    83     Freq 182.88  Never
## 8    Female 35.833    74     Freq 157.00  Never
## 9      Male 19.000    72     Some 175.00  Never
## 10     Male 22.333    90     Some 167.00  Never
veri_3 <- veri_2 %>%
  mutate(
    Cinsiyet = recode(Cinsiyet,
                      "Male" = "Erkek",
                      "Female" = "Kadin"),
    Egzersiz = recode(Egzersiz,
                      "freq" = "Sik",
                      "none" = "Hic",
                      "some" = "Bazen"),
    Sigara = recode(Sigara,
                    "never" = "Hic icmem",
                    "occas" = "Ara sira",
                    "regular" = "Duzenli",
                    "heavy" = "Cok")
  )

#
head(veri_3)
##   Cinsiyet    Yas Nabiz Egzersiz    Boy Sigara
## 1    Kadin 18.250    92     Some 173.00  Never
## 2    Erkek 17.583   104     None 177.80  Regul
## 3    Erkek 16.917    87     None     NA  Occas
## 4    Erkek 20.333    NA     None 160.00  Never
## 5    Erkek 23.667    35     Some 165.00  Never
## 6    Kadin 21.000    64     Some 172.72  Never
# 1. Eksik değerleri sorgulama: Başlangıç gözlem sayısı
baslangic_gozlem <- nrow(veri_3)
cat("veri_3 (başlangıç) gözlem sayısı:", baslangic_gozlem, "\n")
## veri_3 (başlangıç) gözlem sayısı: 237
# Eksik değerleri sütun bazında kontrol etme
na_sayisi_sutun <- colSums(is.na(veri_3))
cat("\nSütunlardaki eksik değer (NA) sayıları:\n")
## 
## Sütunlardaki eksik değer (NA) sayıları:
print(na_sayisi_sutun)
## Cinsiyet      Yas    Nabiz Egzersiz      Boy   Sigara 
##        1        0       45        0       28        1
# 2. Eksik değerleri çıkarma
veri_son <- na.omit(veri_3)

# 3. Son gözlem sayısı
son_gozlem <- nrow(veri_son)
cat("\nveri_son (eksik değerler çıkarıldıktan sonra) gözlem sayısı:", son_gozlem, "\n")
## 
## veri_son (eksik değerler çıkarıldıktan sonra) gözlem sayısı: 170
# 4. Fark
fark <- baslangic_gozlem - son_gozlem
cat("\nGözlem sayısındaki fark:", fark)
## 
## Gözlem sayısındaki fark: 67

Gözlem Sayısındaki Farkın Açıklaması

veri_3 veri setinde toplam 237 gözlem bulunuyordu. Sütunlara baktığımızda özellikle Nabiz ve Boy değişkenlerinde eksik değerler (NA) olduğunu gördük.na.omit(veri_3) fonksiyonunu kullandığımızda, seçtiğimiz değişkenlerden herhangi birinde en az bir eksik değere sahip olan tüm satırlar veri setinden çıkarıldı (Listwise Deletion).Bu işlem sonucunda, veri setinden 67 fark adet satır çıkarılmış ve son veri setimiz veri_son’un gözlem sayısı 170’e düşmüştür. Bu fark, analize dahil edilen değişkenlerdeki toplam eksik gözlem sayısından kaynaklanmaktadır.

# İstenen metrikleri içeren tablo
tanimlayici_istatistikler <- veri_son %>%
  summarise(
    # Yas
    Yas_min = min(Yas),
    Yas_max = max(Yas),
    Yas_Q1 = quantile(Yas, 0.25),
    Yas_Q3 = quantile(Yas, 0.75),
    Yas_mean = mean(Yas),
    Yas_median = median(Yas),

    # Nabiz
    Nabiz_min = min(Nabiz),
    Nabiz_max = max(Nabiz),
    Nabiz_Q1 = quantile(Nabiz, 0.25),
    Nabiz_Q3 = quantile(Nabiz, 0.75),
    Nabiz_mean = mean(Nabiz),
    Nabiz_median = median(Nabiz),

    # Boy
    Boy_min = min(Boy, na.rm = TRUE),
    Boy_max = max(Boy, na.rm = TRUE),
    Boy_Q1 = quantile(Boy, 0.25, na.rm = TRUE),
    Boy_Q3 = quantile(Boy, 0.75, na.rm = TRUE),
    Boy_mean = mean(Boy, na.rm = TRUE),
    Boy_median = median(Boy, na.rm = TRUE)
  )

print(tanimlayici_istatistikler)
##   Yas_min Yas_max Yas_Q1 Yas_Q3 Yas_mean Yas_median Nabiz_min Nabiz_max
## 1  16.917  70.417 17.667 20.167 20.46377     18.583        35       104
##   Nabiz_Q1 Nabiz_Q3 Nabiz_mean Nabiz_median Boy_min Boy_max Boy_Q1 Boy_Q3
## 1    66.25       80   73.91765           72     152     200    165    180
##   Boy_mean Boy_median
## 1 172.5198        171

Değerlerin Açıklaması:

Min (Minimum) ve Max (Maksimum): Veri setindeki en küçük ve en büyük değeri gösterir. Örneğin, öğrencilerin en küçük yaşı r tanimlayici_istatistikler\(Yas_min ve en büyük yaşı r tanimlayici_istatistikler\)Yas_max’tır.

Mean (Aritmetik Ortalama): Değişkenin değerlerinin toplamının gözlem sayısına bölünmesiyle elde edilen merkezi eğilim ölçüsüdür. Örneğin, öğrencilerin ortalama nabzı yaklaşık r round(tanimlayici_istatistikler$Nabiz_mean, 2)’dir.

Median (Ortanca): Veriler küçükten büyüğe sıralandığında tam ortada kalan değerdir. Verinin %50’si bu değerden küçük, %50’si büyüktür. Aykırı değerlerden ortalamaya göre daha az etkilenir.

1st Quarter (Birinci Çeyreklik - Q1): Verinin %25’inin bu değerden küçük olduğu noktadır. Örneğin, öğrencilerin %25’inin yaşı r tanimlayici_istatistikler$Yas_Q1’den küçüktür.

3rd Quarter (Üçüncü Çeyreklik - Q3): Verinin %75’inin bu değerden küçük olduğu noktadır. Örneğin, öğrencilerin %75’inin nabzı r tanimlayici_istatistikler$Nabiz_Q3’ten küçüktür.

nabiz_tablosu <- veri_son %>%
  group_by(Egzersiz) %>%
  summarise(
    Ortalama_Nabiz = mean(Nabiz),
    Gözlem_Sayisi = n()
  )

print(nabiz_tablosu)
## # A tibble: 3 × 3
##   Egzersiz Ortalama_Nabiz Gözlem_Sayisi
##   <fct>             <dbl>         <int>
## 1 Freq               71.4            86
## 2 None               75.9            14
## 3 Some               76.6            70

Tablodaki Değerlerin Açıklaması:

Bu tablo, öğrencilerin egzersiz yapma sıklığına göre nabız ortalamalarını göstermektedir.

Hic: Hiç egzersiz yapmadığını belirten r nabiz_tablosu\(Gözlem_Sayisi[nabiz_tablosu\)Egzersiz == “Hic”] öğrencinin ortalama nabzı r round(nabiz_tablosu\(Ortalama_Nabiz[nabiz_tablosu\)Egzersiz == “Hic”], 2)’dir.

Bazen: Bazen egzersiz yaptığını belirten r nabiz_tablosu\(Gözlem_Sayisi[nabiz_tablosu\)Egzersiz == “Bazen”] öğrencinin ortalama nabzı r round(nabiz_tablosu\(Ortalama_Nabiz[nabiz_tablosu\)Egzersiz == “Bazen”], 2)’dir.

Sik: Sık egzersiz yaptığını belirten r nabiz_tablosu\(Gözlem_Sayisi[nabiz_tablosu\)Egzersiz == “Sik”] öğrencinin ortalama nabzı r round(nabiz_tablosu\(Ortalama_Nabiz[nabiz_tablosu\)Egzersiz == “Sik”], 2)’dir.

Bu sonuçlara bakarak, düzenli egzersiz yapan grupta (Sik) ortalama nabzın, egzersiz yapmayan veya daha az yapan gruplara göre daha düşük veya farklı olup olmadığını yorumlayabiliriz. (Örneğin, sık egzersiz yapanların nabzının daha düşük olması beklenir.)

# Mode fonksiyonunu kendimiz tanımlıyoruz
get_mode <- function(v) {
   uniqv <- unique(v)
   uniqv[which.max(tabulate(match(v, uniqv)))]
}

burada cptden yardım aldım mode fonksiyonunu kendim tanımlamam gerkiyormuş yoksa lsr paketinde artık mode fonksiyonu yokmuş sürüm farkından dolayı

# Soru 4.2'deki kod bloğu
# ... (Ortalama ve Medyan kodları)

# Mod (Mode)
# lsr paketi yerine kendi tanımladığımız fonksiyonu kullanıyoruz
yas_mod <- get_mode(veri_son$Yas) 

cat("Yas Değişkeni İstatistikleri:\n")
## Yas Değişkeni İstatistikleri:
# ... (Diğer cat komutları)
cat("Mod (Mode):", yas_mod, "\n")
## Mod (Mode): 17.5

Soru 5: Halı Kalitelerinin Analiz Edilmesi Durumun Açıklaması Bu veri toplama çalışmasında amaç, Bursa’nın farklı ilçelerindeki halıcılarda satılan halıların kalitesini belirleyen objektif ve sübjektif faktörleri incelemektir. Halıların temel fiziki özelliklerini (malzeme, düğüm sıklığı) ile piyasa değerini (fiyat) ve satışa sunulduğu konum/ilçe bilgisini kapsayan bir veri seti oluşturulması planlanmaktadır.

Bu Durumla İlgili Kimlerden Veri Toplanabilir? Hedef Kitle: Bursa’nın farklı sosyo-ekonomik yapıya sahip ilçelerindeki (Örn: Osmangazi, Nilüfer, Yıldırım) halı mağazaları ve halı üreticileri. Her ilçeden seçilen halıların özellikleri kaydedilecektir.

Veri Topladığımız Kişilerden Hangi Bilgileri Almak Anlamlı Olacaktır? Halı Türü: Niteliksel farklılıkları görmek (El dokuması, Makine halısı, Kilim, vb.).

Halıda Kullanılan Temel Malzeme: Kalite ve maliyeti belirleyen ana faktör (Yün, İpek, Akrilik, Pamuk, vb.).

Metrekare Başına Düğüm Sıklığı: Halının yoğunluğunu ve dolayısıyla işçilik/kalite düzeyini ölçmek.

Satış Fiyatı (TL/m²): Halının piyasa değerini ölçmek.

Dayanıklılık Derecesi Algısı: Sübjektif kalite değerlendirmesi (Halıcıya/uzmana sorulacak 1-5 arası puan).

Satışın Yapıldığı İlçe: Konumsal değişken (fiyatlandırma ve tercih farklılıklarını görmek için).

Toplayacağımız Bilgiler Kapsamında Değişkenlerin Türleri Halı Türü: Nitel / Nominal (Kategorik, sırasız)

Temel Malzeme: Nitel / Nominal (Kategorik, sırasız)

Metrekare Başına Düğüm Sıklığı: Nicel / Kesikli (Sayılabilir, tam sayı)

Satış Fiyatı (TL/m²): Nicel / Sürekli (Ölçülebilir, küsuratlı değer alabilir)

Dayanıklılık Derecesi Algısı: Nitel / Sıralı (Ordinal) (Kategorik, sıralı: Çok Düşük → Çok Yüksek)

Verilerin Analizi İçin Değişken Tanımları Frekans Tablosu Oluşturabileceğiniz Üç Değişken Frekans tablosu, kategorik değişkenlerin veya sınırlı sayıdaki kesikli değişkenlerin dağılımını gösterir.

Halı Türü: (Hangi tür halıların piyasada en çok bulunduğu/satıldığı görülür.)

Temel Malzeme: (Halı üretiminde en çok kullanılan ana hammaddelerin dağılımı görülür.)

Dayanıklılık Derecesi Algısı: (Uzmanlarca verilen kalite puanlarının (1-5) dağılımı görülür.)

Min, Max, Quarters, Mod, Medyan, Mean Değerlerini Hesaplayabileceğiniz Üç Değişken Bu istatistikler yalnızca Nicel (sayısal) değişkenler için anlamlıdır.

Satış Fiyatı (TL/m²): (Halıların ortalama piyasa değeri, en ucuz/pahalı fiyatları ve fiyat dağılımı hesaplanır.)

Metrekare Başına Düğüm Sıklığı: (Halıların ortalama işçilik yoğunluğu, en düşük ve en yüksek düğüm sıklıkları hesaplanır.)

Halı Boyutu (m²): (Eğer toplanırsa, halıların ortalama büyüklüğü, en küçük ve en büyük boyutları hesaplanır.)