İçeriğe geç
academia.sh

Ders 21 / 24

Deneyim Ölçütleri

Görev başarımının güven aralığıyla birlikte raporlanması, süre dağılımının çarpıklığı nedeniyle aritmetik ortalamanın yanıltması ve üç ölçütten ağırlıklı bileşik ölçüt üretilmesi.

İçindekiler

Davranış Tasarımı konusu boyunca ölçütü uygulayabilmek için sürekli bir şeye ihtiyaç duyuldu: kullanıcının bilgili tercihini, gerçek görev süresini, yararlı ziyaret oranını bilmeye. Bunların hiçbiri tahminle elde edilmez.

Bu konu ölçmeye ayrılmıştır ve en temel soruyla başlar: bir arayüzün iyi olduğu nasıl gösterilir? Kullanılabilirlik testinden çıkan ham kayıt üç sütun taşır — görev tamamlandı mı, ne kadar sürdü, kaç hata yapıldı. Bu ders o üç sütunun nasıl okunduğunu ve ne zaman yanılttığını ele alır.

Üç Temel Ölçüt

Görev başarımı (task success), görevi tamamlayan katılımcı oranıdır. Tanımın işe yaraması için “tamamlandı”nın önceden yazılmış olması gerekir. Katalog arayüzünde görev “belirli bir cildi bulup ödünç almak” ise başarı ölçütü, doğru cildin ödünç kaydına girmesidir; yanlış cildi ödünç alan katılımcı görevi tamamlamamıştır.

Görev süresi (time on task), göreve başlama ile bitirme arasındaki süredir. Başarısız oturumların süresi başarılı oturumlarınkiyle aynı havuzda toplanmaz: başarısız oturum zaman sınırında kesilmiştir ve gerçek süresi bilinmez.

Hata oranı (error rate), görev boyunca yapılan hatalı eylemlerin sayısıdır. Hata, görevden uzaklaştıran her eylemdir: yanlış süzgeci uygulamak, yanlış kaydı açmak, geri dönmek zorunda kalmak.

Aşağıdaki hesap on dört oturumluk bir kaydı bu üç ölçütle işliyor.

// olcutler.mjs — gorev basarimi, sure ve hata oranindan bilesik olcut

// 14 oturumun ham kaydi: gorev tamamlandi mi, sure (sn), hata sayisi.
// Gorev: katalogda belirli bir cildi bulup odunc almak.
const OTURUMLAR = [
  ["K01", true, 42, 0], ["K02", true, 58, 1], ["K03", false, 180, 3],
  ["K04", true, 37, 0], ["K05", true, 91, 2], ["K06", true, 46, 0],
  ["K07", false, 180, 4], ["K08", true, 63, 1], ["K09", true, 39, 0],
  ["K10", true, 154, 2], ["K11", true, 51, 1], ["K12", false, 180, 2],
  ["K13", true, 44, 0], ["K14", true, 72, 1],
];

const n = OTURUMLAR.length;
const basarili = OTURUMLAR.filter(([, b]) => b);
const basariSayisi = basarili.length;

// ---- 1) Gorev basarimi ve Wilson guven araligi ----
function wilson(k, N, z = 1.96) {
  const p = k / N, d = 1 + z * z / N;
  const merkez = (p + z * z / (2 * N)) / d;
  const yari = (z * Math.sqrt(p * (1 - p) / N + z * z / (4 * N * N))) / d;
  return [merkez - yari, merkez + yari];
}
const [alt, ust] = wilson(basariSayisi, n);
console.log(`gorev basarimi: ${basariSayisi}/${n} = ${(basariSayisi / n * 100).toFixed(1)} %`);
console.log(`Wilson %95 guven araligi: [${(alt * 100).toFixed(1)} %, ${(ust * 100).toFixed(1)} %]`);

// ---- 2) Sure: aritmetik ortalama ile geometrik ortalama ----
const sureler = basarili.map(([, , s]) => s);
const aritmetik = sureler.reduce((a, b) => a + b, 0) / sureler.length;
const geometrik = Math.exp(sureler.reduce((a, s) => a + Math.log(s), 0) / sureler.length);
const sirali = [...sureler].sort((a, b) => a - b);
const ortanca = sirali.length % 2 ? sirali[(sirali.length - 1) / 2]
  : (sirali[sirali.length / 2 - 1] + sirali[sirali.length / 2]) / 2;
