Soru #1

  • rnorm() fonksiyonu kullanarak bir elemanlı bir “x” vektörü oluşturunuz.

  • rnorm() fonksiyonunu ortalama ve standard sapma için olağan değerleri ile kullanınız.

  • Oluşturdunuz vektörün elemanı 1’den büyükse ekranda/konsolda “1’den büyük”, -1 ile +1 arasındaysa(bu iki sayı dahil değil)…

  • “x” nesnesini ekrana yazdırarak komutun doğruluğunu kontrol ediniz.

x <- rnorm(1)
if(x>1){
  print("1'den buyuk")
}else if(x>=-1){
  print("-1 ile 1 arasında")
}else{
  print("-1'den kucuk")
}
## [1] "-1 ile 1 arasında"
x
## [1] 0.6368813

Soru #2

  • rnorm() fonksiyonu kullanarak beş elemanlı ortalaması 1, standard sapması 0 olan bir “x” vektörü oluşturunuz.

  • Oluşturduğunuz “x” vektörünün tüm elemanları 0’dan büyük ise konsolda “vektörün tüm elemanları 0’dan büyüktür”… komutlarını oluşturnuz.

  • Vektörün özelliklerini değiştirerek komut satırını tekrar çalıştırmayı deneyin.

x <- rnorm(5,1,0)
if(all(x>0)){
  print("vektörün tüm elemanları 0'dan büyüktür")
} else{
  print("vektörün tüm elemanları 0'dan büyük değildir")
}
## [1] "vektörün tüm elemanları 0'dan büyüktür"
x
## [1] 1 1 1 1 1
x <- rnorm(500)
if(all(x>0)){
  print("tum sayilar 0'dan buyuktur")
} else{
  print("tum sayilar 0'dan buyuk degildir")
}
## [1] "tum sayilar 0'dan buyuk degildir"
head(x)
## [1]  1.0214742  0.5238482 -0.5717871 -1.2634265  1.4979819 -1.4144465

Soru #3

  • 11 öğrencinin bir dersten aldıkları vize, final notları ve 14 haftalık derse devamları ile ilgili vektörler aşağıda verilmiştir.
vize <- c(60,70,80,90,55)
final <- c(45,65,70,50,80)
devam <- c(14,10,13,12,11)
  • Ders sorumlusu finalden 50 ve üzeri alan ve en az 11 derse devam eden öğrencilerin geçme notlarının final puanlarının %60’ının ve vize puanlarının %40’ının…

  • Geçme notu 50 ve üzerin için “geçti”…komut satırlarını oluşturunuz.

vize <- c(60,70,80,90,55)
final <- c(45,65,70,50,80)
devam <- c(14,10,13,12,11)


gecme_not <- ifelse(final>50 & devam>10,final*0.6 + vize*0.4,0)
       ifelse(gecme_not>=50,"geçti","kaldi")
## [1] "kaldi" "kaldi" "geçti" "kaldi" "geçti"

Soru #4

  • ortak_na(x,y) adında argümanlı bir fonksiyon oluşturunuz.

  • Oluşturduğunuz fonksiyon sadece girdiğiniz vektör uzunlukları ile aynı olduğunda çalışıp, olmadığında hata mesajı…

  • Vektör uzunlukları aynı olduğunda ise, her iki vektörde aynı sırada olan kayıp veri sayısını göstersin.

  • Farklı fonksiyonlar oluşturarak komutu test edin.

x <- c(NA, NA, NA,NA)
y <- c( 1, NA, NA, NA)
       
ortak_na <- function(x, y){
# koşulun yazımı
if (length(x) != length(y)) {
# hata mesajı
  stop("x ve  y aynı uzunlukta olamalıdır", call. = FALSE)
         }  
         sum(is.na(x) & is.na(y))
       }

ortak_na(x, y)
## [1] 3
x <- c(NA, NA, NA,1)
y <- c( 1, NA, NA, NA)
ortak_na(x, y)
## [1] 2

Soru #5

  • rnorm(N,ort,stds) fonksiyonu N elemanına sahip, ortalaması ort, standard sapması sdts olan normal bir dağılım üretir.

a. Belirtilen rnorm() fonksiyonu kullanarak elde ettiğiniz dağılımın ortalamasını hesaplayan”orneklem_1” adlı bir fonksiyon oluşturunuz.

b. Bu fonksiyonu kullanarak set.seed(10) ile ortalaması 5, standard sapması 1 olan 100 elemana sahip dağılımın ortalamasını gösteriniz.

orneklem1 <- function(N, ort, stds){
  ortalama <- mean(rnorm(N,ort,stds))
  return(ortalama)
}

set.seed(10)
orneklem1(100,5,1)
## [1] 4.863451

Soru #6

  • “orneklem1” fonksiyonu evrenden seçilen bir örnekleme ilişkin ortalamayı belirtmektedir. Evrenden birden fazla örneklem seçilmek istenirse artık tek bir örneklem yerine örneklem dağılımı elde edilir. Bu bakımdan fonksiyona örneklem dağılımı oluşturmak için “iterasyon” argümanı eklenmelidir. Böylece iterasyon sayısı kadar örneklem seçilebilir.

a. Belirtilen “örneklem1” fonksiyonunu, iterasyon sayısını da ekleyecek şekilde for() döngüsü kullanarak “orneklem2” adıyla güncelleyiniz.

b. “orneklem2” fonksiyonunda örneklem dağılımının ortalamasını ve standard sapmasını liste biçiminde gösteriniz.

