1 Wprowadzenie

Cel: wyznaczenie obszaru ufności dla dystrybuanty nieznanego rozkładu, a nie tylko oszacowania parametrów, od jakich zależą jej wartości.

  • Brzegi tego obszaru są wykresami funkcji „przedziałami stałych” (funkcji schodkowych).

  • Jeżeli przy wyznaczaniu pasma ufności dla dystrybuanty otrzymamy lewy kraniec przedziału będący liczbą ujemną, to zastępujemy ją przez zero.

  • Jeżeli otrzymamy prawy kraniec przedziału większy od jedności, to przyjmujemy, że jest on równy jeden.

  • Określenie obszaru ufności dla dystrybuanty w przedstawiony sposób polega na wyznaczeniu przedziałowego oszacowania dla każdej wartości dystrybuanty.

1.1 Funkcja CDF

Funkcja w programie R odpowiedzialna za estymację to np. CDF z pakietu spatstat. CDF jest metodą ogólną, z metodą dla klasy “gęstość”.

Oblicza ona skumulowaną funkcję rozkładu, której gęstość prawdopodobieństwa została oszacowana i zapisana w obiekcie f. Obiekt f musi należeć do klasy “gęstość” i zazwyczaj zostałby uzyskany z wywołania funkcji gęstość.

1.2 Funkcja kde

Pakiet R o nazwie snpar zawiera kilka uzupełniających metod statystyki nieparametrycznej, w tym test kwantylowy, test trendu Coxa-Stuarta, test przebiegów, test normalnego wyniku, estymację jądra PDF i CDF, estymację regresji jądra i test jądra Kołmogorowa-Smirnowa.

Funkcja kde zawiera obliczanie zarówno nieparametrycznego estymatora jądra funkcji gęstości prawdopodobieństwa (PDF) jak i funkcji rozkładu skumulowanego (CDF).

1.3 Przykład 1.

   b <- density(runif(10))
   f <- CDF(b)
   f(0.5)
## [1] 0.2788522
   f(1)
## [1] 0.8538352
   plot(f)

1.4 Przykład 2.

x <- rnorm(200,2,3)
# with default bandwidth
kde(x, kernel = "quar", plot = TRUE)