console.log(`\nbasarili oturum suresi (${sureler.length} oturum): ${sirali.join(", ")}`);
console.log(`aritmetik ortalama ${aritmetik.toFixed(1)} sn, geometrik ortalama ${geometrik.toFixed(1)} sn, ortanca ${ortanca.toFixed(1)} sn`);
console.log(`ortalamanin ustunde kalan oturum: ${sureler.filter((s) => s > aritmetik).length} / ${sureler.length}`);

// ---- 3) Hata orani ----
const toplamHata = OTURUMLAR.reduce((a, [, , , h]) => a + h, 0);
const hatasiz = OTURUMLAR.filter(([, , , h]) => h === 0).length;
console.log(`\ntoplam hata ${toplamHata}, oturum basina ${(toplamHata / n).toFixed(2)}, hatasiz oturum ${hatasiz}/${n}`);

// ---- 4) Uc olcutu tek sayiya indirgemek ----
// Her olcut once 0-1 araligina getirilir; sure ve hata ters cevrilir.
const SURE_HEDEFI = 40, SURE_TAVANI = 180, HATA_TAVANI = 4;
function oturumSkoru([, b, s, h]) {
  const basari = b ? 1 : 0;
  const sureSkoru = b ? Math.max(0, Math.min(1, (SURE_TAVANI - s) / (SURE_TAVANI - SURE_HEDEFI))) : 0;
  const hataSkoru = Math.max(0, 1 - h / HATA_TAVANI);
  return { basari, sureSkoru, hataSkoru, bilesik: 0.5 * basari + 0.3 * sureSkoru + 0.2 * hataSkoru };
}
console.log("\noturum  basari  sure  hata  sure skoru  hata skoru  bilesik");
for (const o of OTURUMLAR) {
  const s = oturumSkoru(o);
  console.log(
    `${o[0].padEnd(7)} ${(o[1] ? "evet" : "hayir").padEnd(7)} ${String(o[2]).padStart(4)} ${String(o[3]).padStart(5)}` +
    ` ${s.sureSkoru.toFixed(2).padStart(11)} ${s.hataSkoru.toFixed(2).padStart(11)} ${s.bilesik.toFixed(3).padStart(8)}`
  );
}
const bilesikler = OTURUMLAR.map((o) => oturumSkoru(o).bilesik);
const bOrt = bilesikler.reduce((a, b) => a + b, 0) / n;
const bSapma = Math.sqrt(bilesikler.reduce((a, b) => a + (b - bOrt) ** 2, 0) / (n - 1));
console.log(`bilesik olcut: ortalama ${bOrt.toFixed(3)}, standart sapma ${bSapma.toFixed(3)}, %95 aralik +-${(1.96 * bSapma / Math.sqrt(n)).toFixed(3)}`);

// ---- 5) Agirliklarin sonuca etkisi ----
console.log("\nagirlik (basari/sure/hata)  bilesik ortalama  en dusuk oturum");
const AGIRLIKLAR = [[0.5, 0.3, 0.2], [1.0, 0.0, 0.0], [0.34, 0.33, 0.33], [0.2, 0.6, 0.2]];
for (const [wb, ws, wh] of AGIRLIKLAR) {
  const skor = OTURUMLAR.map((o) => {
    const s = oturumSkoru(o);
    return wb * s.basari + ws * s.sureSkoru + wh * s.hataSkoru;
  });
  const ort = skor.reduce((a, b) => a + b, 0) / n;
  const enDusuk = OTURUMLAR[skor.indexOf(Math.min(...skor))][0];
  console.log(`${`${wb} / ${ws} / ${wh}`.padEnd(26)} ${ort.toFixed(3).padStart(16)} ${enDusuk.padStart(15)}`);
}
gorev basarimi: 11/14 = 78.6 %
Wilson %95 guven araligi: [52.4 %, 92.4 %]

basarili oturum suresi (11 oturum): 37, 39, 42, 44, 46, 51, 58, 63, 72, 91, 154
aritmetik ortalama 63.4 sn, geometrik ortalama 57.6 sn, ortanca 51.0 sn
ortalamanin ustunde kalan oturum: 3 / 11

toplam hata 17, oturum basina 1.21, hatasiz oturum 5/14