c. Elde ettiğiniz fonksiyonu kullanarak set.seed(10) ile ortalaması 5, standard sapması 1 olan, 100 elemana sahip 20 adet dağılımın ortalamasını ve standard sapmasını gösteriniz. Simüle etmek istediğiniz değerler ile simülasyon sonrası elde ettiğiniz değerleri karşılaştırınız.

d. Elde ettiğiniz fonksiyonu kullanarak set.seed(10) ile ortalaması 5, standard sapması 1 olan, 100 elemana sahip 300 adet dağılımın ortalamasını ve standard sapmasını gösteriniz. Simüle etmek istediğiniz değerler ile simülasyon sonrası elde ettiğiniz değerleri karşılaştırınız.

orneklem2 <- function(N, ort, stds, iteras){
  orn.dagilimi <- array()
   for(i in 1:iteras){
    orn.dagilimi[i] <- mean(rnorm(N,ort,stds))
  }
list(ort= mean(orn.dagilimi), std_sapma = sd(orn.dagilimi))
}

set.seed(100)
orneklem2(100,5,1,20)
## $ort
## [1] 5.010476
## 
## $std_sapma
## [1] 0.1059907
orneklem2(100,5,1,300)
## $ort
## [1] 4.995027
## 
## $std_sapma
## [1] 0.09411284

Soru #7

  • Bir öğretmen yaptığı sınav sonrası öğrencilerin başarı notlarını hesaplamıştır. Elde edilen başarı notları önce z puanına sonra da T puanına dönüştürmek istemektedir. Her puan dönüşümüne ait eşitlikler aşağıda verilmiştir.

\[ z=\frac{Q-µ}{σ} \]

\[ T = 50 + 10.z \]

a. set.seed(10) ile sample() fonksiyonunu kullanarak 1 ile 100 arasında 60 adet sayıyı içeren “notlar” nesnesi oluşturun.

b. Yukarıdaki formülleri kullanarak aynı fonksiyon içinde hem z hem de T puanını hesaplayan puan_donusumu()fonksiyonunu oluşturun.

c. Elde edilen fonksiyonda her bir başarı notunun z ve T puanları ile, z ve T puanlarının ortalamalarını da listeleyiniz.

set.seed(10)
notlar <- sample(1:100, 60)

puan_donusumu <- function(x){
  z_puan <- (x-mean(x))/sd(x)
  t_puan <- 50+(10*z_puan)
list(z_puan= z_puan, t_puan = t_puan, z_ort=mean(z_puan), t_ort=mean(t_puan))
}

puan_donusumu(notlar)
## $z_puan
##  [1] -1.521440965  0.734688223  0.804107582  0.075204306  0.665268863
##  [6]  0.040494626 -0.480150571  1.047075341  1.220623740 -1.313182886
## [11]  1.324752779 -0.376021531  0.630559183  1.602430218 -0.653698970
## [16] -1.000795768 -1.382602246 -1.556150645 -1.590860325 -0.896666728
## [21] -0.827247369  0.942946301 -0.098344093 -0.931376408 -0.688408650
## [26]  1.012365661  0.838817262  0.873526942 -0.792537689  0.526430144
## [31] -0.063634413  1.463591499  0.214043025 -0.723118329 -1.452021605
## [36]  1.567720538  1.255333420 -0.861957049  0.977655981  0.387591425
## [41] -1.347892566  1.081785021  0.422301104 -0.410731211 -0.966086088
## [46]  1.394172139 -1.278473206  0.005784947  1.185914060  0.109913986
## [51] -1.243763526 -0.167763452 -1.035505448  1.290043100 -0.237182812
## [56]  1.116494700  1.151204380 -1.694989364 -0.618989290  0.248752705
## 
## $t_puan
##  [1] 34.78559 57.34688 58.04108 50.75204 56.65269 50.40495 45.19849 60.47075
##  [9] 62.20624 36.86817 63.24753 46.23978 56.30559 66.02430 43.46301 39.99204
## [17] 36.17398 34.43849 34.09140 41.03333 41.72753 59.42946 49.01656 40.68624
## [25] 43.11591 60.12366 58.38817 58.73527 42.07462 55.26430 49.36366 64.63591
## [33] 52.14043 42.76882 35.47978 65.67721 62.55333 41.38043 59.77656 53.87591
## [41] 36.52107 60.81785 54.22301 45.89269 40.33914 63.94172 37.21527 50.05785
## [49] 61.85914 51.09914 37.56236 48.32237 39.64495 62.90043 47.62817 61.16495
## [57] 61.51204 33.05011 43.81011 52.48753
## 
## $z_ort
## [1] -8.951309e-17
## 
## $t_ort
## [1] 50

Soru #8

  • Madde tepkime kuramında 3-parametreli lojistik fonksiyonuna ilişkin denklem aşağıda verilmiştir. Bu fonksiyon θ, a, b ve c değerleri girildiğinde belirli bir θ yetenek düzeyine sahip bir bireyin maddeyi doğru yanıtlama olasılığını vermektedir.

\[ P(θ) = c + \frac{(1-c)}{1 +e^{-a(θ-b)}} \]

a. Yukarıdaki formülü kullanarak 3-parametreli lojistik model için bir maddeyi doğru yanıtlama olasılığını hesaplayınız.

b. θ = 2, a = 1, b = 1 ve c = 0.25 noktasında maddeyi doğru yanıtlama olasılığını hesaplayınız.

mtk <- function( theta = 0 ,a = 1 ,b=0 , c=0){
           olasılık <- c+(1-c)/(1+exp(-a*(theta-b)))
    return(olasılık)
}

mtk(2,1,1,0.25)
## [1] 0.7982939