## $data
##   [1]  2.38395610  6.42240938  2.30493607  3.38619513  0.68619361 -1.19027077
##   [7]  2.40274826  4.42499649  4.56623270  5.07503550 -0.25648223 -1.28643166
##  [13]  4.14383070 -3.63589851  0.05574945  3.48007643  3.84417011  4.30764969
##  [19] -0.76026960  2.00030546 -5.74947799  0.97436530  1.18467492 -4.87194842
##  [25]  2.58440548 -0.59964858  2.20117438  0.42684921  3.05849002  1.08515669
##  [31] -0.49814322  6.12691030 -2.33646251  1.37111961  2.81922348  4.70787647
##  [37]  1.17673483  0.68064357  1.59378599  3.80283348  6.76637152  0.49564093
##  [43]  8.12574734  1.43894746 -2.24133084 -0.47029237  8.22948111 -3.13263685
##  [49] -2.60811942  5.41374533  4.30292785 -0.77930464 -1.30995689 -0.15264995
##  [55]  2.06826267  0.43605279 -1.67505508  2.10440790 -0.43395970 -2.11966040
##  [61] -0.18987302 -0.45293169 -1.71292998  3.91534179  6.40530715  1.41006968
##  [67]  6.61469727  1.35741846  3.35308881  0.53811755  4.03804647  3.43049617
##  [73]  4.92033581 -0.44903947  2.21043306  3.22289511 -0.77809108  4.33806872
##  [79]  0.73828053  1.85433325 -0.64204939 -2.22002409  5.63057400 -0.19741995
##  [85]  2.04524020  1.46717015  5.48869552 -0.31114070  0.02107734  6.08317253
##  [91]  6.09629389 -4.26899207  4.91202195  0.64873984 -0.60987747  3.85516654
##  [97]  0.37370841  2.10650920  0.98013458 -5.11170527  7.84376538  0.09217183
## [103] -1.72851265  1.63320271 -0.03381018 -5.53386295  0.77821524  4.87926679
## [109]  5.62568146 -1.26789587  6.39970851 -1.53370094 -1.24041315  0.18808950
## [115]  8.46279418  0.51315833 -0.80247950  4.62872655  2.28604667  0.26879674
## [121]  0.93412852  1.06760281 -0.93758639  2.67573271  1.36431807  3.47681123
## [127]  0.76621976  0.99080480 -2.03901372  5.83421238 -0.56259681 -0.39972286
## [133]  5.62232006  4.66407420  2.83827295  2.83131289  0.08389505  6.19575000
## [139]  5.87753301  1.14049003  4.35515749  3.83761600 -4.39095672  2.42535940
## [145]  0.76955568  4.07255835  0.71737266  1.75671383  0.38631021  1.23239444
## [151] -2.44872998  1.61177382  8.70058978  2.30768745  3.20698885  7.70738106
## [157]  2.24894289  5.61475409 -2.66568988  5.80139624  7.10003819  1.16126229
## [163]  3.04649996  2.18715414  0.02485670  2.72759215  3.08546702  3.65555066
## [169]  0.30604871 -4.76372850  7.85478147 -1.75621345  5.99660082  2.29260372
## [175]  3.18022214  3.61951300  1.11590990 -0.94311941  8.39010863  1.95122088
## [181] -1.14123456 -1.86914721  1.64693857 -0.23546143  3.17044667  2.39148079
## [187]  4.47854515  1.64863813  1.37150669  1.01549235  6.93513570  2.33584403
## [193] -1.57755420  1.79832399 -0.59947635  4.93551544  4.48635390  0.45671513
## [199]  3.97896787  5.85816310
## 
## $xgrid
##   [1]  2.38395610  6.42240938  2.30493607  3.38619513  0.68619361 -1.19027077
##   [7]  2.40274826  4.42499649  4.56623270  5.07503550 -0.25648223 -1.28643166
##  [13]  4.14383070 -3.63589851  0.05574945  3.48007643  3.84417011  4.30764969
##  [19] -0.76026960  2.00030546 -5.74947799  0.97436530  1.18467492 -4.87194842
##  [25]  2.58440548 -0.59964858  2.20117438  0.42684921  3.05849002  1.08515669
##  [31] -0.49814322  6.12691030 -2.33646251  1.37111961  2.81922348  4.70787647
##  [37]  1.17673483  0.68064357  1.59378599  3.80283348  6.76637152  0.49564093
##  [43]  8.12574734  1.43894746 -2.24133084 -0.47029237  8.22948111 -3.13263685
##  [49] -2.60811942  5.41374533  4.30292785 -0.77930464 -1.30995689 -0.15264995
##  [55]  2.06826267  0.43605279 -1.67505508  2.10440790 -0.43395970 -2.11966040
##  [61] -0.18987302 -0.45293169 -1.71292998  3.91534179  6.40530715  1.41006968
##  [67]  6.61469727  1.35741846  3.35308881  0.53811755  4.03804647  3.43049617
##  [73]  4.92033581 -0.44903947  2.21043306  3.22289511 -0.77809108  4.33806872
##  [79]  0.73828053  1.85433325 -0.64204939 -2.22002409  5.63057400 -0.19741995
##  [85]  2.04524020  1.46717015  5.48869552 -0.31114070  0.02107734  6.08317253
##  [91]  6.09629389 -4.26899207  4.91202195  0.64873984 -0.60987747  3.85516654
##  [97]  0.37370841  2.10650920  0.98013458 -5.11170527  7.84376538  0.09217183
## [103] -1.72851265  1.63320271 -0.03381018 -5.53386295  0.77821524  4.87926679
## [109]  5.62568146 -1.26789587  6.39970851 -1.53370094 -1.24041315  0.18808950
## [115]  8.46279418  0.51315833 -0.80247950  4.62872655  2.28604667  0.26879674
## [121]  0.93412852  1.06760281 -0.93758639  2.67573271  1.36431807  3.47681123
## [127]  0.76621976  0.99080480 -2.03901372  5.83421238 -0.56259681 -0.39972286
## [133]  5.62232006  4.66407420  2.83827295  2.83131289  0.08389505  6.19575000
## [139]  5.87753301  1.14049003  4.35515749  3.83761600 -4.39095672  2.42535940
## [145]  0.76955568  4.07255835  0.71737266  1.75671383  0.38631021  1.23239444
## [151] -2.44872998  1.61177382  8.70058978  2.30768745  3.20698885  7.70738106
## [157]  2.24894289  5.61475409 -2.66568988  5.80139624  7.10003819  1.16126229
## [163]  3.04649996  2.18715414  0.02485670  2.72759215  3.08546702  3.65555066
## [169]  0.30604871 -4.76372850  7.85478147 -1.75621345  5.99660082  2.29260372
## [175]  3.18022214  3.61951300  1.11590990 -0.94311941  8.39010863  1.95122088
## [181] -1.14123456 -1.86914721  1.64693857 -0.23546143  3.17044667  2.39148079
## [187]  4.47854515  1.64863813  1.37150669  1.01549235  6.93513570  2.33584403
## [193] -1.57755420  1.79832399 -0.59947635  4.93551544  4.48635390  0.45671513
## [199]  3.97896787  5.85816310
## 
## $fhat
##   [1] 0.11623574 0.04857109 0.11782695 0.09704392 0.13357993 0.08717811
##   [7] 0.11585334 0.08081753 0.07938647 0.07335308 0.11713783 0.08373007
##  [13] 0.08432613 0.01903736 0.12421539 0.09533367 0.08894418 0.08215239
##  [19] 0.10201333 0.12368563 0.01025764 0.13445172 0.13375270 0.01438049
##  [25] 0.11215607 0.10718390 0.11989804 0.13071174 0.10318475 0.13423224
##  [31] 0.11030764 0.05411528 0.04563466 0.13227675 0.10758389 0.07797335
##  [37] 0.13380049 0.13353738 0.12976237 0.08964221 0.04276566 0.13162986
##  [43] 0.02131884 0.13158979 0.04881232 0.11114196 0.02011073 0.02597576
##  [49] 0.03740163 0.06792773 0.08220979 0.10137973 0.08287780 0.11970171
##  [55] 0.12245340 0.13084070 0.06939765 0.12177757 0.11221535 0.05306379
##  [61] 0.11880802 0.11165707 0.06799103 0.08778856 0.04888195 0.13189047
##  [67] 0.04522620 0.13240659 0.09765894 0.13214418 0.08589017 0.09623312
##  [73] 0.07545081 0.11177202 0.11971380 0.10009785 0.10142021 0.08178977
##  [79] 0.13393113 0.12610068 0.10584925 0.04954003 0.06393290 0.11862348
##  [85] 0.12287732 0.13128503 0.06659347 0.11569200 0.12351438 0.05496940
##  [91] 0.05471191 0.01546885 0.07555781 0.13327480 0.10686309 0.08876137
##  [97] 0.12993083 0.12173787 0.13444758 0.01371196 0.02505508 0.12493658
## [103] 0.06741310 0.12924618 0.12237032 0.01166346 0.13413623 0.07597352
## [109] 0.06402623 0.08439906 0.04898399 0.07461966 0.08538749 0.12676298
## [115] 0.01761327 0.13184707 0.10060452 0.07877906 0.11820484 0.12821893
## [121] 0.13446419 0.13428921 0.09602531 0.11032539 0.13234165 0.09539300
## [127] 0.13408079 0.13443818 0.05598774 0.05996801 0.10833816 0.11321006
## [133] 0.06409034 0.07842512 0.10722629 0.10735687 0.12477428 0.05278734
## [139] 0.05909602 0.13399812 0.08159152 0.08905380 0.01517844 0.11539181
## [145] 0.13409671 0.08537323 0.13380108 0.12754942 0.13012141 0.13343552
## [151] 0.04205521 0.12952815 0.01520589 0.11777192 0.10039777 0.02715953
## [157] 0.11894641 0.06423464 0.03585870 0.06062319 0.03740408 0.13388903
## [163] 0.10340354 0.12017604 0.12359137 0.10932052 0.10268775 0.09216996
## [169] 0.12885180 0.01458766 0.02489435 0.06638817 0.05669440 0.11807359
## [175] 0.10090404 0.09280041 0.13411215 0.09583517 0.01836477 0.12453378
## [181] 0.08891369 0.06223109 0.12906397 0.11767551 0.10108913 0.11608277
## [187] 0.08025643 0.12904135 0.13227303 0.13440698 0.04007266 0.11720730
## [193] 0.07300426 0.12694238 0.10718930 0.07525404 0.08017690 0.13112304
## [199] 0.08679303 0.05948626
## 
## $Fhat
##   [1] 0.587348707 0.918754997 0.578100736 0.694049435 0.368814762 0.153352378
##   [7] 0.589529437 0.785745040 0.797056544 0.836022160 0.249411684 0.145134562
##  [13] 0.762553722 0.038688651 0.287139008 0.703079543 0.736607678 0.776184653
##  [19] 0.194064005 0.541295676 0.007893889 0.407493268 0.435717028 0.019026141
##  [25] 0.610238643 0.210869104 0.565767244 0.334507411 0.661241539 0.422380153
##  [31] 0.221908423 0.903592956 0.077477880 0.460526696 0.636030141 0.808202618
##  [37] 0.434654829 0.368073506 0.489714657 0.732916650 0.934439734 0.343531470
##  [43] 0.977522977 0.469475827 0.081969446 0.224992227 0.979671357 0.049841049
##  [49] 0.066232226 0.859980177 0.775796607 0.192128203 0.143174809 0.261709416
##  [55] 0.549659471 0.335711022 0.115374517 0.554073400 0.229049865 0.088164697
##  [61] 0.257270303 0.226926203 0.112772729 0.742896497 0.917921666 0.465671436
##  [67] 0.927767765 0.458713458 0.690826511 0.349133735 0.753551175 0.698330579
##  [73] 0.824509440 0.227361021 0.566876490 0.677953097 0.192251258 0.778678103
##  [79] 0.375782068 0.523060783 0.206352669 0.083017220 0.874282818 0.256374363
##  [85] 0.546835399 0.473185368 0.865021591 0.243048306 0.282844317 0.901207441
##  [91] 0.901927024 0.028007280 0.823881707 0.363817273 0.209774372 0.737584740
##  [97] 0.327581770 0.554329249 0.408268945 0.015650424 0.971001301 0.291676417
## [103] 0.111717751 0.494819326 0.276096077 0.010260736 0.381134859 0.821399965
## [109] 0.873969796 0.146692769 0.917647708 0.125553836 0.149025875 0.303748296
## [115] 0.984066763 0.345839196 0.189787717 0.801998815 0.575871487 0.314038396
## [121] 0.402083020 0.420023345 0.176503645 0.620397527 0.459626789 0.702768163
## [127] 0.379526159 0.409703482 0.092561654 0.886901799 0.214861882 0.232908836
## [133] 0.873754470 0.804777239 0.638076150 0.637329394 0.290643015 0.907272450
## [139] 0.889480775 0.429801571 0.780074090 0.736024370 0.026139298 0.592143798
## [145] 0.379973469 0.756506466 0.372983186 0.510679464 0.329220337 0.442092258
## [151] 0.072557645 0.492046697 0.987966396 0.578424847 0.676358530 0.967442927
## [157] 0.571471875 0.873269019 0.064123823 0.884923112 0.947818820 0.432583902
## [163] 0.660003034 0.564084295 0.283311268 0.626092770 0.664018465 0.719528253
## [169] 0.318826680 0.020593928 0.971276423 0.109864557 0.896374274 0.576646131
## [175] 0.673664440 0.716195348 0.426506446 0.175972861 0.982759259 0.535203649
## [181] 0.157669873 0.102602069 0.496593383 0.251879684 0.672677150 0.588222770
## [187] 0.790057555 0.496812716 0.460577896 0.413022075 0.941429717 0.581732958
## [193] 0.122316936 0.515974237 0.210887565 0.825653265 0.790683947 0.338417430
## [199] 0.748450353 0.888332311
## 
## $bw
## [1] 2.279133
# with specified bandwidth
kde(x, h = 4, kernel = "quar", plot = TRUE)

