Dersi nasıl yürütmeli? (90 dakika)
- 00–10 · Tanılama: önceki haftadan iki tahmin, dosya yolu ve R ortamı.
- 10–25 · Kavram ve veri sözlüğü: her değişkenin anlamı/birimi.
- 25–45 · Canlı R: önce tahmin, sonra kod, sonra çıktı açıklaması.
- 45–65 · Öğrenci bağımsız TODO alıştırmaları; öğretmen yalnız ipucu verir.
- 65–80 · Hata ayıklama, istatistiksel sınırlılık ve ters örnek.
- 80–90 · Üç soruluk çıkış bileti ve bir sonraki ödev.
Derse başlamadan kontrol
- RStudio çalışma dizini: ilk dört haftada data/ içeren paket kökü; 5–6. hafta betikleri bağımsızdır.
- Gerekli paket: base R; dplyr/ggplot2 bağlantıları özgün Moodle'e göre ek açıklama gerektirir.
- Öğrenci önce TODO betiğini dener; öğretmen çözümü ikinci ekranda açar.
- RStudio'da satır satır Run ile ilerle; son satırdaki PASS yalnız yerel assert testidir.
- Dağılım–ilişki–nedensellik ve örneklem–anakütle sınırlarını her derste sor.
- Yazdır / Print ile bu sayfanın çevrimdışı kopyasını PDF olarak kaydetmek mümkün.
R ile tanışma ve veri çerçevesi
Öğrenci Console–Script ayrımını yapar; nesne, vektör, indeks, CSV ve veri çerçevesi üzerinde temel işlemleri açıklayabilir.
Derste beklenen çıktı ve yorum
Beklenen sabit kontroller: 7+5=12; 3×(4+2)=18; x uzunluğu 4, ortalaması 9, ikinci eleman 8, x>8 için 10 ve 12. Kurmaca veri 12 satırdır; yaş ortalaması ≈21,17.
Canlı gösterim önerisi
Önce öğrenciden x[2] ve x[x>8] sonuçlarını çalıştırmadan tahmin etmesini iste. Ardından p ve p$age ayrımını göster.
R betiği: satır satır açıklama
Aşağıdaki kodlar açık, bağımsız öğretmen çözüm betiğinin işlem satırlarıdır. Çok satıra yayılan çağrılarda devam satırı ayrı açıklanır.
| R kodu | Tam olarak ne yapıyor? |
|---|---|
01print(7+5) | print() hesaplanan sonucu Console'a yazar; 7+5=12. |
02print(3*(4+2)) | Parantez içindeki 4+2 önce hesaplanır; sonra 3 ile çarpılır ve 18 elde edilir. |
03x <- c(6,8,10,12) | c() dört sayıyı tek bir numeric vektörde toplar; <- bu vektörü x nesnesine atar. |
04print(length(x)) | length() eleman sayısını döndürür; burada 4'tür, değerlerin toplamı değildir. |
05print(mean(x)) | mean() aritmetik ortalamayı verir; (6+8+10+12)/4 = 9. |
06print(x[2]) | Köşeli parantez konumla seçimdir; R'de ikinci eleman x[2] = 8. |
07print(x[x>8]) | x>8 her eleman için TRUE/FALSE üretir; mantıksal indeksleme yalnızca 10 ve 12'yi seçer. |
08p <- read.csv("data/participants.csv") | CSV'yi data.frame olarak p'ye yükler. Çalışma dizini data/ klasörünün üstü olmalıdır. |
09print(head(p)) | head(p) varsayılan ilk altı satırı gösterir; veri tiplerini tek başına doğrulamaz. |
10str(p) | str(p) satır/sütun yapısını ve her sütunun R sınıfını inceler. |
11print(nrow(p)) | nrow(p) gözlem/satır sayısını döndürür; beklenen 12 sentetik kayıttır. |
12print(mean(p$age)) | $age p veri çerçevesinden yaş sütununu seçer; mean() bunun aritmetik ortalamasını verir. |
13print(aggregate(age~intervention,p,mean)) | age~intervention formülü yaş ortalamasını gruplara göre hesaplatır; yalnızca betimsel özet oluşturur. |
14plot(seq_len(nrow(p)),p$age,pch=19,xlab="Fictional row",ylab="Age",main="Synthetic participants") | seq_len(nrow(p)) 1–12 satır indeksidir; pch=19 dolu noktalar çizer, xlab/ylab birimleri ve eksenleri adlandırır. |
15stopifnot(length(x)==4L,mean(x)==9,nrow(p)==12L) | stopifnot() koşulların hepsinin TRUE olmasını bekler; başarısızsa hata verip akışı durdurur. |
16cat("W1 PASS: 12 synthetic participants, no external packages\n") | cat() kontrol mesajını yazdırır; bu mesajın kendisi gerçek araştırma doğrulaması değildir. |
Öğrencinin düşebileceği tuzak
R indeksleri 1'den başlar; p$age bir sütun vektörüdür; grafik satır sırasını gösterir, deney ya da nedensellik kanıtlamaz.
Çıkış kontrolü
Öğrenci: ‹read.csv() ne döndürür?›, ‹str() neyi kontrol eder?›, ‹12 kişiden evrene genelleyebilir miyiz?› sorularını yanıtlar.
Veri birleştirme ve eşleştirilmiş değişim
İki anahtarlı birleştirme, ön/son ölçümlerin ayrılması, eşleştirilmiş fark ve grup özetlerini kurar.
Derste beklenen çıktı ve yorum
22 ölçüm satırı ve 12 katılımcı vardır. On kişide iki ölçüm de bulunduğundan 10 çift oluşur. Ortalama eşleştirilmiş AHI farkı +2,9 puandır; A grubu +3, B grubu +2,75 (tamamen kurgusal).
Canlı gösterim önerisi
Öğrenciye neden yalnız id üzerinden join yapmak her veri setinde güvenli değildir diye sor; pre/post için 0/1 kodlarını teyit ettir.
R betiği: satır satır açıklama
Aşağıdaki kodlar açık, bağımsız öğretmen çözüm betiğinin işlem satırlarıdır. Çok satıra yayılan çağrılarda devam satırı ayrı açıklanır.
| R kodu | Tam olarak ne yapıyor? |
|---|---|
01participants <- read.csv("data/participants.csv") | Katılımcı kimlik ve grup etiketlerini CSV'den yükler; id tek başına tekillik varsayımı olarak alınmamalıdır. |
02scores <- read.csv("data/scores.csv") | Tekrarlı ölçümleri okur: her satır bir kişi-zaman noktası olabilir. |
03stopifnot(all(scores$occasion %in% c(0,1))) | %in% ile occasion değerlerinin yalnız 0 ya da 1 olduğunu kontrol eder; bu kurgusal dosya için geçerlidir. |
04combined <- merge(scores,participants,by=c("id","intervention")) | merge(...,by=c('id','intervention')) iki değişkenin birlikte eşleşmesini ister; yanlış grup eşleşmelerini önler. |
05before <- combined[combined$occasion==0,c("id","intervention","ahiTotal")] | occasion==0 olan satırları ve gerekli üç sütunu seçer; virgülün sol tarafı satır, sağı sütun filtresidir. |
06after <- combined[combined$occasion==1,c("id","intervention","ahiTotal")] | occasion==1 son ölçümlerini ayrı veri çerçevesine ayırır. |
07names(before)[3] <- "pre" | Üçüncü sütun adı olan ahiTotal'ı pre yapar; içeriği değiştirmez. |
08names(after)[3] <- "post" | Son ölçüm sütununu post diye adlandırır; sonraki join'de ad çakışmasını önler. |
09paired <- merge(before,after,by=c("id","intervention")) | Aynı id+intervention çiftinde hem pre hem post olan kayıtları tutar; eksik takipli kişiler dışarıda kalır. |
10paired$delta <- paired$post-paired$pre | post-pre kişiye özgü değişimdir; pozitif değer artış gösterir ancak etki/nedensellik kanıtlamaz. |
11print(paired) | Oluşan eşleşmiş tabloyu gösterir; her satırın bir kişiye karşılık geldiği kontrol edilir. |
12print(nrow(paired)) | nrow(paired) tamamlanmış çiftleri sayar; bu örnekte 10'dur, toplam katılımcı sayısı değil. |
13print(mean(paired$delta)) | Eşleştirilmiş farkların aritmetik ortalamasını hesaplar; kurgusal çıktı 2,9'dur. |
14print(aggregate(delta~intervention,paired,mean)) | Gruplara göre ortalama farkları özetler; gruplar randomize edilmiş değildir. |
15stopifnot(nrow(paired)==10L,nrow(combined)==22L) | 22 ham ölçüm ve 10 eşleşmiş çift koşulunu denetler; varsayımlar değişirse test de güncellenmelidir. |
16cat("W2 PASS: matched 10/12 synthetic records\n") | cat() sentetik test özetini basar; gerçek veri güvenilirliğini kanıtlamaz. |
Öğrencinin düşebileceği tuzak
Özgün kaynak veri sözlüğünde occasion 0=pretest, 1=posttest, 2=follow-up; bazı uygulama ipuçları farklı. İki ortalamanın farkı ile bireysel eşleştirilmiş fark aynı yöntem değildir. Nedensellik çıkarılmaz.
Çıkış kontrolü
İki anahtar ne işe yaradı? 12 kişiden neden 10 eşleştirilmiş kayıt kaldı? Eksik takip ölçümleri seçilim yanlılığı yaratabilir mi?
AQ-benzeri puanlama ve özetleme
Wide veriyi long biçime dönüştürür; soru biçimi ve puanlama anahtarını eşleştirip doğru ikili puanları özetler.
Derste beklenen çıktı ve yorum
Kurgusal dosyada 8 kişi × 10 soru = 80 yanıt vardır. S01–S08 için toplamlar: 6, 4, 5, 4, 6, 3, 7, 4; ortalama 4,875; örnek SD ≈1,356. Bunlar yalnızca programlama örnek çıktılarıdır, klinik sınıflama değildir.
Canlı gösterim önerisi
Bir sorunun F ve R anahtarlarında puanı nasıl değişir? Önce iki satırı elle puanlat, ardından reshape ve merge ile otomatikleştir.
R betiği: satır satır açıklama
Aşağıdaki kodlar açık, bağımsız öğretmen çözüm betiğinin işlem satırlarıdır. Çok satıra yayılan çağrılarda devam satırı ayrı açıklanır.
| R kodu | Tam olarak ne yapıyor? |
|---|---|
01aq <- read.csv("data/aq10.csv",check.names=FALSE) | check.names=FALSE Q1…Q10 sütun adlarını aynen korur; geniş biçimde her satır kişi, her soru sütundur. |
02formats <- read.csv("data/aq_formats.csv") | Her soru için F/R yönlendirme etiketlerini ayrı lookup tablosundan okur. |
03scoring <- read.csv("data/aq_scoring.csv") | F/R ve Agree/Disagree kesişimlerinden 0/1 üreten ikinci lookup'ı okur. |
04items <- paste0("Q",1:10) | paste0('Q',1:10) Q1'den Q10'a sütun isimlerini otomatik üretir. |
05long <- reshape(aq,varying=items,v.names="response", | reshape() geniş 10 soru sütununu tek response sütununa açmaya başlar; id diğer sütun olarak korunur. |
06timevar="question",times=items,direction="long") | timevar/times 'question' alanına Q1…Q10 etiketlerini yazar; direction='long' satır sayısını artırır. |
07rownames(long) <- NULL | Genişten uzuna dönüşümün ürettiği satır adlarını temizler; katılımcı id değerlerini silmez. |
08long <- merge(long,formats,by="question") | question üzerinde birleştirerek her yanıtın soru yönünü F ya da R olarak ekler. |
09long$agrees <- grepl("Agree",long$response,fixed=TRUE) | grepl('Agree',response,fixed=TRUE) dizge içinde Agree geçen yanıtları TRUE yapar; örnek kontrollü etiket varsayar. |
10long$response_kind <- ifelse(long$agrees,"Agree","Disagree") | ifelse() TRUE için Agree, FALSE için Disagree sınıfını üretir. |
11long <- merge(long,scoring,by=c("format","response_kind")) | İkinci merge format + response_kind anahtarlarıyla ikili score sütununu getirir; eksik eşleşme sayısını kontrol etmek gerekir. |
12totals <- aggregate(score~id,long,sum) | aggregate(score~id,long,sum) her kişinin on adet 0/1 puanını toplar. |
13print(totals) | Kişi kimlikleri ile hesaplanmış toplamlarını basar; klinik etiket oluşturmaz. |
14print(mean(totals$score)) | Kurgusal sekiz toplamın aritmetik ortalamasını hesaplar. |
15print(sd(totals$score)) | sd() sekiz toplamın örnek standart sapmasını (n−1 paydası) hesaplar. |
16stopifnot(nrow(totals)==8L,all(totals$score>=0),all(totals$score<=10)) | 8 kişi ve 0–10 aralığı denetlenir; ayrıca 80 ham long satır ve her id için on soru sayısı da tartışılmalıdır. |
17cat("W3 PASS: 8 original fictional AQ-like screening totals\n") | cat() öğrenme örneğinin kontrol mesajıdır; tanı doğruluğunu teyit etmez. |
Öğrencinin düşebileceği tuzak
Bu kodun grepl('Agree', ...) ayrımı yalnız sağlanan örnek yanıt dizeleri için uygundur; gerçek serbest metinle kullanma. Tarama toplamı klinik tanı değildir.
Çıkış kontrolü
Neden önce soru biçimi, sonra score tablosu ekleniyor? 80 satır yerine 79 satır çıkarsa hangi join'i kontrol edersin?
Veri görselleştirme ve grafik okuryazarlığı
Doğru grafik türünü seçer, eksenleri etiketler, dağılım ve ilişkiyi betimsel yorumlar.
Derste beklenen çıktı ve yorum
12 kurgusal ATSQ kaydı arka plan bilgisiyle id üzerinden birleştirilir. Grup ortalamaları: Coding=Yes 2,38; Coding=No ≈3,114. Histogram dağılımı, scatter yaş–skor ilişkisini, boxplot ise grup medyan ve çeyreklerini gösterir; kutu bu ortalamalar değildir.
Canlı gösterim önerisi
Öğrenciye grafik çizilmeden önce 'hangi soruya yanıt arıyoruz?' diye sor. Standart boxplot'un medyan ve IQR gösterdiğini doğrulat.
R betiği: satır satır açıklama
Aşağıdaki kodlar açık, bağımsız öğretmen çözüm betiğinin işlem satırlarıdır. Çok satıra yayılan çağrılarda devam satırı ayrı açıklanır.
| R kodu | Tam olarak ne yapıyor? |
|---|---|
01atsq <- read.csv("data/atsq.csv") | Kurgusal skor toplamlarını CSV'den okur; tek veri kaynağı henüz demografik bilgi içermez. |
02background <- read.csv("data/background.csv") | Yaş ve Coding gibi açıklayıcı sütunları ayrı CSV'den getirir. |
03d <- merge(atsq,background,by="id") | id anahtarındaki inner join yalnız iki dosyada da bulunan kişileri korur. |
04print(head(d)) | head(d) ilk altı birleştirilmiş kaydı hızlı gözden geçirmeye yarar. |
05hist(d$atsqTotal,breaks=5,main="Synthetic ATSQ totals", | hist() tek nicel değişkenin frekans dağılımını çizer; breaks=5 yaklaşık bin seçimini etkiler. |
06xlab="Illustrative score") | xlab eksende ölçülen kavramı belirtir; birim bilinmiyorsa uydurulmaz. |
07plot(d$age,d$atsqTotal,pch=19,xlab="Age",ylab="Synthetic ATSQ score") | plot(x,y) iki nicel değişkeni noktalarla gösterir; pch=19 dolu daire simgesidir. |
08boxplot(atsqTotal~Coding,data=d,xlab="Prior coding", | atsqTotal~Coding ile kategorik gruplara göre skor dağılımının kutu grafiğini kurar. |
09ylab="Synthetic ATSQ score",main="Distribution by coding") | ylab ve main, grup karşılaştırmasının eksenini ve başlığını tanımlar. |
10print(aggregate(atsqTotal~Coding,d,mean)) | aggregate() gruba göre ortalama verir; boxplot'un kutusunun ortalamayı gösterdiği anlamına GELMEZ. |
11stopifnot(nrow(d)==12L,all(is.finite(d$atsqTotal))) | nrow(d)=12 ve tüm skorların sonlu sayı olması basit veri kalitesi kontrolüdür. |
12cat("W4 PASS: 12 synthetic matched records\n") | Öğrenme örneğinin kontrol mesajını basar; grafik yorumunu otomatik olarak doğrulamaz. |
Öğrencinin düşebileceği tuzak
Boxplot ortalama±SD değildir. Scatterplot sebep-sonuç kurmaz; ATSQ'nin gerçek psikolojik ölçek anlamı bu kurgusal dosyadan çıkmaz.
Çıkış kontrolü
Neden yaş-skor için histogram değil scatter? Boxplot'un kutusu neyi gösteriyor? n=12 sınırlılığı nedir?
Örnekleme, SD, SE ve simülasyon — geçici
Örneklemdeki bireysel saçılmayı (SD) ile ortalama tahmininin örneklemeye bağlı değişkenliğini (SE) ayırır; tekrar örnekleme simülasyonu uygular.
Derste beklenen çıktı ve yorum
12 kurmaca yanıt süresi için ortalama 606,75 ms; örnek SD ≈10,332 ms; SE ≈2,983 ms. n=4 ve n=10 simülasyonlarının dağılımlarını kıyaslamak mümkündür; sayısal simülasyon çıktısı R sürümü ve tohumla yeniden üretilebilir.
Canlı gösterim önerisi
Önce 'hangisi katılımcı farklılığını, hangisi ortalamanın belirsizliğini anlatıyor?' diye sor. Dağılımları yan yana göster ve büyük n için simülasyon saçılımını kıyaslat.
R betiği: satır satır açıklama
Aşağıdaki kodlar açık, bağımsız öğretmen çözüm betiğinin işlem satırlarıdır. Çok satıra yayılan çağrılarda devam satırı ayrı açıklanır.
| R kodu | Tam olarak ne yapıyor? |
|---|---|
01rt_ms <- c(620,610,590,605,615,600,625,595,608,612,598,603) | c() ile 12 kurmaca tepki süresini ms cinsinden vektöre koyar. |
02n <- length(rt_ms) | length() toplam gözlem sayısını verir: n=12. |
03mean_rt <- mean(rt_ms) | mean() ortalama süreyi verir: 606,75 ms. |
04sd_rt <- sd(rt_ms) | sd() örnek standart sapmasını n−1 düzeltmesiyle hesaplar: yaklaşık 10,332 ms. |
05se_rt <- sd_rt / sqrt(n) | sd/sqrt(n) bağımsız, aynı dağılımlı gözlemler varsayımında ortalamanın tahmini standart hatasıdır: yaklaşık 2,983 ms. |
06print(c(n=n, mean_ms=mean_rt, sd_ms=sd_rt, se_ms=se_rt)) | c() istatistikleri isimlendirilmiş küçük bir özet vektörüne toplar; print() konsola verir. |
07stopifnot(n==12L, is.finite(se_rt), se_rt>0) | stopifnot() n=12 ve SE'nin sonlu/pozitif olması koşullarını kontrol eder. |
08set.seed(46) | set.seed(46) simülasyonun tekrar çalıştırıldığında aynı rastgele diziyi üretmesini sağlar. |
09means_n4 <- replicate(1000, mean(sample(rt_ms, 4, replace=TRUE))) | replicate(1000,...) örneklemden tekrar yerine koyarak 4 değer alır, bunların ortalamasını 1000 kez biriktirir. |
10means_n10 <- replicate(1000, mean(sample(rt_ms, 10, replace=TRUE))) | Aynı işlem bu kez 10 değerle yapılır; genelde ortalama simülasyonlarının yayılımı daralır. |
11par(mfrow=c(1,2)) | par(mfrow=c(1,2)) grafik penceresini bir satır iki sütuna böler. |
12hist(means_n4, main="Resample size = 4", xlab="Mean RT (ms)") | n=4 yeniden örnekleme ortalamalarının histogramıdır; bireysel ham süre histogramı DEĞİLDİR. |
13hist(means_n10, main="Resample size = 10", xlab="Mean RT (ms)") | n=10 simüle edilmiş ortalamaları çizer; x ekseni yine ms birimindedir. |
14par(mfrow=c(1,1)) | par(mfrow=c(1,1)) grafik düzenini tek panele geri alır. |
15print(c(sd_n4=sd(means_n4),sd_n10=sd(means_n10))) | sd(means_n4) ve sd(means_n10), simülasyonla elde edilen örneklem ortalamaları saçılımını kıyaslar. |
16means_n12 <- replicate(1000, mean(sample(rt_ms, n, replace=TRUE))) | n=12 ile yeniden örneklenmiş 1000 ortalama üretir; gözlenen 12 elemanlı ortalama için aynı n kullanılmalıdır. |
17print(quantile(means_n12,c(.025,.975))) | quantile(...,.025,.975) n=12 bootstrap ortalamalarının yüzdelik aralığını verir; yöntem ve örneklem varsayımları olmadan güvenilir popülasyon CI sayılamaz. |
18stopifnot(length(means_n4)==1000L, all(is.finite(means_n12))) | Simülasyonların uzunluğunu ve sonlu sayı koşulunu denetler. |
19cat("WEEK 5 WORKED EXAMPLE PASS\n") | cat() açıklayıcı test mesajıdır; bir istatistiksel bulgu değildir. |
Öğrencinin düşebileceği tuzak
set.seed() temsiliyet sağlamaz; yalnız rastgele sayı dizisinin tekrarlanabilirliğini sağlar. n=10 yeniden örnekleme dağılımı n=12 örneklem ortalaması için doğrudan yüzde 95 güven aralığı değildir. Bu yüzden percentile CI için n=12 ayrıca üretilir; yine de güvenilir evren çıkarımı değildir.
Çıkış kontrolü
SD ile SE hangi birimde? sample(...,replace=TRUE) ne yapar? Aynı örneklemden bootstrap neden temsil sorununu çözmez?
Hipotez testi, p-değeri ve güven aralığı — geçici
H₀: μ=600 ms karşısında çift yönlü H₁ kurar; tek örneklem t-testini çalıştırır; p-değeri ile güven aralığını sınırlılıklarıyla açıklar.
Derste beklenen çıktı ve yorum
Kurgusal t-testi: n=12, ortalama 606,75 ms, df=11, t≈2,263, iki taraflı p≈0,0448 ve %95 güven aralığı yaklaşık [600,185; 613,315] ms. Bu, bilimsel anlamlı bir etki veya temsili örneklem göstermez.
Canlı gösterim önerisi
Öğrenciden p≈0,045'i H₀'ın yanlış olma olasılığı olarak yorumlamamasını iste. Sonra güven aralığının 600 değerini nasıl dışladığını ve bunun hangi varsayımlara dayandığını tartış.
R betiği: satır satır açıklama
Aşağıdaki kodlar açık, bağımsız öğretmen çözüm betiğinin işlem satırlarıdır. Çok satıra yayılan çağrılarda devam satırı ayrı açıklanır.
| R kodu | Tam olarak ne yapıyor? |
|---|---|
01rt_ms <- c(620,610,590,605,615,600,625,595,608,612,598,603) | Hafta 5 ile aynı 12 kurmaca yanıt süresi vektörüdür; karşılaştırmada tutarlı veri kullanılır. |
02reference_mu <- 600 # arbitrary teaching benchmark, not a research claim | 600 ms yalnızca öğretim amacıyla seçilmiş kıyas değeridir; araştırma hipotezinden türetilmemiştir. |
03result <- t.test(rt_ms, mu=reference_mu, alternative="two.sided") | t.test(x,mu=600,alternative='two.sided') H₀: μ=600 için çift taraflı tek örneklem t-testi yapar ve CI hesaplar. |
04print(result) | print(result) test istatistiğini, df, p-değeri, %95 CI ve ortalama tahminini bütün olarak basar. |
05print(c(estimate_ms=unname(result$estimate), t=unname(result$statistic), p=result$p.value)) | $estimate örneklem ortalaması; $statistic t değeri; $p.value p-değeridir. unname() iç adı çıkartır. |
06print(result$conf.int) | $conf.int alt ve üst güven sınırlarını ms cinsinden döndürür; tek gözlenen aralığa %95 olasılık atamaz. |
07stopifnot(result$parameter == length(rt_ms)-1, result$p.value>=0, | Serbestlik derecesi n−1 olmalıdır; p-değeri 0–1 aralığındadır. |
08result$p.value<=1, length(result$conf.int)==2L) | stopifnot() ifadesinin devam satırıdır: p geçerliliği ve CI'da iki sınır bulunması koşulunu tamamlar. |
09cat("WEEK 6 WORKED EXAMPLE PASS\n") | cat() betiğin kontrol mesajını yazdırır; sonucun geçerliliği tasarım ve varsayımlara ayrıca bağlıdır. |
Öğrencinin düşebileceği tuzak
Tek örneklem t-testinde bireysel gözlemlerin bağımsızlığı ve ortalama için uygun örnekleme varsayımları önemlidir; n=12 küçük örneklemdir. p<0,05 tek başına araştırma değeri ya da nedensellik göstermez.
Çıkış kontrolü
H₀/H₁ yaz. p-değeri neyin olasılığı? %95 güven aralığını tekrarlanan örneklemler üzerinden açıkla.
Ek kontrol ve değerlendirme
Bağımsız eğitmen rubriği: veri ve araştırma sorusunu açıklama (2), doğru R kodu (3), hata/eksik değer ve join denetimi (2), istatistiksel yorum ve sınır (2), tekrar üretilebilirlik (1). Toplam 10 puan; UCL'nin resmî notlandırması değildir.
Kodların açıklamaları depodaki özgün öğretmen betikleriyle eşleştirildi. Sayısal ana sonuçlar bağımsız hesaplamayla kontrol edildi; bu çalışma ortamında R yorumlayıcısı çalıştırma testi yapılmış değildir.
UCL 5. hafta Moodle bölüm adresi: section.php?id=1502829. Giriş gerektiren içerik okunamadı; 5–6. hafta başlıkları yeniden uyarlanabilir.