AR_boot: Wylicza rozkład AR(GINI) metodą bootstrap

Description Usage Arguments Details Value Author(s) Examples

Description

Algorytm działa w następujący sposób. Na wstępie agregowane są wartości do poziomu score. Tak przygotowane informacje posłużą do wygenerowania losowo liczby badów i goodów dla każdego score, jakie zostałyby wylosowane w eksperymencie losowania ze zwracaniem z wyjściowej próby. Jednorazowo losowanych jest tyle prób bootstrap, aby liczba wszystkich wylosowanych obserwacji nie przekroczyła n_once. Ma to zapobiec przekroczeniu dostępnej wielkości pamięci. Z wylosowanych obserwacji tworzone są macierze do funkcji AR_quick, gdzie jedna kolumna odpowiada jedemu eksperymentowi. Jeśli liczba kolumn w macierzy jest mniejsza niż n_boot, co może być spowodowane ograniczeniem przez n_once, wykonywana jest kolejna pętla. Algorytm został zoptymalizowany pod kątem prób, w których występuje mała liczba unikalnych wartości score, w stosunku do liczby obserwacji w próbie.

Usage

1
2
3
4
5
6
7
8
AR_boot(
  score,
  def,
  n_boot,
  obs = rep(1, length(score)),
  n_once = 5e+07,
  seed = NULL
)

Arguments

score

wektor z wartościami score.

def

wektor z liczbą defaultów dla danego rekordu danych.

n_boot

liczba prób bootstrap do wygenerowania.

obs

wektor z liczbą obserwacji dla danego rekordu danych.

n_once

ile jednorazowo maksymalnie może być wylosowanych obserwacji. Parametr dodany jedynie, aby nie przekroczyć dostępnej pamięci. Nie ma wpływu na końcowy wynik.

seed

ziarno.

Details

Dane wejściowe mogą być już w jakiś sposób zagregowane (np.do poziomu score), lub nie.

Value

Zwraca wektor długości b_boot+1. Pierwszy element wektora zawiera wyliczony AR na całej próbie, w dalszej kolejności znajdują się wartości wyliczone w oparciu o próby bootstrap.

Author(s)

Michał Danaj

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
## dane do przykładu
n<-100000; #liczba obserwacji w prĂłbie
nb<-100; #liczba prĂłb bootstrap
score<-rnorm(n); #generowanie score
def<-as.numeric(score+rnorm(n)<0) #generowanie defaultĂłw
score<-floor(200*score) #dyskretyzacja wartości score

#liczba unikalnych wartości score
length(unique(score))
#[1] 1362

#czas wykonania
system.time(AR_boot(score, def, nb))
#user  system elapsed 
# .41    0.00    1.53 

#porównanie z czasem wykonania w przypadku pętli i stadradowej funkcji 
#do wyliczania GINI
system.time(
sapply(1:nb, function(i){
			id<-sample(length(score), replace=TRUE);
			AR(score[id], def[id])['AR']
	})
) 
# user  system elapsed 
#83.66    1.62   92.44 

michaldanaj/MDBinom documentation built on June 13, 2020, 11:21 p.m.