oturum  basari  sure  hata  sure skoru  hata skoru  bilesik
K01     evet      42     0        0.99        1.00    0.996
K02     evet      58     1        0.87        0.75    0.911
K03     hayir    180     3        0.00        0.25    0.050
K04     evet      37     0        1.00        1.00    1.000
K05     evet      91     2        0.64        0.50    0.791
K06     evet      46     0        0.96        1.00    0.987
K07     hayir    180     4        0.00        0.00    0.000
K08     evet      63     1        0.84        0.75    0.901
K09     evet      39     0        1.00        1.00    1.000
K10     evet     154     2        0.19        0.50    0.656
K11     evet      51     1        0.92        0.75    0.926
K12     hayir    180     2        0.00        0.50    0.100
K13     evet      44     0        0.97        1.00    0.991
K14     evet      72     1        0.77        0.75    0.881
bilesik olcut: ortalama 0.728, standart sapma 0.380, %95 aralik +-0.199

agirlik (basari/sure/hata)  bilesik ortalama  en dusuk oturum
0.5 / 0.3 / 0.2                       0.728             K07
1 / 0 / 0                             0.786             K03
0.34 / 0.33 / 0.33                    0.712             K07
0.2 / 0.6 / 0.2                       0.688             K07

Bir Oran Tek Başına Yanıltır

Görev başarımı 11/14, yani yüzde 78.6. Bu sayı bir raporda tek başına yazıldığında kesinlik izlenimi verir. Wilson güven aralığı gerçeği söylüyor: yüzde 52.4 ile 92.4 arasında.

Aralık, on dört oturumun neyi belirleyip neyi belirlemediğini gösteriyor. Gerçek başarım oranı yüzde 55 de olabilir, yüzde 90 da. Bu genişlikte bir aralık, “arayüz iyi mi” sorusuna yanıt vermez. Yanıt verdiği soru başkadır: arayüz kullanıcıların yarısından fazlasında işe yarıyor mu? Buna evet der.

Buradan iki kural çıkar. Birincisi, oran her zaman güven aralığıyla yazılır; aralıksız bir oran, örneklem büyüklüğünü gizler. İkincisi, küçük örneklemli bir testin işi oran kestirmek değil, sorun bulmaktır. Kullanılabilirlik testi az sayıda katılımcıyla sorunları ortaya çıkarır; oranı hassas ölçmek için gereken katılımcı sayısı çok daha büyüktür.

Aralığın hesabında Wilson yönteminin kullanılması bir ayrıntı değil. Oranın standart hatasına dayanan basit aralık, küçük örneklemlerde ve uçlara yakın oranlarda sınırların dışına taşabilir; Wilson aralığı taşmaz ve küçük örneklemde daha güvenilirdir.

Süre Dağılımı Simetrik Değildir

Başarılı on bir oturumun süreleri 37 ile 154 saniye arasında. Aritmetik ortalama 63.4 saniye. Bu ortalamanın üstünde yalnızca üç oturum var; sekiz oturum altında.

Nedeni dağılımın çarpıklığıdır. Görev süresi aşağıdan sınırlıdır — hiçbir oturum sıfır saniyeden kısa olamaz — ama yukarıdan sınırsızdır. Bir kullanıcı takılırsa süre iki üç katına çıkar. Bu yapıdaki dağılımlarda aritmetik ortalama, birkaç uzun oturum tarafından yukarı çekilir ve “tipik” kullanıcıyı temsil etmez.

Geometrik ortalama 57.6, ortanca 51.0 saniye. Ortanca, oturumların yarısının altında kaldığı süredir ve tek bir uzun oturumdan etkilenmez. Geometrik ortalama, sürelerin logaritmalarının ortalamasıdır; çarpık dağılımlarda merkezi aritmetik ortalamadan daha iyi yakalar ve ortalamanın tersine, oturum sürelerinin oranlarıyla tutarlı davranır.

Kural: süre raporlanırken ortanca ya da geometrik ortalama yazılır, aritmetik ortalama yazılacaksa dağılımın uçları da verilir. Katalog arayüzünde 154 saniyelik oturum bir aykırı değer değil; ödünç akışında gerçek bir takılmanın izidir ve silinmez, ayrıca incelenir.

Bileşik Ölçüt ve Ağırlıkların Sınavı

Üç ölçüt ayrı ayrı raporlandığında karşılaştırma zorlaşır: bir tasarım başarımı yükseltip süreyi uzatıyorsa hangisi iyidir? Bileşik ölçüt bu soruyu yanıtlamak için kurulur.

Kurulum üç adımlıdır. Her ölçüt önce 0–1 aralığına getirilir; süre ve hata “yüksek kötüdür” yönünde olduğu için ters çevrilir; sonra ağırlıklarla toplanır. Süre skoru için 40 saniye hedef, 180 saniye tavan alınmış — bunlar ölçümden değil karardan gelen sayılardır ve raporda yazılmaları gerekir.

