https://cran.r-project.org/
https://rstudio.com/products/rstudio/download/
install.packages("IPDfromKM") #zainstaluj pakiet przed pierwszym użyciem
library(IPDfromKM) #wczytaj pakiet każdorazowo po nowym uruchomieniu środowiskaPlik źródłowy z wykresem zawierającym krzywe przeżycia Kaplana-Meiera w formacie JPEG,PNG,BMP,JPG lub TIFF
Katalog roboczy z plikiem źródłowym
Funkcje pomocnicze
Dostęp do szczegółowego opisu funkcji zapewnia funkcjia help() lub znak zapytania postawiony przed nazwą funkcji
Operatory przypisania
Nazwy dla obiektów będących wynikami zastosowanej funkcji nadajemy używając operatora <= lub =
wyniki_analizy <- survreport(ipd1 = getIPD_dau$IPD, #przypisujemy dane wejściowe dla daurismo
ipd2 = getIPD_dau$IPD, #przypisujemy dane wejściowe dla komparatora
arms = 2, #liczba ramion w badaniu
interval = 5)
Odwołanie do elementów obiektu
Dostep do elemntów utworzonego obiektu (np. kolumn lub tabel) zapewnia użycie znaku dolara na końcu nazwy obiektu
Zapisywanie danych
Wykres źródłowy zaimportowany jest do środowiska R funkcją getpoints(). Jako argumenty funkcji wprowadzono odczytane z wykresu wartości maksymalne i minimalne dla osi x i y. Następnie definiowane są dwa obiekty reprezentujące krzywe przeżycia nadając im nazwy zgodne z zastosowanym schematem leczenia. W wyniku zastosowania funkcji obraz w postaci wykresu z krzywymi przeżycia został wczytany do okna wykresów w celu ręcznego oznaczenia współrzędnych punktów przebiegu krzywych przeżycia. Dla każdej z krzywych przeżycia oznaczono wartości minimalne i maksymalne osi x i y oraz współrzędne punktów poprzez kliknięcia na krzywej, dążąc do oznaczenia wszystkich punktów załamania krzywej. Wynikiem funkcji był dwukolumnowy zestaw współrzędnych punktów oznaczonych na krzywej przeżycia Kaplana-Meiera wymagany przez funkcję preprocess()
getpoints_dau <- getpoints("daurismo.png",
x1 = 0, #wpisz wartość minimalną osi x
x2 = 40, #wpisz wartość maksymalną osi x
y1 = 0, #wpisz wartość minimalną osi y
y2 = 1) #wpisz wartość maksymalną osi y
# A tibble: 113 x 2
x y
<dbl> <dbl>
1 0.0797 1
2 0.133 0.990
3 0.345 0.985
4 0.345 0.975
5 0.690 0.978
6 0.717 0.963
7 0.903 0.962
8 0.929 0.952
9 1.01 0.949
10 1.01 0.941
11 1.12 0.931
12 1.22 0.925
13 1.27 0.925
14 1.27 0.911
15 1.75 0.908
16 1.75 0.898
17 2.04 0.899
18 2.04 0.892
19 2.12 0.878
20 2.10 0.876
21 2.26 0.877
22 2.28 0.870
23 2.28 0.867
24 2.34 0.864
25 2.42 0.855
26 2.47 0.855
27 2.47 0.846
28 2.55 0.846
29 2.63 0.789
30 2.97 0.789
31 3.00 0.777
32 3.16 0.777
33 3.16 0.767
34 3.19 0.766
35 3.32 0.758
36 3.32 0.748
37 3.48 0.748
38 3.48 0.735
39 3.48 0.735
40 3.51 0.725
41 3.64 0.714
42 3.74 0.698
43 3.80 0.690
44 3.80 0.678
45 4.04 0.678
46 4.06 0.669
47 4.17 0.654
48 4.25 0.650
49 4.43 0.652
50 4.41 0.627
51 4.73 0.624
52 4.70 0.612
53 5.05 0.613
54 5.07 0.599
55 6.53 0.597
56 6.61 0.581
57 6.64 0.575
58 6.72 0.570
59 6.88 0.571
60 6.93 0.559
61 7.06 0.555
62 7.04 0.543
63 7.38 0.543
64 7.49 0.523
65 7.52 0.518
66 7.78 0.520
67 7.78 0.501
68 8.34 0.502
69 8.36 0.490
70 8.82 0.490
71 8.82 0.486
72 8.90 0.479
73 8.98 0.474
74 9.14 0.471
75 9.14 0.464
76 9.16 0.463
77 9.16 0.436
78 9.51 0.433
79 9.51 0.422
80 9.98 0.423
81 9.96 0.408
82 11.1 0.408
83 11.1 0.395
84 12.2 0.397
85 12.3 0.370
86 12.4 0.363
87 12.5 0.357
88 12.6 0.350
89 12.6 0.338
90 13.9 0.338
91 13.9 0.328
92 14.5 0.327
93 14.6 0.316
94 14.8 0.306
95 14.9 0.300
96 15.0 0.291
97 15.0 0.286
98 16.5 0.283
99 16.5 0.269
100 18.5 0.271
101 18.5 0.249
102 19.7 0.252
103 19.7 0.230
104 23.1 0.231
105 23.1 0.221
106 23.1 0.214
107 23.2 0.201
108 23.2 0.190
109 26.4 0.192
110 26.4 0.155
111 26.8 0.155
112 26.8 0.101
113 33.1 0.101
Do wstępnego przetwarzania danych wykorzystano funkcję preprocess(). Dla zdefiniowanych wcześniej obiektów użyta funkcja przetworzyła następujące dane będące argumentami funkcji:
dwukolumnowy zestaw współrzędnych punktów będący wynikiem funkcji getpoint()
ręcznie wprowadzone dane z tabeli „number at risk” w postaci wektorów „nrisk” jako liczba osób z zagrożeniu oraz „trisk” jako interwał czasowy dla tych osób
ręcznie wprowadzone dane dotyczące początkowej liczby osób w postaci wektora „total pts”
Dodatkowo, należy przypisać skale osi y wpisując wartość maksymalną 100 w przypadku wartości procentowych lub 1 w przypadku wartości dziesiętnych.
preprocess_dau <- #nadaj nazwę dla obiektu
preprocess(getpoint_dau, #wpisz nazwę obiektu utworzonego funkcją getpoints
trisk = c(0,5,10,15,20,25,30,35,40), #podaj interwały czasowe z osi y
nrisk = c(78,45,30,20,11,5,1,0,0), #wpisz liczbę osób w zagrożeniu
totalpts = 40, #wpisz początkową liczbę pacjentów
maxy = 1) #wpisz wartość maksymalną osi y
preprocessdat - zbiór danych po wstępnym przetworzeniu
intervalIndex - tabela wyświetlająca indeks punktów odczytu w każdym przedziale czasowym reprezentująca zestaw zmiennych
inputdat - zbiór danych stanowiących dane wejściowe
time: czas zdarzenia
surv: prawdopodobieństwo przeżycia
id: liczba porządkowa
interval: interwał czasu dla oszacowanych wartości
trisk: interwał czasowy dla liczby osób w zagrożeniu
nrisk: liczba osób w zagrożeniu
lower, upper: zakres interwału
$preprocessdat
time surv id interval
1 0.00000000 1.0000000 1 1
2 0.07966616 1.0000000 2 1
3 0.13277693 0.9897511 3 1
4 0.34522003 0.9853587 4 1
5 0.34522003 0.9751098 5 1
6 0.69044006 0.9751098 6 1
7 0.71699545 0.9633968 7 1
8 0.90288316 0.9619327 8 1
9 0.92943854 0.9516837 9 1
10 1.00910470 0.9487555 10 1
11 1.00910470 0.9414348 11 1
12 1.11532625 0.9311859 12 1
13 1.22154780 0.9253294 13 1
14 1.27465857 0.9253294 14 1
15 1.27465857 0.9106881 15 1
16 1.75265554 0.9077599 16 1
17 1.75265554 0.8975110 17 1
18 2.04476480 0.8975110 18 1
19 2.04476480 0.8916545 19 1
20 2.09787557 0.8755490 20 1
21 2.12443096 0.8755490 21 1
22 2.25720789 0.8755490 22 1
23 2.28376328 0.8696925 23 1
24 2.28376328 0.8667643 24 1
25 2.33687405 0.8638360 25 1
26 2.41654021 0.8550512 26 1
27 2.46965099 0.8550512 27 1
28 2.46965099 0.8462665 28 1
29 2.54931715 0.8462665 29 1
30 2.62898331 0.7891654 30 1
31 2.97420334 0.7891654 31 1
32 3.00075873 0.7774524 32 1
33 3.16009105 0.7774524 33 1
34 3.16009105 0.7672035 34 1
35 3.18664643 0.7657394 35 1
36 3.31942337 0.7584187 36 1
37 3.31942337 0.7481698 37 1
38 3.47875569 0.7481698 38 1
39 3.47875569 0.7349927 39 1
40 3.50531108 0.7247438 40 1
41 3.63808801 0.7144949 41 1
42 3.74430956 0.6983895 42 1
43 3.79742033 0.6896047 43 1
44 3.79742033 0.6778917 44 1
45 4.03641882 0.6778917 45 1
46 4.06297420 0.6691069 46 1
47 4.16919575 0.6544656 47 1
48 4.24886191 0.6500732 48 1
49 4.43474962 0.6500732 49 1
50 4.70030349 0.6120059 50 1
51 4.72685888 0.6120059 51 1
52 5.04552352 0.6120059 52 2
53 5.07207891 0.5988287 53 2
54 6.53262519 0.5973646 54 2
55 6.61229135 0.5812592 55 2
56 6.63884674 0.5754026 56 2
57 6.71851290 0.5695461 57 2
58 6.87784522 0.5695461 58 2
59 6.93095599 0.5592972 59 2
60 7.03717754 0.5431918 60 2
61 7.06373293 0.5431918 61 2
62 7.38239757 0.5431918 62 2
63 7.48861912 0.5226940 63 2
64 7.51517451 0.5183016 64 2
65 7.78072838 0.5183016 65 2
66 7.78072838 0.5007321 66 2
67 8.33839150 0.5007321 67 2
68 8.36494689 0.4904832 68 2
69 8.81638847 0.4904832 69 2
70 8.81638847 0.4860908 70 2
71 8.89605463 0.4787701 71 2
72 8.97572079 0.4743777 72 2
73 9.13505311 0.4714495 73 2
74 9.13505311 0.4641288 74 2
75 9.16160850 0.4626647 75 2
76 9.16160850 0.4363104 76 2
77 9.50682853 0.4333821 77 2
78 9.50682853 0.4216691 78 2
79 9.95827011 0.4084919 79 2
80 9.98482549 0.4084919 80 2
81 11.12670713 0.4084919 81 3
82 11.12670713 0.3953148 82 3
83 12.24203338 0.3953148 83 3
84 12.34825493 0.3704246 84 3
85 12.42792109 0.3631040 85 3
86 12.53414264 0.3572474 86 3
87 12.61380880 0.3499268 87 3
88 12.61380880 0.3382138 88 3
89 13.88846737 0.3382138 89 3
90 13.91502276 0.3279649 90 3
91 14.52579666 0.3265007 91 3
92 14.55235205 0.3162518 92 3
93 14.76479514 0.3060029 93 3
94 14.92412747 0.3001464 94 3
95 14.97723824 0.2913616 95 3
96 15.00379363 0.2855051 96 4
97 16.46433991 0.2825769 97 4
98 16.49089530 0.2693997 98 4
99 18.50910470 0.2693997 99 4
100 18.53566009 0.2489019 100 4
101 19.65098634 0.2489019 101 4
102 19.65098634 0.2298682 102 4
103 23.05007587 0.2298682 103 5
104 23.12974203 0.2210835 104 5
105 23.12974203 0.2137628 105 5
106 23.18285281 0.1903367 106 5
107 23.20940819 0.1903367 107 5
108 26.39605463 0.1903367 108 6
109 26.39605463 0.1551977 109 6
110 26.82094082 0.1551977 110 6
111 26.84749621 0.1010249 111 6
112 33.08801214 0.1010249 112 7
$intervalIndex
interval lower upper t.risk n.risk
1 1 1 51 0 78
2 2 52 80 5 45
3 3 81 95 10 30
4 4 96 102 15 20
5 5 103 107 20 11
6 6 108 111 25 5
7 7 112 112 30 1
$endpts
[1] 0
$inputdat
time surv
1 0.07966616 1.0000000
2 0.13277693 0.9897511
3 0.34522003 0.9853587
4 0.34522003 0.9751098
5 0.69044006 0.9780381
6 0.71699545 0.9633968
7 0.90288316 0.9619327
8 0.92943854 0.9516837
9 1.00910470 0.9487555
10 1.00910470 0.9414348
11 1.11532625 0.9311859
12 1.22154780 0.9253294
13 1.27465857 0.9253294
14 1.27465857 0.9106881
15 1.75265554 0.9077599
16 1.75265554 0.8975110
17 2.04476480 0.8989751
18 2.04476480 0.8916545
19 2.12443096 0.8784773
20 2.09787557 0.8755490
21 2.25720789 0.8770132
22 2.28376328 0.8696925
23 2.28376328 0.8667643
24 2.33687405 0.8638360
25 2.41654021 0.8550512
26 2.46965099 0.8550512
27 2.46965099 0.8462665
28 2.54931715 0.8462665
29 2.62898331 0.7891654
30 2.97420334 0.7891654
31 3.00075873 0.7774524
32 3.16009105 0.7774524
33 3.16009105 0.7672035
34 3.18664643 0.7657394
35 3.31942337 0.7584187
36 3.31942337 0.7481698
37 3.47875569 0.7481698
38 3.47875569 0.7349927
39 3.47875569 0.7349927
40 3.50531108 0.7247438
41 3.63808801 0.7144949
42 3.74430956 0.6983895
43 3.79742033 0.6896047
44 3.79742033 0.6778917
45 4.03641882 0.6778917
46 4.06297420 0.6691069
47 4.16919575 0.6544656
48 4.24886191 0.6500732
49 4.43474962 0.6515373
50 4.40819423 0.6266471
51 4.72685888 0.6237189
52 4.70030349 0.6120059
53 5.04552352 0.6134700
54 5.07207891 0.5988287
55 6.53262519 0.5973646
56 6.61229135 0.5812592
57 6.63884674 0.5754026
58 6.71851290 0.5695461
59 6.87784522 0.5710102
60 6.93095599 0.5592972
61 7.06373293 0.5549048
62 7.03717754 0.5431918
63 7.38239757 0.5431918
64 7.48861912 0.5226940
65 7.51517451 0.5183016
66 7.78072838 0.5197657
67 7.78072838 0.5007321
68 8.33839150 0.5021962
69 8.36494689 0.4904832
70 8.81638847 0.4904832
71 8.81638847 0.4860908
72 8.89605463 0.4787701
73 8.97572079 0.4743777
74 9.13505311 0.4714495
75 9.13505311 0.4641288
76 9.16160850 0.4626647
77 9.16160850 0.4363104
78 9.50682853 0.4333821
79 9.50682853 0.4216691
80 9.98482549 0.4231332
81 9.95827011 0.4084919
82 11.12670713 0.4084919
83 11.12670713 0.3953148
84 12.24203338 0.3967789
85 12.34825493 0.3704246
86 12.42792109 0.3631040
87 12.53414264 0.3572474
88 12.61380880 0.3499268
89 12.61380880 0.3382138
90 13.88846737 0.3382138
91 13.91502276 0.3279649
92 14.52579666 0.3265007
93 14.55235205 0.3162518
94 14.76479514 0.3060029
95 14.92412747 0.3001464
96 14.97723824 0.2913616
97 15.00379363 0.2855051
98 16.46433991 0.2825769
99 16.49089530 0.2693997
100 18.50910470 0.2708638
101 18.53566009 0.2489019
102 19.65098634 0.2518302
103 19.65098634 0.2298682
104 23.05007587 0.2313324
105 23.12974203 0.2210835
106 23.12974203 0.2137628
107 23.20940819 0.2005857
108 23.18285281 0.1903367
109 26.39605463 0.1918009
110 26.39605463 0.1551977
111 26.82094082 0.1551977
112 26.84749621 0.1010249
113 33.08801214 0.1010249
attr(,"class")
[1] "preKM"
Rekonstrukcja danych odbywa się z wykorzystaniem funkcji getIPD(). Analityk wprowadza argumenty funkcji:
prep: obiekt zwrócony przez funkcję preprocess()
armID: etykieta używana jako wskaźnik grupy, zwykle 0 dla grupy kontrolnej i 1 dla grupy leczonej
tot.events: (opcjonalnie) łączna liczba zdarzeń
W wyniku zastosowania funkcji otrzymano szacowane indywidualne dane osób (tzw. IPD - indywidual patient data), na podstawie których zostaną wykreślone odwzorowane krzywe przeżycia Kaplana-Meiera. Dodatkowo, W celu oceny dokładności procesu rekonstrukcji funkcja generuje wykres oraz zestaw danych statystycznych s
getIPD_dau <- #nadaj nazwę dla obiektu
getIPD(preprocess_dau, #wprowadź nazwę obiektu utworzonego funkcją preprocess()
armID = 0) #nadaj identyfikator ramienia (zazwyczaj 0 i 1 dla komparatora)
IPD - tabela zawierająca szacowane indywidualne dane osób
points - tabela przedstawiająca oszacowania parametrów w każdym wczytywanym punkcie czasowym
riskmat - tabela przedstawia indeks z punktów odczytu w każdym przedziale czasowym, a także szacunkową liczbę ocenzurowanych pacjentów i zdarzeń w każdym przedziale czasowym
kstest - statystyki testowe i wartość p testu Kołmogorowa-Smirnowa przy porównywaniu rozkładów oszacowanych i wczytanych krzywych KM
precision - błąd średniokwadratowy (RMSE), średni błąd bezwzględny i maksymalny błąd bezwzględny, które mierzą różnice między oszacowanym i odczytanym prawdopodobieństwem przeżycia
$IPD
time status treat
1 0.1327769 1 0
2 0.3452200 1 0
3 0.7169954 1 0
4 0.9294385 1 0
5 0.9692716 0 0
6 1.0091047 1 0
7 1.2215478 1 0
8 1.2746586 1 0
9 1.7526555 1 0
10 1.8987102 0 0
11 2.0978756 1 0
12 2.0978756 1 0
13 2.4165402 1 0
14 2.4696510 1 0
15 2.6289833 1 0
16 2.6289833 1 0
17 2.6289833 1 0
18 2.6289833 1 0
19 2.8015933 0 0
20 3.0007587 1 0
21 3.1600910 1 0
22 3.3194234 1 0
23 3.4787557 1 0
24 3.5053111 1 0
25 3.6380880 1 0
26 3.7443096 1 0
27 3.7708649 0 0
28 3.7974203 1 0
29 4.0629742 1 0
30 4.1691958 1 0
31 4.7003035 1 0
32 4.7003035 1 0
33 4.7003035 1 0
34 5.0720789 1 0
35 6.6122914 1 0
36 6.6388467 1 0
37 6.9309560 1 0
38 7.0371775 1 0
39 7.4886191 1 0
40 7.4886191 1 0
41 7.7807284 1 0
42 8.3649469 1 0
43 8.8960546 1 0
44 9.1350531 1 0
45 9.1616085 1 0
46 9.1616085 1 0
47 9.5068285 1 0
48 9.9582701 1 0
49 11.1267071 1 0
50 12.3482549 1 0
51 12.3482549 1 0
52 12.5341426 1 0
53 12.6138088 1 0
54 13.2511381 0 0
55 13.9150228 1 0
56 14.5523520 1 0
57 14.7647951 1 0
58 14.9772382 1 0
59 15.7340668 0 0
60 15.7340668 0 0
61 16.4908953 1 0
62 17.5000000 0 0
63 17.5000000 0 0
64 17.5000000 0 0
65 18.5356601 1 0
66 19.0933232 0 0
67 19.6509863 1 0
68 23.0899090 0 0
69 23.0899090 0 0
70 23.1297420 1 0
71 23.1562974 0 0
72 23.1562974 0 0
73 23.1562974 0 0
74 26.3960546 1 0
75 26.6084977 0 0
76 26.6084977 0 0
77 26.8474962 1 0
78 33.0880121 0 0
$Points
time surv id interval risk censor event estsurv diff
1 0.00000000 1.0000000 1 1 78 0 0 1.000 0.000
2 0.07966616 1.0000000 2 1 78 0 0 1.000 0.000
3 0.13277693 0.9897511 3 1 78 0 1 0.987 -0.003
4 0.34522003 0.9853587 4 1 77 0 0 0.974 -0.011
5 0.34522003 0.9751098 5 1 77 0 1 0.974 -0.001
6 0.69044006 0.9751098 6 1 76 0 0 0.974 -0.001
7 0.71699545 0.9633968 7 1 76 0 1 0.962 -0.001
8 0.90288316 0.9619327 8 1 75 0 0 0.962 0.000
9 0.92943854 0.9516837 9 1 75 1 1 0.949 -0.003
10 1.00910470 0.9487555 10 1 73 0 0 0.936 -0.013
11 1.00910470 0.9414348 11 1 73 0 1 0.936 -0.005
12 1.11532625 0.9311859 12 1 72 0 0 0.936 0.005
13 1.22154780 0.9253294 13 1 72 0 1 0.923 -0.002
14 1.27465857 0.9253294 14 1 71 0 0 0.910 -0.015
15 1.27465857 0.9106881 15 1 71 0 1 0.910 -0.001
16 1.75265554 0.9077599 16 1 70 0 0 0.897 -0.011
17 1.75265554 0.8975110 17 1 70 1 1 0.897 -0.001
18 2.04476480 0.8975110 18 1 68 0 0 0.897 -0.001
19 2.04476480 0.8916545 19 1 68 0 0 0.897 0.005
20 2.09787557 0.8755490 20 1 68 0 2 0.870 -0.006
21 2.12443096 0.8755490 21 1 66 0 0 0.870 -0.006
22 2.25720789 0.8755490 22 1 66 0 0 0.870 -0.006
23 2.28376328 0.8696925 23 1 66 0 0 0.870 0.000
24 2.28376328 0.8667643 24 1 66 0 0 0.870 0.003
25 2.33687405 0.8638360 25 1 66 0 0 0.870 0.006
26 2.41654021 0.8550512 26 1 66 0 1 0.857 0.002
27 2.46965099 0.8550512 27 1 65 0 0 0.844 -0.011
28 2.46965099 0.8462665 28 1 65 0 1 0.844 -0.002
29 2.54931715 0.8462665 29 1 64 0 0 0.844 -0.002
30 2.62898331 0.7891654 30 1 64 1 4 0.791 0.002
31 2.97420334 0.7891654 31 1 59 0 0 0.791 0.002
32 3.00075873 0.7774524 32 1 59 0 1 0.778 0.001
33 3.16009105 0.7774524 33 1 58 0 0 0.764 -0.013
34 3.16009105 0.7672035 34 1 58 0 1 0.764 -0.003
35 3.18664643 0.7657394 35 1 57 0 0 0.764 -0.002
36 3.31942337 0.7584187 36 1 57 0 0 0.751 -0.007
37 3.31942337 0.7481698 37 1 57 0 1 0.751 0.003
38 3.47875569 0.7481698 38 1 56 0 0 0.738 -0.010
39 3.47875569 0.7349927 39 1 56 0 1 0.738 0.003
40 3.50531108 0.7247438 40 1 55 0 1 0.724 -0.001
41 3.63808801 0.7144949 41 1 54 0 1 0.711 -0.003
42 3.74430956 0.6983895 42 1 53 1 1 0.697 -0.001
43 3.79742033 0.6896047 43 1 51 0 1 0.684 -0.006
44 3.79742033 0.6778917 44 1 50 0 0 0.684 0.006
45 4.03641882 0.6778917 45 1 50 0 0 0.684 0.006
46 4.06297420 0.6691069 46 1 50 0 1 0.670 0.001
47 4.16919575 0.6544656 47 1 49 0 1 0.656 0.002
48 4.24886191 0.6500732 48 1 48 0 0 0.656 0.006
49 4.43474962 0.6500732 49 1 48 0 0 0.656 0.006
50 4.70030349 0.6120059 50 1 48 0 3 0.615 0.003
51 4.72685888 0.6120059 51 1 45 0 0 0.615 0.003
52 5.04552352 0.6120059 52 2 45 0 0 0.615 0.003
53 5.07207891 0.5988287 53 2 45 0 1 0.602 0.003
54 6.53262519 0.5973646 54 2 44 0 0 0.602 0.005
55 6.61229135 0.5812592 55 2 44 0 1 0.588 0.007
56 6.63884674 0.5754026 56 2 43 0 1 0.574 -0.001
57 6.71851290 0.5695461 57 2 42 0 0 0.574 0.004
58 6.87784522 0.5695461 58 2 42 0 0 0.574 0.004
59 6.93095599 0.5592972 59 2 42 0 1 0.561 0.002
60 7.03717754 0.5431918 60 2 41 0 1 0.547 0.004
61 7.06373293 0.5431918 61 2 40 0 0 0.547 0.004
62 7.38239757 0.5431918 62 2 40 0 0 0.547 0.004
63 7.48861912 0.5226940 63 2 40 0 2 0.520 -0.003
64 7.51517451 0.5183016 64 2 38 0 0 0.520 0.002
65 7.78072838 0.5183016 65 2 38 0 0 0.506 -0.012
66 7.78072838 0.5007321 66 2 38 0 1 0.506 0.005
67 8.33839150 0.5007321 67 2 37 0 0 0.506 0.005
68 8.36494689 0.4904832 68 2 37 0 1 0.492 0.002
69 8.81638847 0.4904832 69 2 36 0 0 0.492 0.002
70 8.81638847 0.4860908 70 2 36 0 0 0.492 0.006
71 8.89605463 0.4787701 71 2 36 0 1 0.479 0.000
72 8.97572079 0.4743777 72 2 35 0 0 0.479 0.005
73 9.13505311 0.4714495 73 2 35 0 1 0.465 -0.006
74 9.13505311 0.4641288 74 2 34 0 0 0.465 0.001
75 9.16160850 0.4626647 75 2 34 0 0 0.438 -0.025
76 9.16160850 0.4363104 76 2 34 0 2 0.438 0.002
77 9.50682853 0.4333821 77 2 32 0 0 0.424 -0.009
78 9.50682853 0.4216691 78 2 32 0 1 0.424 0.002
79 9.95827011 0.4084919 79 2 31 0 1 0.410 0.002
80 9.98482549 0.4084919 80 2 30 0 0 0.410 0.002
81 11.12670713 0.4084919 81 3 30 0 0 0.397 -0.011
82 11.12670713 0.3953148 82 3 30 0 1 0.397 0.002
83 12.24203338 0.3953148 83 3 29 0 0 0.397 0.002
84 12.34825493 0.3704246 84 3 29 0 2 0.369 -0.001
85 12.42792109 0.3631040 85 3 27 0 0 0.369 0.006
86 12.53414264 0.3572474 86 3 27 0 1 0.356 -0.001
87 12.61380880 0.3499268 87 3 26 0 0 0.342 -0.008
88 12.61380880 0.3382138 88 3 26 1 1 0.342 0.004
89 13.88846737 0.3382138 89 3 24 0 0 0.342 0.004
90 13.91502276 0.3279649 90 3 24 0 1 0.328 0.000
91 14.52579666 0.3265007 91 3 23 0 0 0.328 0.001
92 14.55235205 0.3162518 92 3 23 0 1 0.313 -0.003
93 14.76479514 0.3060029 93 3 22 0 1 0.299 -0.007
94 14.92412747 0.3001464 94 3 21 0 0 0.299 -0.001
95 14.97723824 0.2913616 95 3 21 0 1 0.285 -0.006
96 15.00379363 0.2855051 96 4 20 2 0 0.285 -0.001
97 16.46433991 0.2825769 97 4 18 0 0 0.285 0.002
98 16.49089530 0.2693997 98 4 18 3 1 0.269 0.000
99 18.50910470 0.2693997 99 4 14 0 0 0.269 0.000
100 18.53566009 0.2489019 100 4 14 1 1 0.250 0.001
101 19.65098634 0.2489019 101 4 12 0 0 0.229 -0.020
102 19.65098634 0.2298682 102 4 12 0 1 0.229 -0.001
103 23.05007587 0.2298682 103 5 11 2 0 0.229 -0.001
104 23.12974203 0.2210835 104 5 9 0 0 0.204 -0.017
105 23.12974203 0.2137628 105 5 9 3 1 0.204 -0.010
106 23.18285281 0.1903367 106 5 5 0 0 0.204 0.014
107 23.20940819 0.1903367 107 5 5 0 0 0.204 0.014
108 26.39605463 0.1903367 108 6 5 0 0 0.163 -0.027
109 26.39605463 0.1551977 109 6 5 2 1 0.163 0.008
110 26.82094082 0.1551977 110 6 2 0 0 0.163 0.008
111 26.84749621 0.1010249 111 6 2 0 1 0.081 -0.020
112 33.08801214 0.1010249 112 7 1 1 0 0.081 -0.020
$riskmat
interval lower upper trisk nrisk nrisk.hat censor.hat event.hat
1 1 1 51 0 78 78 4 29
2 2 52 80 5 45 45 0 15
3 3 81 95 10 30 30 1 9
4 4 96 102 15 20 20 6 3
5 5 103 107 20 11 11 5 1
6 6 108 111 25 5 5 2 2
7 7 112 112 30 1 1 1 0
$kstest
D p-value
0.02678571 1.00000000
$precision
RMSE mean_abserror max_abserror
0.007 0.005 0.014
$endpts
[1] 0
attr(,"class")
[1] "getKM"
time: czas zdarzenia
status: indeks zdarzenia: 0 – dane cenzurowane, 1 – zgon
treat: indeks grupy terapeutycznej (ramienia badania)
interval: interwał czasu dla oszacowanych wartości
lower, upper: - dolny i górny zakres przedziału
trisk: interwał czasowy dla liczby osób w zagrożeniu
**nrisk: liczba osób w zagrożeniu
nrisk.hat: oszacowana liczba osób w zagrożeniu
censor.hat: oszacowana liczba zdarzeń cenzurowanych
event.hat: oszacowana liczba zdarzeń
The function read in 112 points from the K-M curve, and 7 numbers of patients at risk.
Thus the read-in points are divided into 7 time intervals.
interval lower upper trisk nrisk nrisk.hat censor.hat event.hat
1 1 51 0 78 78 4 29
2 52 80 5 45 45 0 15
3 81 95 10 30 30 1 9
4 96 102 15 20 20 6 3
5 103 107 20 11 11 5 1
6 108 111 25 5 5 2 2
7 112 112 30 1 1 1 0
The root-mean-square error between estimated and read-in survival probabilities is 0.007 .
The mean absolute error between estimated and read-in survival probabilities is 0.005 .
The max absolute error between estimated and read-in survival probabilities is 0.014 .
The Kolmogorov-Smirnov test:
Test statistics D= 0.02679 p-value= 1
Null hypothesis: distributions of the read-in and estimated survival probabilities are the same.
Wizualizacja krzywych Kaplana-Meiera i krzywych skumulowanego hazardu dla zrekonstruowanych danych IPD. Funkcja zwraca również dwa zbiory danych w postaci tabel z oszacowanym prawdopodobieńśtwem przeżycia w interwałach czasowych oraz czas przeżycia dla 25%, 50% i 75% pacjentów
survreport_dau <- #nadaj nazwę dla obiektu
survreport(ipd1 = getIPD_dau$IPD, #przypisz dane wejściowe dla daurismo
ipd2 = getIPD_dau$IPD, #przypisz dane wejściowe dla komparatora
arms = 2, #wpisz liczbę ramion w badaniu
interval = 5) #wpisz interwał czasowy, w jakim chcesz otrzymać wyniki
survtime - oszacowany czas przeżycia dla 25%, 50% i 75% pacjentów
survprob - prawdopodobieństwo przeżycia w interwałach czasowych
$arm1
$arm1$survtime
time 0.95LCI 0.95UCI
survprob = 0.75 3.4788 2.6290 4.7003
survprob = 0.5 8.3649 6.6123 12.3483
survprob = 0.25 18.5357 12.6138 NA
$arm1$survprob
Surv SE 0.95LCI 0.95UCI
time = 5 0.6153 0.0562 0.5145 0.7360
time = 10 0.4102 0.0572 0.3121 0.5392
time = 15 0.2849 0.0529 0.1980 0.4099
time = 20 0.2290 0.0516 0.1472 0.3562
time = 25 0.2036 0.0518 0.1237 0.3351
time = 30 0.0814 0.0638 0.0175 0.3785
$arm2
$arm2$survtime
time 0.95LCI 0.95UCI
survprob = 0.75 3.4788 2.6290 4.7003
survprob = 0.5 8.3649 6.6123 12.3483
survprob = 0.25 18.5357 12.6138 NA
$arm2$survprob
Surv SE 0.95LCI 0.95UCI
time = 5 0.6153 0.0562 0.5145 0.7360
time = 10 0.4102 0.0572 0.3121 0.5392
time = 15 0.2849 0.0529 0.1980 0.4099
time = 20 0.2290 0.0516 0.1472 0.3562
time = 25 0.2036 0.0518 0.1237 0.3351
time = 30 0.0814 0.0638 0.0175 0.3785
attr(,"class")
[1] "survKM"
Treatment 1: odzworowana krzywa przeżycia dla 1 ramienia badania
Treatment 2: odzworowana krzywa przeżycia dla 2 ramienia badania
survprob: prawdopodobieństwo przeżycia dla 75%, 50% i 25% pacjentów
time: czas przeżycia
0.95LCI: dolna granica przedziału ufności
0.95 UCI: górna granica przedziału ufności
LogHR: logarytmiczny współczynnik ryzyka
Logrank test -value: wartość p testu logrank
https://cran.r-project.org/
https://rstudio.com/products/rstudio/download/
install.packages("IPDfromKM") #zainstaluj pakiet przed pierwszym użyciem
library(IPDfromKM) #wczytaj pakiet każdorazowo po nowym uruchomieniu środowiskagetpoints_dau <- getpoints("daurismo.png",
x1 = 0, #wpisz wartość minimalną osi x
x2 = 40, #wpisz wartość maksymalną osi x
y1 = 0, #wpisz wartość minimalną osi y
y2 = 1) #wpisz wartość maksymalną osi ypreprocess_dau <- #nadaj nazwę dla obiektu
preprocess(getpoint_dau, #wpisz nazwę obiektu utworzonego funkcją getpoints
trisk = c(0,5,10,15,20,25,30,35,40), #podaj interwały czasowe z osi y
nrisk = c(78,45,30,20,11,5,1,0,0), #wpisz liczbę osób w zagrożeniu
totalpts = 40, ##wpisz początkową liczbę pacjentów
maxy = 1) #wpisz wartość maksymalną osi ygetIPD_dau <- #nadaj nazwę dla obiektu
getIPD(preprocess_dau, #wprowadź nazwę obiektu utworzonego funkcją preprocess()
armID = 0) #nadaj identyfikator ramienia (zazwyczaj 0 i 1 dla komparatora)Powtórz czynność dla drugiej grupy w badaniu (arm 2)
Przeprowadź analizę przeżycia przy użyciu odtworzonych danych IPD
Na Liu, Yanhong Zhou, J. Jack Lee. IPDfromKM: Reconstruct Individual Patient Data from Published Kaplan-Meier Survival Curves - https://www.researchsquare.com/article/rs-117525/v1
P. Guyot, AE. Ades, M. JNM. Ouwens, N. J.Welton. Enhanced secondary analysis of survival data: reconstructing the data from published Kaplan-Meier survival curves - https://pubmed.ncbi.nlm.nih.gov/22297116/
R. Perry, M. Taylor, L. Lewis, A. Yellowlees, K. Fleetwood, T. Barata. Estimating Survival Data from Published Kaplan-Meier Curves: a Comparison of Methods - https://pubmed.ncbi.nlm.nih.gov/27200548/