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.)