## $data
##   [1]  2.38395610  6.42240938  2.30493607  3.38619513  0.68619361 -1.19027077
##   [7]  2.40274826  4.42499649  4.56623270  5.07503550 -0.25648223 -1.28643166
##  [13]  4.14383070 -3.63589851  0.05574945  3.48007643  3.84417011  4.30764969
##  [19] -0.76026960  2.00030546 -5.74947799  0.97436530  1.18467492 -4.87194842
##  [25]  2.58440548 -0.59964858  2.20117438  0.42684921  3.05849002  1.08515669
##  [31] -0.49814322  6.12691030 -2.33646251  1.37111961  2.81922348  4.70787647
##  [37]  1.17673483  0.68064357  1.59378599  3.80283348  6.76637152  0.49564093
##  [43]  8.12574734  1.43894746 -2.24133084 -0.47029237  8.22948111 -3.13263685
##  [49] -2.60811942  5.41374533  4.30292785 -0.77930464 -1.30995689 -0.15264995
##  [55]  2.06826267  0.43605279 -1.67505508  2.10440790 -0.43395970 -2.11966040
##  [61] -0.18987302 -0.45293169 -1.71292998  3.91534179  6.40530715  1.41006968
##  [67]  6.61469727  1.35741846  3.35308881  0.53811755  4.03804647  3.43049617
##  [73]  4.92033581 -0.44903947  2.21043306  3.22289511 -0.77809108  4.33806872
##  [79]  0.73828053  1.85433325 -0.64204939 -2.22002409  5.63057400 -0.19741995
##  [85]  2.04524020  1.46717015  5.48869552 -0.31114070  0.02107734  6.08317253
##  [91]  6.09629389 -4.26899207  4.91202195  0.64873984 -0.60987747  3.85516654
##  [97]  0.37370841  2.10650920  0.98013458 -5.11170527  7.84376538  0.09217183
## [103] -1.72851265  1.63320271 -0.03381018 -5.53386295  0.77821524  4.87926679
## [109]  5.62568146 -1.26789587  6.39970851 -1.53370094 -1.24041315  0.18808950
## [115]  8.46279418  0.51315833 -0.80247950  4.62872655  2.28604667  0.26879674
## [121]  0.93412852  1.06760281 -0.93758639  2.67573271  1.36431807  3.47681123
## [127]  0.76621976  0.99080480 -2.03901372  5.83421238 -0.56259681 -0.39972286
## [133]  5.62232006  4.66407420  2.83827295  2.83131289  0.08389505  6.19575000
## [139]  5.87753301  1.14049003  4.35515749  3.83761600 -4.39095672  2.42535940
## [145]  0.76955568  4.07255835  0.71737266  1.75671383  0.38631021  1.23239444
## [151] -2.44872998  1.61177382  8.70058978  2.30768745  3.20698885  7.70738106
## [157]  2.24894289  5.61475409 -2.66568988  5.80139624  7.10003819  1.16126229
## [163]  3.04649996  2.18715414  0.02485670  2.72759215  3.08546702  3.65555066
## [169]  0.30604871 -4.76372850  7.85478147 -1.75621345  5.99660082  2.29260372
## [175]  3.18022214  3.61951300  1.11590990 -0.94311941  8.39010863  1.95122088
## [181] -1.14123456 -1.86914721  1.64693857 -0.23546143  3.17044667  2.39148079
## [187]  4.47854515  1.64863813  1.37150669  1.01549235  6.93513570  2.33584403
## [193] -1.57755420  1.79832399 -0.59947635  4.93551544  4.48635390  0.45671513
## [199]  3.97896787  5.85816310
## 
## $xgrid
##   [1]  2.38395610  6.42240938  2.30493607  3.38619513  0.68619361 -1.19027077
##   [7]  2.40274826  4.42499649  4.56623270  5.07503550 -0.25648223 -1.28643166
##  [13]  4.14383070 -3.63589851  0.05574945  3.48007643  3.84417011  4.30764969
##  [19] -0.76026960  2.00030546 -5.74947799  0.97436530  1.18467492 -4.87194842
##  [25]  2.58440548 -0.59964858  2.20117438  0.42684921  3.05849002  1.08515669
##  [31] -0.49814322  6.12691030 -2.33646251  1.37111961  2.81922348  4.70787647
##  [37]  1.17673483  0.68064357  1.59378599  3.80283348  6.76637152  0.49564093
##  [43]  8.12574734  1.43894746 -2.24133084 -0.47029237  8.22948111 -3.13263685
##  [49] -2.60811942  5.41374533  4.30292785 -0.77930464 -1.30995689 -0.15264995
##  [55]  2.06826267  0.43605279 -1.67505508  2.10440790 -0.43395970 -2.11966040
##  [61] -0.18987302 -0.45293169 -1.71292998  3.91534179  6.40530715  1.41006968
##  [67]  6.61469727  1.35741846  3.35308881  0.53811755  4.03804647  3.43049617
##  [73]  4.92033581 -0.44903947  2.21043306  3.22289511 -0.77809108  4.33806872
##  [79]  0.73828053  1.85433325 -0.64204939 -2.22002409  5.63057400 -0.19741995
##  [85]  2.04524020  1.46717015  5.48869552 -0.31114070  0.02107734  6.08317253
##  [91]  6.09629389 -4.26899207  4.91202195  0.64873984 -0.60987747  3.85516654
##  [97]  0.37370841  2.10650920  0.98013458 -5.11170527  7.84376538  0.09217183
## [103] -1.72851265  1.63320271 -0.03381018 -5.53386295  0.77821524  4.87926679
## [109]  5.62568146 -1.26789587  6.39970851 -1.53370094 -1.24041315  0.18808950
## [115]  8.46279418  0.51315833 -0.80247950  4.62872655  2.28604667  0.26879674
## [121]  0.93412852  1.06760281 -0.93758639  2.67573271  1.36431807  3.47681123
## [127]  0.76621976  0.99080480 -2.03901372  5.83421238 -0.56259681 -0.39972286
## [133]  5.62232006  4.66407420  2.83827295  2.83131289  0.08389505  6.19575000
## [139]  5.87753301  1.14049003  4.35515749  3.83761600 -4.39095672  2.42535940
## [145]  0.76955568  4.07255835  0.71737266  1.75671383  0.38631021  1.23239444
## [151] -2.44872998  1.61177382  8.70058978  2.30768745  3.20698885  7.70738106
## [157]  2.24894289  5.61475409 -2.66568988  5.80139624  7.10003819  1.16126229
## [163]  3.04649996  2.18715414  0.02485670  2.72759215  3.08546702  3.65555066
## [169]  0.30604871 -4.76372850  7.85478147 -1.75621345  5.99660082  2.29260372
## [175]  3.18022214  3.61951300  1.11590990 -0.94311941  8.39010863  1.95122088
## [181] -1.14123456 -1.86914721  1.64693857 -0.23546143  3.17044667  2.39148079
## [187]  4.47854515  1.64863813  1.37150669  1.01549235  6.93513570  2.33584403
## [193] -1.57755420  1.79832399 -0.59947635  4.93551544  4.48635390  0.45671513
## [199]  3.97896787  5.85816310
## 
## $fhat
##   [1] 0.112758736 0.049538089 0.113618563 0.099055456 0.117745924 0.083835911
##   [7] 0.112547248 0.081700279 0.079284573 0.070836441 0.105408506 0.081323669
##  [13] 0.086568108 0.028320618 0.110738331 0.097602971 0.091691133 0.083726083
##  [19] 0.094583001 0.116518464 0.009082062 0.119265692 0.119731536 0.014368822
##  [25] 0.110389644 0.098282767 0.114679517 0.115487922 0.103962531 0.119577183
##  [31] 0.100506084 0.054086533 0.054334533 0.119697424 0.107340397 0.076889416
##  [37] 0.119723577 0.117706510 0.119082596 0.092384508 0.044162229 0.116170458
##  [43] 0.024393911 0.119576468 0.056662236 0.101100441 0.023084891 0.037028434
##  [49] 0.047962773 0.065403783 0.083807871 0.094131228 0.080705745 0.107312592
##  [55] 0.115932501 0.115582829 0.071096984 0.115604568 0.101865299 0.059697209
##  [61] 0.106645709 0.101467433 0.070112803 0.090486139 0.049801966 0.119635331
##  [67] 0.046540019 0.119714609 0.099562245 0.116561688 0.088390851 0.098373380
##  [73] 0.073357073 0.101549332 0.114587631 0.101531952 0.094160099 0.083199515
##  [79] 0.118097439 0.117632913 0.097327293 0.057189392 0.061941481 0.106508365
##  [85] 0.116135576 0.119508641 0.064207172 0.104353246 0.110205108 0.054766457
##  [91] 0.054562184 0.019872802 0.073493995 0.117472594 0.098053692 0.091505729
##  [97] 0.114918043 0.115585189 0.119285553 0.012639841 0.028119801 0.111282518
## [103] 0.069708533 0.118909581 0.109330635 0.010132519 0.118344620 0.074034956
## [109] 0.062019425 0.081809686 0.049888230 0.074799658 0.082528905 0.112636970
## [115] 0.020289285 0.116334553 0.093577998 0.078223119 0.113817096 0.113685449
## [121] 0.119116294 0.119537756 0.090279781 0.109234415 0.119706256 0.097653935
## [127] 0.118272432 0.119321245 0.061736638 0.058694553 0.099104872 0.102574533
## [133] 0.062072982 0.077625967 0.107081139 0.107176078 0.111160273 0.053021493
## [139] 0.058005435 0.119677606 0.082904051 0.091801465 0.018579943 0.112289625
## [145] 0.118292686 0.087798326 0.117960285 0.118260841 0.115056547 0.119763287
## [151] 0.051649893 0.119005972 0.017623818 0.113589423 0.101769536 0.030012144
## [157] 0.114199775 0.062193547 0.046672517 0.059217287 0.038976923 0.119705883
## [163] 0.104136865 0.114817612 0.110263959 0.108561788 0.103568555 0.094812525
## [169] 0.114139769 0.015219573 0.027969915 0.068990574 0.056121542 0.113748482
## [175] 0.102168315 0.095395486 0.119637482 0.090142291 0.021139387 0.116915409
## [181] 0.085106445 0.066076684 0.118845238 0.105804980 0.102313659 0.112674368
## [187] 0.080781542 0.118837145 0.119696903 0.119398616 0.041525631 0.113287976
## [193] 0.073645531 0.118005965 0.098286616 0.073107532 0.080647848 0.115791881
## [199] 0.089401727 0.058313421
## 
## $Fhat
##   [1] 0.57416957 0.90524808 0.56522509 0.68066279 0.37397035 0.17902971
##   [7] 0.57628657 0.77473524 0.78610341 0.82427589 0.26790142 0.17108857
##  [13] 0.75108055 0.04759247 0.30167623 0.68989427 0.72436874 0.76502926
##  [19] 0.21742674 0.53015466 0.01218145 0.40814551 0.43328652 0.02226918
##  [25] 0.59653865 0.23291876 0.55338018 0.34370788 0.64739094 0.42137775
##  [31] 0.24300860 0.88993833 0.10005458 0.45561328 0.62210726 0.79716350
##  [37] 0.43233587 0.37331696 0.48220896 0.72056419 0.92136466 0.35167633
##  [43] 0.96750782 0.46372834 0.10533387 0.24581607 0.96997009 0.06396127
##  [49] 0.08616949 0.84734708 0.76463373 0.21563065 0.16918268 0.27894626
##  [55] 0.53805325 0.34477122 0.14147460 0.54223776 0.24950325 0.11241203
##  [61] 0.27496411 0.24757443 0.13880046 0.73085174 0.90439861 0.46027436
##  [67] 0.91448609 0.45397317 0.67737503 0.35661924 0.74182643 0.68503596
##  [73] 0.81312312 0.24796953 0.55444154 0.66428396 0.21574490 0.76756812
##  [79] 0.38011267 0.51306244 0.22877170 0.10654677 0.86115305 0.27415978
##  [85] 0.53538185 0.46710217 0.85220427 0.26216864 0.29784590 0.88755785
##  [91] 0.88827512 0.03248994 0.81251267 0.36956539 0.23191461 0.72537600
##  [97] 0.33758574 0.54248066 0.40883365 0.01903577 0.96010944 0.30571954
## [103] 0.13771107 0.48689946 0.29182084 0.01425023 0.38483386 0.81009651
## [109] 0.86084981 0.17260047 0.90411954 0.15178558 0.17485871 0.31645938
## [115] 0.97502607 0.35371277 0.21345557 0.79102501 0.56307702 0.32559289
## [121] 0.40334959 0.41927905 0.20103399 0.60656778 0.45479912 0.68957549
## [127] 0.38341469 0.41010664 0.11730853 0.87343608 0.23657558 0.25300297
## [133] 0.86064125 0.79377945 0.62414957 0.62340395 0.30479898 0.89362493
## [139] 0.87596384 0.42799730 0.76898737 0.72376743 0.03014609 0.57882849
## [145] 0.38380927 0.74486674 0.37764493 0.50154769 0.33903479 0.43900092
## [151] 0.09410587 0.48435031 0.97953047 0.56553766 0.66266708 0.95614606
## [157] 0.55884685 0.86017115 0.08344548 0.87150138 0.93523189 0.43048358
## [163] 0.64614338 0.55177138 0.29826251 0.61221523 0.65019023 0.70677793
## [169] 0.32983642 0.02386983 0.96041838 0.13579003 0.88275806 0.56382310
## [175] 0.65993770 0.70335059 0.42505609 0.20053485 0.97352055 0.52442556
## [181] 0.18317188 0.12816339 0.48853234 0.27012137 0.65893825 0.57501773
## [187] 0.77908557 0.48873432 0.45565961 0.41305336 0.92859503 0.56873172
## [193] 0.14853069 0.50646330 0.23293569 0.81423476 0.77971585 0.34716160
## [199] 0.73657454 0.87483729
## 
## $bw
## [1] 4