Dördüncü tablo bileşik ölçütü oturum oturum veriyor. K10 oturumu görevi tamamlamış (başarı

  1. ama 154 saniye sürmüş; bileşik değeri 0.656. K12 görevi tamamlayamamış ama az hata yapmış; 0.100. Tek bir sayı, üç sütunun taşıdığı bilgiyi sıraya sokuyor.

Son tablo bileşik ölçütün en önemli sınavıdır: ağırlıklar değişirse sonuç değişir mi? Ortalama bileşik değer 0.688 ile 0.786 arasında oynuyor — yüzde 14’lük bir aralık. Yani bileşik ölçütün mutlak düzeyi ağırlıklara bağlıdır ve tek başına anlam taşımaz.

Aynı tabloda değişmeyen bir şey var: dört ağırlıklandırmanın üçünde en düşük oturum K07. Sıralama ağırlıklara karşı daha dayanıklı. Bileşik ölçütün doğru kullanımı budur: iki tasarımı ya da iki oturumu sıralamak için kullanılır, bir eşiğe karşı ölçmek için değil. “Bileşik ölçüt 0.75’in üstünde olsun” biçiminde bir hedef, ağırlıkları seçen kişinin hedefi belirlemesi anlamına gelir.

Bileşik değerin standart sapması 0.380 ve on dört oturumdaki yüzde 95 aralığı ±0.199. Bu genişlik, iki tasarım arasında 0.2’den küçük bir bileşik farkın on dört oturumla ayırt edilemeyeceğini söyler.

Ölçütlerin Birlikte Raporlanması

Ham sayılar bileşikle birlikte verilir. Bileşik ölçüt hangi bileşenin değiştiğini gizler; başarımı düşürüp süreyi kısaltan bir değişiklik bileşikte iyileşme gösterebilir.

Ağırlıklar ve eşikler yazılır. Süre hedefi, süre tavanı, hata tavanı ve üç ağırlık raporun parçasıdır. Yazılmadıklarında bileşik değer denetlenemez.

Başarısız oturumlar süre havuzuna girmez. Zaman sınırında kesilen oturumun süresi ölçülmemiştir; havuza katılırsa süre dağılımını hem yukarı çeker hem de yapay bir tavan üretir.

Sorun listesi ölçütlerin yerine geçmez. Bu ders sayıları ele aldı; sayılar hangi adımın kötü olduğunu söylemez. O soru sonraki dersin konusudur.

Özet

  • Görev başarımı oranı güven aralığıyla yazılır; on dört oturumdaki yüzde 78.6’lık başarım yüzde 52.4–92.4 aralığına karşılık gelir ve oran kestirmeye yetmez.
  • Görev süresi dağılımı sağa çarpıktır; aritmetik ortalamanın üstünde on bir oturumdan yalnızca üçü kaldı, dolayısıyla ortanca ya da geometrik ortalama raporlanır.
  • Başarısız oturumların süresi zaman sınırında kesilmiştir ve süre havuzuna katılmaz.
  • Bileşik ölçüt üç ölçütü 0–1 aralığına getirip ağırlıklarla toplar; hedef, tavan ve ağırlık değerleri ölçümden değil karardan gelir ve raporda yazılır.
  • Bileşik ölçütün mutlak düzeyi ağırlıklara duyarlıdır (0.688–0.786), sıralaması daha dayanıklıdır; bu yüzden karşılaştırma için kullanılır, eşik için değil.
  • Ölçütlerin belirsizliği ölçülür: bileşik değerin yüzde 95 aralığı ±0.199, yani bundan küçük farklar bu örneklemle ayırt edilemez.

Sonraki Adım

Bu ders bir görevin bütününü ölçtü: tamamlandı mı, ne kadar sürdü, kaç hata yapıldı. Ölçmediği şey, tamamlanmayan görevin nerede kaldığı. Üç başarısız oturumun üçü de aynı adımda mı takıldı, yoksa üç ayrı yerde mi? Sonraki ders ödünç alma akışını adımlara bölüp her adımdaki terki ayrı ayrı ölçer, en büyük kaybın hangi adımda olduğunu bulur ve en yüksek terk oranı ile en çok kullanıcı kaybının aynı adım olmayabileceğini gösterir.

İlerlemeni kaydetmek ve not almak için Giriş yap

Notlarım

Not almak için giriş yapmalısın.

Aramak için yazmaya başlayın.

↑↓ Esc gezin · aç · kapat