###Tek Örneklem T Testi
#Bir rehberlik servisi, üniversite öğrencilerinin sınav kaygısı seviyelerini ölçüyor. Literatüre göre genel öğrenci popülasyonunun kaygı ortalaması 45 puandır. Araştırmacı, kendi üniversitesindeki 35 öğrenciden veri toplayarak bu grubun kaygı seviyesinin genel ortalamadan farklı olup olmadığını test etmek istiyor.
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.5.2
## Warning: package 'ggplot2' was built under R version 4.5.2
## Warning: package 'tidyr' was built under R version 4.5.2
## Warning: package 'readr' was built under R version 4.5.2
## Warning: package 'purrr' was built under R version 4.5.2
## Warning: package 'stringr' was built under R version 4.5.2
## Warning: package 'forcats' was built under R version 4.5.2
## Warning: package 'lubridate' was built under R version 4.5.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.6
## ✔ forcats 1.0.1 ✔ stringr 1.6.0
## ✔ ggplot2 4.0.1 ✔ tibble 3.3.0
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.2
## ✔ purrr 1.2.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(lsr)
## Warning: package 'lsr' was built under R version 4.5.2
set.seed(2026)
#set.seed: sonuçların her seferinde aynı çıkması için kullanılır
kaygi_verisi <- data.frame(id = 1:35) %>%
mutate(skor = round(rnorm(n(), mean = 52, sd = 7), 1))
head(kaygi_verisi) #ilk satırları görüntüleme
## id skor
## 1 1 55.6
## 2 2 44.4
## 3 3 53.0
## 4 4 51.4
## 5 5 47.3
## 6 6 34.4
#id = 1:35= 1den 35e kadar öğrenci numarası üretir.
#data.frame()= bu sayıları bir veri çerçevesine dönüştürür.
#mutate(): veri setine skor adına yeni sütun ekler.
#rnorm(n(), 52, 7): ortalam 52, standart sapma 7 olan normal dağılımlı veriler üretir.
#round(....,1)sayıları virgülden sonra 1 basamak yuarlar
shapiro.test(kaygi_verisi$skor)
##
## Shapiro-Wilk normality test
##
## data: kaygi_verisi$skor
## W = 0.95566, p-value = 0.169
#normallık testi
#Shapiro-Wilk testi sonucunda $p > .05$ ($p = .169$) olduğu için verinin normal dağıldığını kabul ederiz.
oneSampleTTest(kaygi_verisi$skor, mu = 45)
##
## One sample t-test
##
## Data variable: kaygi_verisi$skor
##
## Descriptive statistics:
## skor
## mean 51.543
## std dev. 7.132
##
## Hypotheses:
## null: population mean equals 45
## alternative: population mean not equal to 45
##
## Test results:
## t-statistic: 5.427
## degrees of freedom: 34
## p-value: <.001
##
## Other information:
## two-sided 95% confidence interval: [49.093, 53.993]
## estimated effect size (Cohen's d): 0.917
#Üniversite öğrencilerinden toplanan sınav kaygısı verilerinin normal dağılım varsayımını karşılayıp karşılamadığını belirlemek amacıyla yapılan Shapiro-Wilk testi sonucunda; puanların normal dağılımdan anlamlı bir farklılık göstermediği saptanmıştır (W = 0.955, p = .169).
#p-değeri (0.169): Elde edilen p-değeri .05 anlamlılık düzeyinden
büyük olduğu için (p > .05), “veriler normal dağılmaktadır”
şeklindeki yokluk hipotezi reddedilememiştir.bizim eşik değerimiz .05
ama test sonucunda p<.001 demiş yani bu farkın şasn eseri olma
ihtimali çok düşük demek. bu yüzden istatistiksel bir fark vardır
diyerek yokluk hipotezini reddederiz. #t-değeri t=5.91 t değeri 0dan ne
kadar uzaklaşırsa fark o kadar belirhin olur. yani benım grubumun kaygı
seviyesinin ortalaması popülasyona göre oldukca yüksektir.
#güven aralığı: aralık 49.09 ile 53.99 bizim değerimiz 45ti yani bu
aralığın dışında kalıyor. bir değer guven aralığının dışında kalıyorsa
bu durum farkın anlamlı oldugunun kanıtını göstermiş oluyor. #etki
büyüklüğü: Genel kabul gören sınırlara göre; 0.2 küçük, 0.5 orta ve 0.8
büyük bir etkidir. Yani bizim değerimiz 0.917 olduğu için etk, büyüklüğü
çok büyüktür. yani öğrencilerin kaygı seviyesi istatistiksel bir hata
değildir.