1.5 Przeczytaj

Przeczytaj artykuł naukowy “Kernel-smoothed cumulative distribution function estimation with akdensity” autorstwa Philippe Van Kerm.

1.6 Zadanie

Posłużymy się zbiorem danych diagnozy społecznej.

Na jego podstawie Twoim zadaniem jest oszacowanie rozkładu “gp64 Pana/Pani wlasny (osobisty) dochod miesieczny netto (na reke)” według województw/płci.

Postaraj się oszacować zarówno rozkład gęstości jak i skumulowanej gęstości (dystrybuanty).

data("diagnoza")
data("diagnozaDict")
# Filtrujemy dane 
data_filtered <- diagnoza %>%
  select(gp64, wojewodztwo, plec) %>%
  filter(!is.na(gp64) & gp64 > 0 & wojewodztwo != "BD/ND/FALA") %>%
  mutate(wojewodztwo = as.factor(wojewodztwo),  # Województwo
         plec = as.factor(plec))  # Płeć
# Podział województw na dwie grupy
woj_group_1 <- levels(data_filtered$wojewodztwo)[1:8]
woj_group_2 <- levels(data_filtered$wojewodztwo)[9:16]
# Obliczanie rozkładów KDE i dystrybuant
# Estymacja dla każdej kombinacji województwa i płci
kde_results <- data_filtered %>%
  group_by(wojewodztwo, plec) %>%
  summarise(density = list(density(gp64, na.rm = TRUE)), .groups = "drop")

