Çözüldü Popülasyon Oranı İçin Büyük Örnek Testi - Programlama

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

Yüklüyor...
  1. Honore

    Honore Yönetici Yönetici

    Mesajlar:
    11.194
    Beğenileri:
    652
    Cinsiyet:
    Bay
    Meslek:
    Müh. (Elk./Bilg.)
    Popülasyon Varyansı Bilinmediğinde Popülasyon Ortalamasının Anlamlılık Testidir.

    Bir toplumda erkekler arasında sigara içenlerin oranının %60 olduğu bilinmektedir. Sigara içenlerde akciğer kanserine daha sık rastlanılıp rastlanmadığını incelemek isteyen bir araştırıcı akciğer kanseri olan hastalar arasından rastgele seçtiği 200 erkekten 140'ının sigara içtiğini saptamıştır. Acaba sigara içenlerdeki akciğer kanseri oranının daha sık mı görüldüğünü α = 0,01 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ü, 2. Baskı, 1986, Sayfa 164 - 186'teki Örnek 3
    (Problemin kitaptaki anlatımı biraz değiştirildi.)

    Kontrol edilecek hipotez H0 : p = 0,60 olarak yazılabilir. Araştırılmak istenen, bu oranın artıp artmadığı olduğundan alternatif
    hipotez H1 : p > 0,60 şeklindedir.
    Örnekten elde edilen sigara içme oranı p̂ = 140 / 200 = 0,70
    Standart Hata:
    [​IMG]
    https://i72.servimg.com/u/f72/19/97/10/39/lagrid44.png
    olan normal dağılış gösterir ve z = (p̂ - P0) / [ P0·(1 - P0) / N ]^0,5 ile hesaplanan test istatistiği standart normal dağılıştadır.
    (1 - 0,01) - 0,5 = 0,49 değeri z Tablosunda arandığında sol tarafta 2,3 ve üstteki 0,03 değerlerinin kesişiminde olduğundan kritik değer 2,33'tür.
    (https://www.zscorecalculator.com/critical-value/ adresinde "Righ-tailed" durumunda daha hassas olarak 2,3263 bulunur.)

    Örnekten hesaplanan test istatistiği ise z = (0,70 - 0,60) / 0,0346 = 2,89 > 2,33 yani kritik değerden büyük olduğu için red bölgesine düşer ve H0 sıfır hipotezi reddedilir. Akciğer kanseri olan hastalarda sigara içme oranı normal toplumda olduğundan daha fazladır.

    Fortran Çözümü:
    [​IMG]
    https://i72.servimg.com/u/f72/19/97/10/39/z_hipo10.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 199 - 201 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
    !
    ! Popülasyon Varyansı Bilinmediğinde Popülasyon Ortalamasının Anlamlılık Testi
    !
    ! Bir toplumda erkekler arasında sigara içenlerin oranının %60 olduğu bilinmektedir. Sigara içenlerde akciğer kanserine
    ! daha sık rastlanılıp rastlanmadığını incelemek isteyen bir araştırıcı akciğer kanseri olan hastalar arasından rastgele
    ! seçtiği 200 erkekten 140'ının sigara içtiğini saptamıştır. Acaba sigara içenlerdeki akciğer kanseri oranının daha sık mı
    ! görüldüğünü α = 0,01 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ü, 2. Baskı, 1986,
    ! Sayfa 164 - 186'teki Örnek 3
    !
    ! (Problemin kitaptaki anlatımı biraz değiştirildi.)
    
    program z_dagilimi
    implicit none
    
    integer         :: N = 200               ! Örnek Sayısı
    integer         :: k                     ! Serbestlik Derecesi (N > 30 olduğundan aslında z testinde gereksizdir.)
    real            :: P0 = 0.60             ! Populasyonun Bilinen Oranı
    real            :: P_sapka = 140.0 / 200 ! Örnekte Gözlenme Oranı
    real            :: n1                    ! Örnek Sayısının Gerçel Değeri
    real(kind = 8)  :: SH                    ! Örnek Oranının Standart Hatası
    real(kind = 8)  :: ZI                    ! Test İstatistiği
    real(kind = 8)  :: z0                    ! ABS(TI)
    real(kind = 8)  :: tD                    ! z Dağılımı Fonksiyonuyla Hesaplanan Değer
    real(kind = 8)  :: p                     ! Hesaplanan Olasılık
    real, parameter :: z_Tablo = 2.33        ! α = 0.01 için z tablo değeri
    
    k = N - 1; n1 = REAL(N); SH = SQRT(P0*(1 - P0) / N)
    ZI = (P_sapka - P0) / SH; z0 = ABS(ZI); p = tD(z0, k)
    
    write(6, 10)"Hesaplanan Test Istatistigi = ", ZI
    write(6, 10)"Ornegin Standart Hatasi = ", SH
    write(6, 10)"P Olasiligi (Tek Yonlu) = ", 1 - p
    write(6, 10)"P Olasiligi (Iki Yonlu) = ", 2*(1 - p )
    
    if (z0 > z_Tablo) then
       write(6, 15)"H0 : P0 = 0.60 Sifir hipotezi reddedilir."
       write(6, 15)"Akciger kanseri olan hastalarda sigara icme orani normal &
    &toplumda oldugundan fazla."  
    else  
       write(6, 15)"H0 : P0 = 0.60 Sifir hipotezi reddedilemez. Akciger &
    &kanseri olan hastalarda sigara icme oraninın istatistiksel yonden &
    &toplumda oldugundan fazla oldugu soylenemez."
    endif
    
    10 format(/,3x,a,f11.6,/)
    15 format (/,3x,a)
    
    end
    !
    real(kind = 8) function tD(z0, k)
    implicit none
    integer, intent(in)        :: k
    real(kind = 8), intent(in) :: z0
    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(z0 / 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: Popülasyon Oranı
    Forum Başlık Tarih
    Akademik Soru Çözümleri ve Kaynakları İki Populasyon Ortalamasının Farkı İçin Küçük Örnek Testi - Programlama Cumartesi 17:17
    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
    Ivır Zıvır Sorular - Sohbet (Trivial Questions - Chat) Dairede Alanlar Oranı - Pisagor Teoremi 3 Mayıs 2026
    Limit ve Süreklilik,Türev,İntegral Değişim Oranı - Türev - İntegral - Logaritmik Denklem 12 Nisan 2026

Sayfayı Paylaş