Çözüldü İki Populasyon Ortalamasının Farkı İçin Küçük Örnek Testi - Programlama

Konusu 'Akademik Soru Çözümleri ve Kaynakları' forumundadır ve Honore tarafından 13 Haziran 2026 başlatılmıştır.

Yüklüyor...
  1. Honore

    Honore Yönetici Yönetici

    Mesajlar:
    11.489
    Beğenileri:
    652
    Cinsiyet:
    Bay
    Meslek:
    Müh. (Elk./Bilg.)
    Bir kuş populasyonunda erkeklerle dişilerin vücut ağırlıklarının ayni olup olmadığını kontrol için 10 erkek kuş ile 9 dişi kuş rastgele seçilip vücut ağırlıkları (gram) ölçülerek veriler aşağıda gösterilmiştir:
    Kod:
                         Örnek Büyüklüğü         Ortalama          Varyans
                         ---------------         --------          -------
    Erkek Kuşlar              10                  90.80             55.2
    Dişi Kuşlar                9                  81.52             66.2
    Bu örneğin, belirtilen popülasyondan rastgele çekilmiş olup olmadığını 0.05 yanılma olasılığıyla test ediniz.

    Not: Referans verilen iki kitapla uyum için ondalık işareti olarak "nokta" kullanıldı.
    İki örnekten ayrı ayrı hesaplanan varyanslar gerçekte erkek ve diş kuş populasyonlarına ilişkin varyansların eşitliğinin gerçekte birbirinden bağımsız iki tahmini olduğu için birleştirilerek (σ1)^2 = (σ2)^2 = σ^2 varyansının ortak bir tahmini bulunur:
    s^2 = [ (n1 - 1)·(s1)^2 + (n2 - 1)·(s2)^2 ] / (n1 + n2 - 2)
    s^2 = [ (10 - 1)·55.2 + (9 - 1)·66.2 ] / (10 + 9 - 2)
    s^2 = 60.38
    Kuşların ortalama vücut ağırlıkları için kurulan hipotezler;
    H0 : µ1 - µ2 = 0
    H1 : µ1 - µ2 ≠ 0
    Standart Hata = [ s^2·(1 / n1 + 1 / n2) ]^0.5 = [ 60.38·(1 / 10 + 1 / 9) ]^0.5 = √12.747 ≈ 3.57
    Test İstatistiği: t = (x1 - x2 - 0) / Standart Hata = (90.80 - 81.52 - 0) / 3.57 ≈ 2.60
    H1 nedeniyle iki yönlü test yapıldığı için 0.05 / 2 = 0.025 olduğundan 10 + 9 - 2 = 17 serbestlik derecesi ile
    https://www.stat.purdue.edu/~lfindsen/stat503/t-Dist.pdf adresindeki tablodan bakılan kritik değer 2.110 ve örnekten gidilerek hesaplanan 2.60 > 2.110 olduğundan red bölgesine düşülerek H0 sıfır hipotezi reddedilir ve iki cinsiyetin arasında vücut ağırlıkları bakımından istatistiksel açıdan anlamlı bir fark vardır.

    "İstatistiğe Giriş", Doç.Dr. Halis Püskülcü, Doç.Dr. Fikret İkiz, Ege Üniversitesi Mühendislik Fakültesi
    Bilgisayar Bilimleri Mühendisliği Bölümü, 1986, Sayfa 175 - 179'daki örnek

    Fortran Çözümü:
    [​IMG]
    https://i72.servimg.com/u/f72/19/97/10/39/kuslar10.png

    Program:
    Kod:
    ! "Basic Programlama ve İstatistiksel Yöntemler", Dr. Osman Saraçbaşı, Dr. Ergun Karaağaoğlu, Dr. Osman Saka
    ! Hacettepe Üniversitesi, TIP Fakültesi, Biyoistatistik Bilim Dalı Öğretim Görevlileri" tarafından yazlmış Eylül 1986
    ! tarihli kitabın 201 - 203 no.lu sayfalarında gösterilen Basic dilindeki programın GOTO ve GOSUB deyimleri kaldırılıp
    ! olabildiğince yapısallaştırıldıktan sonra gerekli açıklamaları da verilerek yazılmış Fortran versiyonu
    !
    ! İki Populasyon Ortalamasının Farkı İçin Küçük Örnek Testi
    !
    ! Bir kuş populasyonunda erkeklerle dişilerin vücut ağırlıklarının ayni olup olmadığını kontrol için 10 erkek kuş ile
    ! 9 dişi kuş rastgele seçilip vücut ağırlıkları (gram) ölçülerek veriler aşağıda gösterilmiştir:
    !
    !                     Örnek Büyüklüğü         Ortalama          Varyans
    !                     ---------------         --------          -------
    ! Erkek Kuşlar              10                  90.80             55.2
    ! Dişi Kuşlar                9                  81.52             66.2
    !
    ! Bu örneğin, belirtilen popülasyondan rastgele çekilmiş olup olmadığını 0.05 yanılma olasılığıyla test ediniz.
    !
    ! "İstatistiğe Giriş", Doç.Dr. Halis Püskülcü, Doç.Dr. Fikret İkiz, Ege Üniversitesi Mühendislik Fakültesi
    ! Bilgisayar Bilimleri Mühendisliği Bölümü, 1986, Sayfa 175 - 179'daki örnek
    !
    
    program t_dagilimi
    implicit none
    
    integer         :: n1 = 10, n2 = 9            ! Örnek Sayıları
    integer         :: SD, k                      ! Serbestlik Derecesi ve yardımcı değişken
    real(kind = 8)  :: x1 = 90.8, S1_kare = 55.2  ! Erkek kuşların ağırlık ortalaması ve varyansı
    real(kind = 8)  :: x2 = 81.53, S2_kare = 66.2 ! Dişi kuşların ağırlık ortalaması ve varyansı
    real(kind = 8)  :: H1, H2, TI, SH             ! H! ve H2 yardımcı değişkenler, TI: Test İstatistiği, SH: Standart Hata
    real(kind = 8)  :: t0                         ! ABS(TI) (Test istatistiğinin mutlak değeri)
    real(kind = 8)  :: tD                         ! t Dağılımı fonksiyonuyla hesaplanan değer
    real(kind = 8)  :: p                          ! Hesaplanan olasılık
    real, parameter :: t_Tablo = 2.110            ! α = 0.05 ve 10 + 9 - 2 = 17 Serbestlik Derecesi için t tablo değeri
    
    SD = n1 + n2 - 2
    H1 = S1_kare / n1; H2 = S2_kare / n2; SH = SQRT(H1 + H2)
    TI = (x1 - x2) / SH; t0 = ABS(TI); k = SD
    p = tD(t0, k)
    
    write(6, 10)"Serbestlik Derecesi: ",SD
    write(6, 20)"Hesaplanan Test Istatistigi = ", TI
    write(6, 20)"Ornegin Standart Hatasi (TL) = ", SH
    write(6, 20)"P Olasiligi (Tek Yonlu) = ", 1 - p
    write(6, 20)"P Olasiligi (Iki Yonlu) = ", 2*(1 - p )
    
    if (t0 > t_Tablo) then
       write(6, 25)"H0 hipotezi reddedilir cunku iki kus cinsiyetinin &
    &arasinda vucut agirliklari    bakimindan fark vardir"
       write(6, 25)"Secilen ornekler, populasyonu temsil etmiyor."
    else
       write(6, 25)"H0 hipotezi reddedilemez çünkü iki kuş cinsiyetinin &
    & arasinda vücut ağırlıkları bakimindan fark yoktur ve populasyon &
    & ortalamalari arasindaki farklilik istatistiksel yonden anlamli degil."
    endif
    
    10 format(/,3x,a, i2,/)
    20 format(3x,a,f11.6,/)
    25 format(/,3x,a)
    
    end
    !
    real(kind = 8) function tD(t0, k)
    implicit none
    integer, intent(in)        :: k
    real(kind = 8), intent(in) :: t0
    real(kind = 8)             :: a1 = 0.36338023 ! Kitaptaki programda verilen ve sebebi yazılmamış olan sabit değer
    real(kind = 8)             :: w, s, c, t1, t, p
    integer                    :: w1, j1, j2, k2, i
    
    w = ATAN(t0 / SQRT(REAL(k))); s = SIN(w); c = cos(w); w1 = k - 2*INT(k / 2)
    
    if (w1 == 0) then
       t1 = s
    
       if (k == 2) then
          p = 0.5*(1 + t1); tD = p; return
       else 
          t = s; j1 = -1; j2 = 0; k2 = (k - 2) / 2
          do i = 1, k2
             j1 = j1 + 2; j2 = j2 + 2
             t = t*c**2*REAL(j1) / j2; t1 = t1 + t
          enddo
          t1 = t1*(1 - a1*w1); p = 0.5*(1 + t1); tD = p; return
       endif
    
    else
       t1 = w
    
       if (k == 1) then
          t1 = t1*(1 - a1*w1); p = 0.5*(1 + t1); tD = p; return
       else
          t = s*c; t1 = t1 + t
          if (k == 3) then
             t1 = t1*(1 - a1*w1); p = 0.5*(1 + t1); tD = p; return
          else
             j1 = 0; j2 = 1; k2 = (k - 3) / 2
             do i = 1, k2
                j1 = j1 + 2; j2 = j2 + 2
                t = t*c**2*REAL(j1) / j2; t1 = t1 + t
             enddo
             t1 = t1*(1 - a1*w1); p = 0.5*(1 + t1); tD = p; return
          endif
       endif
    
    endif
    
    end function
     
    : Fortran

  2. Benzer Konular: Populasyon Ortalamasının
    Forum Başlık Tarih
    Akademik Soru Çözümleri ve Kaynakları Popülasyon Oranı İçin Büyük Örnek Testi - Programlama 6 Haziran 2026
    Akademik Soru Çözümleri ve Kaynakları Popülasyon Ortalaması İçin Küçük Örnek Testi - t Dağılışı - Programlama 27 Ekim 2022
    Akademik Soru Çözümleri ve Kaynakları İstatiksel Tahminleme - Popülasyon Ortalaması - Örnek Büyüklüğü - Güven Seviyesi 14 Mart 2021

Sayfayı Paylaş