cdf_results <- data_filtered %>%
  group_by(wojewodztwo, plec) %>%
  summarise(
    cdf = list(ecdf(gp64)),
    .groups = "drop"
  )

##Wykresy gęstości i dystrubuanty skumulowa z podziałem na 2 grupy województw (dla większej czytelności)

# Wykres rozkładu gęstości dla grupy 1
plot_density_group1 <- ggplot(data_filtered %>% filter(wojewodztwo %in% woj_group_1), aes(x = gp64, color = plec)) +
  geom_density() +
  facet_wrap(~ wojewodztwo, scales = "free_y") +
  labs(
    title = "Rozkład gęstości dochodu netto (gp64) - Grupa 1 województw",
    x = "Dochód netto (zł)",
    y = "Gęstość",
    color = "Płeć"
  ) +
  scale_x_continuous(labels = scales::comma, limits = c(0, quantile(data_filtered$gp64, 0.99))) +
  theme_minimal() +
  theme(plot.title = element_text(size = 16),
        axis.text = element_text(size = 12),
        axis.title = element_text(size = 14),
        strip.text = element_text(size = 14))

# Wykres rozkładu gęstości dla grupy 2
plot_density_group2 <- ggplot(data_filtered %>% filter(wojewodztwo %in% woj_group_2), aes(x = gp64, color = plec)) +
  geom_density() +
  facet_wrap(~ wojewodztwo, scales = "free_y") +
  labs(
    title = "Rozkład gęstości dochodu netto (gp64) - Grupa 2 województw",
    x = "Dochód netto (zł)",
    y = "Gęstość",
    color = "Płeć"
  ) +
  scale_x_continuous(labels = scales::comma, limits = c(0, quantile(data_filtered$gp64, 0.99))) +
  theme_minimal() +
  theme(plot.title = element_text(size = 16),
        axis.text = element_text(size = 12),
        axis.title = element_text(size = 14),
        strip.text = element_text(size = 14))

# Wykres dystrybuanty skumulowanej dla grupy 1
plot_cdf_group1 <- ggplot(data_filtered %>% filter(wojewodztwo %in% woj_group_1), aes(x = gp64, color = plec)) +
  stat_ecdf(geom = "step") +
  facet_wrap(~ wojewodztwo, scales = "free_y") +
  labs(
    title = "Dystrybuanta skumulowana dochodu netto (gp64) - Grupa 1 województw",
    x = "Dochód netto (zł)",
    y = "Prawdopodobieństwo skumulowane",
    color = "Płeć"
  ) +
  scale_x_continuous(labels = scales::comma, limits = c(0, quantile(data_filtered$gp64, 0.99))) +
  theme_minimal() +
  theme(plot.title = element_text(size = 16),
        axis.text = element_text(size = 12),
        axis.title = element_text(size = 14),
        strip.text = element_text(size = 14))

# Wykres dystrybuanty skumulowanej dla grupy 2
plot_cdf_group2 <- ggplot(data_filtered %>% filter(wojewodztwo %in% woj_group_2), aes(x = gp64, color = plec)) +
  stat_ecdf(geom = "step") +
  facet_wrap(~ wojewodztwo, scales = "free_y") +
  labs(
    title = "Dystrybuanta skumulowana dochodu netto (gp64) - Grupa 2 województw",
    x = "Dochód netto (zł)",
    y = "Prawdopodobieństwo skumulowane",
    color = "Płeć"
  ) +
  scale_x_continuous(labels = scales::comma, limits = c(0, quantile(data_filtered$gp64, 0.99))) +
  theme_minimal() +
  theme(plot.title = element_text(size = 16),
        axis.text = element_text(size = 12),
        axis.title = element_text(size = 14),
        strip.text = element_text(size = 14))

# Wyświetlanie wykresów
print(plot_density_group1)
## Warning: Removed 106 rows containing non-finite outside the scale range
## (`stat_density()`).

print(plot_density_group2)
## Warning: Removed 73 rows containing non-finite outside the scale range
## (`stat_density()`).

print(plot_cdf_group1)
## Warning: Removed 106 rows containing non-finite outside the scale range
## (`stat_ecdf()`).

print(plot_cdf_group2)
## Warning: Removed 73 rows containing non-finite outside the scale range
## (`stat_ecdf()`).

LS0tDQp0aXRsZTogIk5pZWtsYXN5Y3puZSBtZXRvZHkgc3RhdHlzdHlraSINCnN1YnRpdGxlOiAiTmllcGFyYW1ldHJ5Y3puYSBlc3R5bWFjamEgZHlzdHJ5YnVhbnR5Ig0KYXV0aG9yOiAiTWljaGHFgiBLdcW6bmlld3NraSAmIEFnYXRhIExleWsiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdGhlbWU6IGNlcnVsZWFuDQogICAgaGlnaGxpZ2h0OiB0ZXh0bWF0ZQ0KICAgIGZvbnRzaXplOiA4cHQNCiAgICB0b2M6IHRydWUNCiAgICBudW1iZXJfc2VjdGlvbnM6IHRydWUNCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlDQogICAgdG9jX2Zsb2F0Og0KICAgICAgY29sbGFwc2VkOiBmYWxzZQ0KZWRpdG9yX29wdGlvbnM6IA0KICBtYXJrZG93bjogDQogICAgd3JhcDogNzINCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCmxpYnJhcnkoc3BhdHN0YXQpDQpsaWJyYXJ5KGRwbHlyKQ0KI2RldGFjaChuYW1lPSJmYXN0bWFwIiwgdW5sb2FkID0gVFJVRSkNCiNpbnN0YWxsLnBhY2thZ2VzKCJSdG9vbHMiKQ0KI2luc3RhbGwucGFja2FnZXMoImZhc3RtYXAiKQ0KI2luc3RhbGwucGFja2FnZXMoInNucGFyIikNCmxpYnJhcnkoc25wYXIpDQpsaWJyYXJ5KHRpZHlyKQ0KbGlicmFyeShQb2dyb21jeURhbnljaCkNCmxpYnJhcnkoZ2dwbG90MikNCmBgYA0KDQojIFdwcm93YWR6ZW5pZQ0KDQpDZWw6IHd5em5hY3plbmllIG9ic3phcnUgdWZub8WbY2kgZGxhIGR5c3RyeWJ1YW50eSBuaWV6bmFuZWdvIHJvemvFgmFkdSwgYSBuaWUgdHlsa28gb3N6YWNvd2FuaWEgcGFyYW1ldHLDs3csIG9kIGpha2ljaCB6YWxlxbzEhSBqZWogd2FydG/Fm2NpLg0KDQotICAgQnJ6ZWdpIHRlZ28gb2JzemFydSBzxIUgd3lrcmVzYW1pIGZ1bmtjamkg4oCecHJ6ZWR6aWHFgmFtaSBzdGHFgnljaCIgKGZ1bmtjamkgc2Nob2Rrb3d5Y2gpLg0KDQotICAgSmXFvGVsaSBwcnp5IHd5em5hY3phbml1IHBhc21hIHVmbm/Fm2NpIGRsYSBkeXN0cnlidWFudHkgb3RyenltYW15IGxld3kga3JhbmllYyBwcnplZHppYcWCdSBixJlkxIVjeSBsaWN6YsSFIHVqZW1uxIUsIHRvIHphc3TEmXB1amVteSBqxIUgcHJ6ZXogemVyby4NCg0KLSAgIEplxbxlbGkgb3RyenltYW15IHByYXd5IGtyYW5pZWMgcHJ6ZWR6aWHFgnUgd2nEmWtzenkgb2QgamVkbm/Fm2NpLCB0byBwcnp5am11amVteSwgxbxlIGplc3Qgb24gcsOzd255IGplZGVuLg0KDQotICAgT2tyZcWbbGVuaWUgb2JzemFydSB1Zm5vxZtjaSBkbGEgZHlzdHJ5YnVhbnR5IHcgcHJ6ZWRzdGF3aW9ueSBzcG9zw7NiIHBvbGVnYSBuYSB3eXpuYWN6ZW5pdSBwcnplZHppYcWCb3dlZ28gb3N6YWNvd2FuaWEgZGxhIGthxbxkZWogd2FydG/Fm2NpIGR5c3RyeWJ1YW50eS4NCg0KIyMgRnVua2NqYSBDREYNCg0KRnVua2NqYSB3IHByb2dyYW1pZSBSIG9kcG93aWVkemlhbG5hIHphIGVzdHltYWNqxJkgdG8gbnAuIENERiB6IHBha2lldHUgc3BhdHN0YXQuIENERiBqZXN0IG1ldG9kxIUgb2fDs2xuxIUsIHogbWV0b2TEhSBkbGEga2xhc3kgImfEmXN0b8WbxIciLg0KDQpPYmxpY3phIG9uYSBza3VtdWxvd2FuxIUgZnVua2NqxJkgcm96a8WCYWR1LCBrdMOzcmVqIGfEmXN0b8WbxIcgcHJhd2RvcG9kb2JpZcWEc3R3YSB6b3N0YcWCYSBvc3phY293YW5hIGkgemFwaXNhbmEgdyBvYmlla2NpZSBmLiBPYmlla3QgZiBtdXNpIG5hbGXFvGXEhyBkbyBrbGFzeSAiZ8SZc3RvxZvEhyIgaSB6YXp3eWN6YWogem9zdGHFgmJ5IHV6eXNrYW55IHogd3l3b8WCYW5pYSBmdW5rY2ppIGfEmXN0b8WbxIcuDQoNCiMjIEZ1bmtjamEga2RlDQoNClBha2lldCBSIG8gbmF6d2llIHNucGFyIHphd2llcmEga2lsa2EgdXp1cGXFgm5pYWrEhWN5Y2ggbWV0b2Qgc3RhdHlzdHlraSBuaWVwYXJhbWV0cnljem5laiwgdyB0eW0gdGVzdCBrd2FudHlsb3d5LCB0ZXN0IHRyZW5kdSBDb3hhLVN0dWFydGEsIHRlc3QgcHJ6ZWJpZWfDs3csIHRlc3Qgbm9ybWFsbmVnbyB3eW5pa3UsIGVzdHltYWNqxJkgasSFZHJhIFBERiBpIENERiwgZXN0eW1hY2rEmSByZWdyZXNqaSBqxIVkcmEgaSB0ZXN0IGrEhWRyYSBLb8WCbW9nb3Jvd2EtU21pcm5vd2EuDQoNCkZ1bmtjamEga2RlIHphd2llcmEgb2JsaWN6YW5pZSB6YXLDs3dubyBuaWVwYXJhbWV0cnljem5lZ28gZXN0eW1hdG9yYSBqxIVkcmEgZnVua2NqaSBnxJlzdG/Fm2NpIHByYXdkb3BvZG9iaWXFhHN0d2EgKFBERikgamFrIGkgZnVua2NqaSByb3prxYJhZHUgc2t1bXVsb3dhbmVnbyAoQ0RGKS4NCg0KIyMgUHJ6eWvFgmFkIDEuDQoNCmBgYHtyfQ0KICAgYiA8LSBkZW5zaXR5KHJ1bmlmKDEwKSkNCiAgIGYgPC0gQ0RGKGIpDQogICBmKDAuNSkNCiAgIGYoMSkNCiAgIHBsb3QoZikNCmBgYA0KDQojIyBQcnp5a8WCYWQgMi4NCg0KYGBge3J9DQp4IDwtIHJub3JtKDIwMCwyLDMpDQojIHdpdGggZGVmYXVsdCBiYW5kd2lkdGgNCmtkZSh4LCBrZXJuZWwgPSAicXVhciIsIHBsb3QgPSBUUlVFKQ0KDQojIHdpdGggc3BlY2lmaWVkIGJhbmR3aWR0aA0Ka2RlKHgsIGggPSA0LCBrZXJuZWwgPSAicXVhciIsIHBsb3QgPSBUUlVFKQ0KYGBgDQoNCg0KIyMgUHJ6ZWN6eXRhag0KDQpQcnplY3p5dGFqIGFydHlrdcWCIG5hdWtvd3kgWyJLZXJuZWwtc21vb3RoZWQgY3VtdWxhdGl2ZSBkaXN0cmlidXRpb24gZnVuY3Rpb24gZXN0aW1hdGlvbiB3aXRoIGFrZGVuc2l0eSJdKGh0dHBzOi8vam91cm5hbHMuc2FnZXB1Yi5jb20vZG9pL3BkZi8xMC4xMTc3LzE1MzY4NjdYMTIwMTIwMDMxMykgYXV0b3JzdHdhIFBoaWxpcHBlIFZhbiBLZXJtLg0KDQoNCiMjIFphZGFuaWUNCg0KUG9zxYJ1xbx5bXkgc2nEmSB6YmlvcmVtIGRhbnljaCBkaWFnbm96eSBzcG/FgmVjem5lai4gDQoNCk5hIGplZ28gcG9kc3Rhd2llIFR3b2ltIHphZGFuaWVtIGplc3Qgb3N6YWNvd2FuaWUgcm96a8WCYWR1ICJncDY0IFBhbmEvUGFuaSB3bGFzbnkgKG9zb2Jpc3R5KSBkb2Nob2QgbWllc2llY3pueSBuZXR0byAobmEgcmVrZSkiIHdlZMWCdWcgd29qZXfDs2R6dHcvcMWCY2kuDQoNClBvc3RhcmFqIHNpxJkgb3N6YWNvd2HEhyB6YXLDs3dubyByb3prxYJhZCBnxJlzdG/Fm2NpIGphayBpIHNrdW11bG93YW5laiBnxJlzdG/Fm2NpIChkeXN0cnlidWFudHkpLg0KDQpgYGB7ciB6YWRhbmllfQ0KZGF0YSgiZGlhZ25vemEiKQ0KZGF0YSgiZGlhZ25vemFEaWN0IikNCmBgYA0KDQpgYGB7cn0NCiMgRmlsdHJ1amVteSBkYW5lIA0KZGF0YV9maWx0ZXJlZCA8LSBkaWFnbm96YSAlPiUNCiAgc2VsZWN0KGdwNjQsIHdvamV3b2R6dHdvLCBwbGVjKSAlPiUNCiAgZmlsdGVyKCFpcy5uYShncDY0KSAmIGdwNjQgPiAwICYgd29qZXdvZHp0d28gIT0gIkJEL05EL0ZBTEEiKSAlPiUNCiAgbXV0YXRlKHdvamV3b2R6dHdvID0gYXMuZmFjdG9yKHdvamV3b2R6dHdvKSwgICMgV29qZXfDs2R6dHdvDQogICAgICAgICBwbGVjID0gYXMuZmFjdG9yKHBsZWMpKSAgIyBQxYJlxIcNCmBgYA0KDQpgYGB7cn0NCg0KIyBQb2R6aWHFgiB3b2pld8OzZHp0dyBuYSBkd2llIGdydXB5DQp3b2pfZ3JvdXBfMSA8LSBsZXZlbHMoZGF0YV9maWx0ZXJlZCR3b2pld29kenR3bylbMTo4XQ0Kd29qX2dyb3VwXzIgPC0gbGV2ZWxzKGRhdGFfZmlsdGVyZWQkd29qZXdvZHp0d28pWzk6MTZdDQpgYGANCg0KDQpgYGB7cn0NCiMgT2JsaWN6YW5pZSByb3prxYJhZMOzdyBLREUgaSBkeXN0cnlidWFudA0KIyBFc3R5bWFjamEgZGxhIGthxbxkZWoga29tYmluYWNqaSB3b2pld8OzZHp0d2EgaSBwxYJjaQ0Ka2RlX3Jlc3VsdHMgPC0gZGF0YV9maWx0ZXJlZCAlPiUNCiAgZ3JvdXBfYnkod29qZXdvZHp0d28sIHBsZWMpICU+JQ0KICBzdW1tYXJpc2UoZGVuc2l0eSA9IGxpc3QoZGVuc2l0eShncDY0LCBuYS5ybSA9IFRSVUUpKSwgLmdyb3VwcyA9ICJkcm9wIikNCg0KY2RmX3Jlc3VsdHMgPC0gZGF0YV9maWx0ZXJlZCAlPiUNCiAgZ3JvdXBfYnkod29qZXdvZHp0d28sIHBsZWMpICU+JQ0KICBzdW1tYXJpc2UoDQogICAgY2RmID0gbGlzdChlY2RmKGdwNjQpKSwNCiAgICAuZ3JvdXBzID0gImRyb3AiDQogICkNCmBgYA0KDQojI1d5a3Jlc3kgZ8SZc3RvxZtjaSBpIGR5c3RydWJ1YW50eSBza3VtdWxvd2EgeiBwb2R6aWHFgmVtIG5hIDIgZ3J1cHkgd29qZXfDs2R6dHcgKGRsYSB3acSZa3N6ZWogY3p5dGVsbm/Fm2NpKQ0KDQpgYGB7cn0NCg0KIyBXeWtyZXMgcm96a8WCYWR1IGfEmXN0b8WbY2kgZGxhIGdydXB5IDENCnBsb3RfZGVuc2l0eV9ncm91cDEgPC0gZ2dwbG90KGRhdGFfZmlsdGVyZWQgJT4lIGZpbHRlcih3b2pld29kenR3byAlaW4lIHdval9ncm91cF8xKSwgYWVzKHggPSBncDY0LCBjb2xvciA9IHBsZWMpKSArDQogIGdlb21fZGVuc2l0eSgpICsNCiAgZmFjZXRfd3JhcCh+IHdvamV3b2R6dHdvLCBzY2FsZXMgPSAiZnJlZV95IikgKw0KICBsYWJzKA0KICAgIHRpdGxlID0gIlJvemvFgmFkIGfEmXN0b8WbY2kgZG9jaG9kdSBuZXR0byAoZ3A2NCkgLSBHcnVwYSAxIHdvamV3w7NkenR3IiwNCiAgICB4ID0gIkRvY2jDs2QgbmV0dG8gKHrFgikiLA0KICAgIHkgPSAiR8SZc3RvxZvEhyIsDQogICAgY29sb3IgPSAiUMWCZcSHIg0KICApICsNCiAgc2NhbGVfeF9jb250aW51b3VzKGxhYmVscyA9IHNjYWxlczo6Y29tbWEsIGxpbWl0cyA9IGMoMCwgcXVhbnRpbGUoZGF0YV9maWx0ZXJlZCRncDY0LCAwLjk5KSkpICsNCiAgdGhlbWVfbWluaW1hbCgpICsNCiAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTYpLA0KICAgICAgICBheGlzLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEyKSwNCiAgICAgICAgYXhpcy50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTQpLA0KICAgICAgICBzdHJpcC50ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCkpDQoNCiMgV3lrcmVzIHJvemvFgmFkdSBnxJlzdG/Fm2NpIGRsYSBncnVweSAyDQpwbG90X2RlbnNpdHlfZ3JvdXAyIDwtIGdncGxvdChkYXRhX2ZpbHRlcmVkICU+JSBmaWx0ZXIod29qZXdvZHp0d28gJWluJSB3b2pfZ3JvdXBfMiksIGFlcyh4ID0gZ3A2NCwgY29sb3IgPSBwbGVjKSkgKw0KICBnZW9tX2RlbnNpdHkoKSArDQogIGZhY2V0X3dyYXAofiB3b2pld29kenR3bywgc2NhbGVzID0gImZyZWVfeSIpICsNCiAgbGFicygNCiAgICB0aXRsZSA9ICJSb3prxYJhZCBnxJlzdG/Fm2NpIGRvY2hvZHUgbmV0dG8gKGdwNjQpIC0gR3J1cGEgMiB3b2pld8OzZHp0dyIsDQogICAgeCA9ICJEb2Now7NkIG5ldHRvICh6xYIpIiwNCiAgICB5ID0gIkfEmXN0b8WbxIciLA0KICAgIGNvbG9yID0gIlDFgmXEhyINCiAgKSArDQogIHNjYWxlX3hfY29udGludW91cyhsYWJlbHMgPSBzY2FsZXM6OmNvbW1hLCBsaW1pdHMgPSBjKDAsIHF1YW50aWxlKGRhdGFfZmlsdGVyZWQkZ3A2NCwgMC45OSkpKSArDQogIHRoZW1lX21pbmltYWwoKSArDQogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE2KSwNCiAgICAgICAgYXhpcy50ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxMiksDQogICAgICAgIGF4aXMudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0KSwNCiAgICAgICAgc3RyaXAudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTQpKQ0KDQojIFd5a3JlcyBkeXN0cnlidWFudHkgc2t1bXVsb3dhbmVqIGRsYSBncnVweSAxDQpwbG90X2NkZl9ncm91cDEgPC0gZ2dwbG90KGRhdGFfZmlsdGVyZWQgJT4lIGZpbHRlcih3b2pld29kenR3byAlaW4lIHdval9ncm91cF8xKSwgYWVzKHggPSBncDY0LCBjb2xvciA9IHBsZWMpKSArDQogIHN0YXRfZWNkZihnZW9tID0gInN0ZXAiKSArDQogIGZhY2V0X3dyYXAofiB3b2pld29kenR3bywgc2NhbGVzID0gImZyZWVfeSIpICsNCiAgbGFicygNCiAgICB0aXRsZSA9ICJEeXN0cnlidWFudGEgc2t1bXVsb3dhbmEgZG9jaG9kdSBuZXR0byAoZ3A2NCkgLSBHcnVwYSAxIHdvamV3w7NkenR3IiwNCiAgICB4ID0gIkRvY2jDs2QgbmV0dG8gKHrFgikiLA0KICAgIHkgPSAiUHJhd2RvcG9kb2JpZcWEc3R3byBza3VtdWxvd2FuZSIsDQogICAgY29sb3IgPSAiUMWCZcSHIg0KICApICsNCiAgc2NhbGVfeF9jb250aW51b3VzKGxhYmVscyA9IHNjYWxlczo6Y29tbWEsIGxpbWl0cyA9IGMoMCwgcXVhbnRpbGUoZGF0YV9maWx0ZXJlZCRncDY0LCAwLjk5KSkpICsNCiAgdGhlbWVfbWluaW1hbCgpICsNCiAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTYpLA0KICAgICAgICBheGlzLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEyKSwNCiAgICAgICAgYXhpcy50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTQpLA0KICAgICAgICBzdHJpcC50ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCkpDQoNCiMgV3lrcmVzIGR5c3RyeWJ1YW50eSBza3VtdWxvd2FuZWogZGxhIGdydXB5IDINCnBsb3RfY2RmX2dyb3VwMiA8LSBnZ3Bsb3QoZGF0YV9maWx0ZXJlZCAlPiUgZmlsdGVyKHdvamV3b2R6dHdvICVpbiUgd29qX2dyb3VwXzIpLCBhZXMoeCA9IGdwNjQsIGNvbG9yID0gcGxlYykpICsNCiAgc3RhdF9lY2RmKGdlb20gPSAic3RlcCIpICsNCiAgZmFjZXRfd3JhcCh+IHdvamV3b2R6dHdvLCBzY2FsZXMgPSAiZnJlZV95IikgKw0KICBsYWJzKA0KICAgIHRpdGxlID0gIkR5c3RyeWJ1YW50YSBza3VtdWxvd2FuYSBkb2Nob2R1IG5ldHRvIChncDY0KSAtIEdydXBhIDIgd29qZXfDs2R6dHciLA0KICAgIHggPSAiRG9jaMOzZCBuZXR0byAoesWCKSIsDQogICAgeSA9ICJQcmF3ZG9wb2RvYmllxYRzdHdvIHNrdW11bG93YW5lIiwNCiAgICBjb2xvciA9ICJQxYJlxIciDQogICkgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMobGFiZWxzID0gc2NhbGVzOjpjb21tYSwgbGltaXRzID0gYygwLCBxdWFudGlsZShkYXRhX2ZpbHRlcmVkJGdwNjQsIDAuOTkpKSkgKw0KICB0aGVtZV9taW5pbWFsKCkgKw0KICB0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNiksDQogICAgICAgIGF4aXMudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTIpLA0KICAgICAgICBheGlzLnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNCksDQogICAgICAgIHN0cmlwLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0KSkNCg0KIyBXecWbd2lldGxhbmllIHd5a3Jlc8Ozdw0KcHJpbnQocGxvdF9kZW5zaXR5X2dyb3VwMSkNCnByaW50KHBsb3RfZGVuc2l0eV9ncm91cDIpDQpwcmludChwbG90X2NkZl9ncm91cDEpDQpwcmludChwbG90X2NkZl9ncm91cDIpDQoNCmBgYA0KDQo=