https://rpubs.com/staszkiewicz/CCR_rep_PL
https://www.dropbox.com/scl/fo/sajrtchhqeftivhd4zwqu/h?rlkey=u37l184e2khoxfufulsyq00kc&dl=0
Dobre dane…
W metodach przeglądów systematycznych włączenia lub wyłączenia pozycji literatury do przeglądu stanowią główne pole uznania badacza, a co za tym idzie słabość metodologiczną. Ponieważ nie mamy obiektywnych i pełnych kryteriów włączania lub wyłączania pozycji literatury. W praktyce stosuje się różne kryteria filtracji, np. ranking czasopisma, liczę cytowań, język, typ wypowiedzi (np. tylko artykuły, bez monografii), okres czasowy itd. Wynika to z tego, że pierwotnie zidentyfikowana populacja może wynieść kilka tysięcy pozycji, zaś racjonalny przegląd literatury do ok. 100 pozycji. Typowo stosuje się PRISMę tj.
Liberati et al. (2009)
Na obrazku zaznaczono w owalu umiejscowienie produry redukcji populacji generalnej wg Liberati et al. (2009).
Idea regresji cytowań spowadza się do tego, iż nie trzeba wskazywać uzaniowo mechanizmów filtrowania, a można to zrobić algorytmicznie.
Wyobraźmy sobie, że mamy już wybraną całą populacje artykułów, które dotyczą interesującego nas zagadnienia (np. pozarewizyjnych składników wynagrodzeń biegłych rewidentów). Tych pozycji może być nieskończenie dużo, lecz cześć z nich jest ważna i uznana, a część może być marginalnym uzupełnieniem głównego nurtu rozważań. Gdyby ktokolwiek przeczytał całą tę literaturę, miał wiedzę ekspercką w dziedzinie rewizji, mogły wybrać ważne pozycje do przeglądu literatury. Taki wybór uznaniowy oparty jest o wiedzę prestiż i kompetencje tego, kto dokonuje wyboru. Niemniej jednak, dwie osoby o podobnym poziomie wiedzy i kompetencji mogą dokonać różnych wyborów - nazywa się to obciążeniem badacza. Wobec powyższego jak tego dokonać by było obiektywnie. PRISMa w swej istocie nie daje na to odpowiedzi zaleca jedynie powtarzalność, tj. wytłumaczenie wyboru. CCR (citation count regression) jest zbudowana na innej filozofii, a mianowicie, próbuje określić cały obszar badawczy i wybrać te pozycje, które albo najbardziej oddziaływują na główny nurt, albo określają granicę poznania.
CCR jest regresją, gdzie zmienną zależną jest roczna liczba cytowań papieru, zaś zmienne niezależne wynikają z badań bibliometrycznych dotyczących czynników wpływających na cytowania. CCR zakłada, iż liczba cytowań wskazuje na jakość naukową artykułu i jest to stymulanta (tj. większa liczba cytowań to lepsza jakość). Założenie to jest dość naiwne i mocno krytykowana, lecz sam instrument jest całkiem racjonalny.
\[ y = aX+b \] w naszym przykładzie \(y\) to roczna liczba cytowań, zaś \(X\) to wektor zmiennych niezależnych, \(b\) wyraz wolny.
Wektor \(X\) możę sie składać z dowolnego logicznego zestawu zmiennych typowych dla danej dziedziny. Nie zgłębiając dalej tematu przymijmy następujące zmienne wpływające na liczbę cytwowań. \(Years\) liczba lat od opublikowania artykułu \(BigSampe\) zmienna binarna równa 1 gdy w artykule stosowana jest próba powyżej 1000 elementóW, \(Method\) zmienna binarna 1 dla regressji, \(Anglo-Saxon\) zmienna binarna jeśl rynkiem omawianym w artykule jest US, Australia, Singapur, UK lub Nowa Zeleanida, \(USA\) zmienna binarna, gdy badanie dotyczy USA, \(TimeSpan\) zakres czasowy próby analizowanej w artykule (liczba lat), \(Sample size\) liczba elementów w próbie, \(BusinessSupport\) przyjmuje wartość 1 gdy badanie było finansowane zewnętrznie przez podmioty gospodarcze,
Wyobraźmy sobie, że mamy zbiór artykułów zaimportowanych z jakiejkolwiek bazy abstraktowej (np. WoS czy Scopus), zmienne do regeresji budowane są na podstawie metadanych tj. informacji, które znajdują się opisie bibliometrycznym lub streszczeniu danej pozycji.
Jeśli narysujemy wykres rozrzutu tj. liczba cytowań versus zmienne zależne, to możemy w zasadzie uzyskać albo obraz “niekonkretny” losowy Panel A, albo zbiór punktów przypominających jakąś krzywą Panel B. W obu przypadkach możemy dopasować regresje liniową Panel C i D lecz błędy tych dopasowań mogą być znaczne (co ciekawe ta metoda jest na nie odporna).
Linię regersji niebieską na Panelu C i D możemy interpretować jako główny prąd w ramach analizowanej literatury. A mianowicie większość papierów jest zbliżona (wg. zmiennych niezależnych) do linii regersji, stąd papiery które są oddalone od niej dotyczą albo obszarów poboczny, albo nowych perspektyw lub reprezentują nieudane merytorycznie papiery nad którymi inni badacze miłosiernie spuścili kurtynę milczenia.
A stąd już blisko do zrozumienia idei CCR. Otóż dodajmy do naszej listy jeszcze jeden artykuł reprezentowany przez czerwony punkt na Panelach E i F. Przeliczmy regresję ponownie i ją wykreślmy otrzymamy nową linię regresji (czerwona lina na Panelu E i F). Ów jeden papier oddziałuje na główny nurt odchylając go lekko (Panel F) lub istotnie zmieniając kierunek (Panel E). Ten kierunek to nic innego jak \(\Delta \beta\) tj. zmiana wartości współczynnika kierunkowego regresji po uwzględnieniu nowego artykułu. Wobec powyższego nasza literatura skłąda sie w dużej mierze z artykułów wewnątrz głównego nurtu i tych, które są poza głównym nurtem, które znacznie na niego oddziałują.
library(ggplot2)
# generate data
y<- runif(100, min=0, max=50)
z<- runif(100, min=1, max=12)
x<- 2*y+ z
model<- lm(y~x)
#ggplot
df1<-data.frame(x,z)
df<-data.frame(x,y)
df2<-rbind(df,c(75,0.5))
df3<-rbind(df1, c(75,0.5))
plot1<- ggplot(df1, aes(z, y))+
geom_point() +
theme_bw()+
labs(x = 'Zmienne niezależne', y = 'Roczna liczba cytowań')+
ggtitle("Panel A")
plot2<- ggplot(df, aes(x, y))+
geom_point() +
theme_bw()+
labs(x = 'Zmienne niezależne', y = 'Roczna liczba cytowań')+ #+
#annotate("point", x = 75, y = 0.5, colour = "red") # to dodaje punt kolorowy
ggtitle("Panel B")
plot1a<- ggplot(df1, aes(z, y))+
geom_point() +
geom_smooth(method=lm)+
theme_bw()+
labs(x = 'Zmienne niezależne', y = 'Roczna liczba cytowań')+
ggtitle("Panel C")
plot2a<- ggplot(df, aes(x, y))+
geom_point() +
geom_smooth(method=lm)+
theme_bw()+
labs(x = 'Zmienne niezależne', y = 'Roczna liczba cytowań')+ #+
#annotate("point", x = 75, y = 0.5, colour = "red") # to dodaje punt kolorowy
ggtitle("Panel D")
# Zrobię sobie regresje
# Sciagam parametry modelu
coeff<-coefficients(model)
wolny<-coeff[1]
nachyl<-coeff[2]
plot3<- ggplot(df3, aes(x, z))+
geom_point() +
geom_smooth(method=lm)+
theme_bw()+
labs(x = 'Zmienne zależne', y = 'Roczna liczba cytowań')+
annotate("point", x = 10, y = 0.5, colour = "red") + # to dodaje punt kolorowy
geom_abline(intercept = wolny, slope = nachyl, color="red",
linetype="solid", size=1.5)+
ggtitle("Panel E")
plot4<- ggplot(df2, aes(x, y))+
geom_point() +
geom_smooth(method=lm)+
geom_smooth()+
theme_bw()+
labs(x = 'Zmienne niezależne', y = 'Roczna liczba cytowań')+
annotate("point", x = 75, y = 0.5, colour = "red")+ # to dodaje punt kolorowy
geom_abline(intercept = wolny, slope = 0.2, color="red", linetype="solid", size=1.5)+
ggtitle("Panel F")
require(gridExtra)
grid.arrange(plot1, plot2,plot1a, plot2a, plot3, plot4, ncol=2, nrow=3)
I cóż, zadanie nasze wobec tego sprowadza się do usuwania jednego punktu (artykułu) ze wszystkich przeliczenia współczynnika kierunkowego regresji dla wszystkich artykułów i wszystkich prócz tego jednego, obliczenia różnicy między współczynnikami kierunkowymi i znalezienia tych różnic, które są statystycznie istotne (tzn. że istnieje test, które nam to pokaże). Nie wnikając w samą technikę, metoda pozwala mniej więcej dziesięciokrotnie zredukować pierwotną populację do próby tych artykułów, które są istotne.
Ponieważ jest to metoda abstrakcyjna i algorytmiczna to usuwa nam problem obciążenia badacza, ale wszak nie mamy pewności, że fundamentalne dzieło w literaturze, które znajduje się w głównym nurcie nie zostanie pominięte. I ta cecha jest jej słabością, więc w praktyce stosujemy kombinacje metod algorytmicznych i uznaniowych. Szczegóły metodologiczne Staszkiewicz (2019)
Co ciekawe przedstawiony algorytm nadaje się zarówno do wyboru artykułów jaki i sprawdzenia, czy przedstawiony przegląd literatury obejmuje wszystkie istotne pozycje.
Krok 1 Załadujemy dane i obliczamy regesję
Krok 2 Obliczamy pozycje dźwigniowe
Krok 3 Ustalamy próbę artykułów do dalszego opisu narracyjnego
Krok 4 Oceniamy stabiność wyników i charakterystykę próby
Krok 5 Omówimy kwestie techniczne importu danych z WoS
Powinniśmy przygotować meta dane o naszych artykułach, definicje zmiennych zawarto w poniższej tabeli:
Zródło:Staszkiewicz (2019).
Załadujmy dane do obiektu DF. Dane możemy przygotować w Excelu. Import danych omówimy w Kroku 5.
library(readr)
DF <- read_csv(file.choose())
## Rows: 67 Columns: 13
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## dbl (13): PublicationYears, BigSample, Method, AngloSaxon, USA, TimeSpan, Sa...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# kondersja na prosty dataframe i nadanie nazw zgodnie z indeksem papieru
DF<- as.data.frame(DF)
rownames(DF)<-DF$Nr_Papieru
By załadować dane do obiektu DF wykorzystaliśmy bibliotekę readr oraz
funkcje file.choose
dzięki której możemy wybrać z poziomu
okienka plik z danymi (możemy to zautomatyzować także).
Obejrzymy dane funkcją View
lub head(DF)
oraz wylistujmy wszyskie zmienne dostępne w naszej bazie danych
colnames(DF)
.
head(DF)
## PublicationYears BigSample Method AngloSaxon USA TimeSpan Sample
## 2 35 0 0 1 1 0 243
## 3 33 0 0 1 1 0 410
## 5 22 0 1 1 1 1 98
## 6 22 0 1 1 1 3 860
## 7 20 0 0 0 0 0 287
## 8 16 0 0 0 0 0 2428
## BusinessSupport TC TCYear EXCLUDED PY Nr_Papieru
## 2 0 0 0.0000000 0 1980 2
## 3 0 4 0.1212121 0 1982 3
## 5 0 49 2.2272727 0 1993 5
## 6 0 35 1.5909091 0 1993 6
## 7 0 6 0.3000000 0 1995 7
## 8 0 7 0.4375000 0 1999 8
colnames(DF)
## [1] "PublicationYears" "BigSample" "Method" "AngloSaxon"
## [5] "USA" "TimeSpan" "Sample" "BusinessSupport"
## [9] "TC" "TCYear" "EXCLUDED" "PY"
## [13] "Nr_Papieru"
Pozycja nr. 13 to indeks naszych papierów z bazy danych.
Zobaczmy strukturę danych - statystykę opisową. Do tego wykorzystamy
bibliotekę psych
i funkcję describe
(to można
oczywiście zrobić na różne sposoby).
# load the library/załaduj bibliotekę
#install.packages(psych) # jeśli nie jest zainstalowana
library(psych)
##
## Dołączanie pakietu: 'psych'
## Następujące obiekty zostały zakryte z 'package:ggplot2':
##
## %+%, alpha
#statystyka opisowa
describe(DF)
## vars n mean sd median trimmed mad min max
## PublicationYears 1 67 8.52 8.16 7.0 7.05 5.93 0 36.00
## BigSample 2 67 0.27 0.45 0.0 0.22 0.00 0 1.00
## Method 3 67 0.70 0.46 1.0 0.75 0.00 0 1.00
## AngloSaxon 4 67 0.69 0.47 1.0 0.73 0.00 0 1.00
## USA 5 67 0.45 0.50 0.0 0.44 0.00 0 1.00
## TimeSpan 6 67 3.87 7.57 1.0 2.20 1.48 0 40.00
## Sample 7 67 1755.17 6348.16 371.0 779.31 413.65 0 51755.00
## BusinessSupport 8 67 0.04 0.21 0.0 0.00 0.00 0 1.00
## TC 9 67 22.52 46.55 3.0 10.87 4.45 0 227.00
## TCYear 10 67 2.17 3.95 0.5 1.19 0.74 0 18.92
## EXCLUDED 11 67 0.00 0.00 0.0 0.00 0.00 0 0.00
## PY 12 67 2006.48 8.16 2008.0 2007.95 5.93 1979 2015.00
## Nr_Papieru 13 67 64.72 44.95 55.0 64.07 65.23 1 137.00
## range skew kurtosis se
## PublicationYears 36.00 1.80 3.10 1.00
## BigSample 1.00 1.02 -0.97 0.05
## Method 1.00 -0.86 -1.28 0.06
## AngloSaxon 1.00 -0.79 -1.40 0.06
## USA 1.00 0.21 -1.99 0.06
## TimeSpan 40.00 3.67 13.88 0.92
## Sample 51755.00 7.29 54.45 775.55
## BusinessSupport 1.00 4.30 16.78 0.03
## TC 227.00 2.65 6.79 5.69
## TCYear 18.92 2.48 5.70 0.48
## EXCLUDED 0.00 NaN NaN 0.00
## PY 36.00 -1.80 3.10 1.00
## Nr_Papieru 136.00 0.13 -1.49 5.49
Porównajmy do oryginału:
Zródło:Staszkiewicz (2019).
Jak widać nasze dane troszkę różnią się od oryginału w tekście (z uwagi na wyłączenie jednego papieru tutaj 67 obserwacji w oryginalnym papierze 68 obserwacji).
Obliczmy regresję o tym równaniu:
\[ TC = \beta_0 +\beta_1PublicationYear +\beta_2BigSample +\beta_3Method +\beta_4AngloSaxon+ \\ \beta_5TimeSpan+ \beta_6Sample+\beta_7BusnessSupport+\beta_8US+ \varepsilon \] Zródło:Staszkiewicz (2019).
Dla uproszczenia zastosujemy prostą regresję:
TCY<- lm(TCYear ~ PublicationYears +BigSample+ Method+AngloSaxon+TimeSpan +Sample+BusinessSupport,DF)
Po wygenerowaniu kodu powstaje obiekt w naszym przypakdu TC, który
zawiera informacje na temat modelu regresji liniowej. Zobaczmy go
funkcją summaryTC
summary(TCY)
##
## Call:
## lm(formula = TCYear ~ PublicationYears + BigSample + Method +
## AngloSaxon + TimeSpan + Sample + BusinessSupport, data = DF)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.6610 -1.4347 -0.4097 0.3778 13.8215
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.085e+00 1.206e+00 -0.900 0.3718
## PublicationYears 1.019e-01 5.645e-02 1.806 0.0760 .
## BigSample 3.583e+00 1.129e+00 3.173 0.0024 **
## Method 6.020e-01 1.069e+00 0.563 0.5755
## AngloSaxon 8.287e-01 1.027e+00 0.807 0.4231
## TimeSpan 1.106e-01 6.237e-02 1.773 0.0815 .
## Sample -5.256e-05 7.557e-05 -0.696 0.4895
## BusinessSupport 2.185e+00 2.184e+00 1.001 0.3212
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.633 on 59 degrees of freedom
## Multiple R-squared: 0.2427, Adjusted R-squared: 0.1529
## F-statistic: 2.701 on 7 and 59 DF, p-value: 0.01693
Nasz model jest odpowiednikiem modelu M4 z papieru (zakreślony na czerwono), różnice wynikają z braku jednej obserwacji, oraz zastosowaniu korekty heteroskedastycznej w oryginalnej kalkulacji, tu ich powtarzać nie musimy.
Zauważmy, że modele mają niski skorygowany \(R^2\), więć ich wartość prognostyczna jest dość słaba, \(PublicationYears\) i \(BigSample\) i \(Sample\) oddziaływują na roczną liczbę cytowań. Zarówno istotność zmiennych jaki i dopasowanie modelu będzie niekonicznie istotne dla dalszych rozważań. Dlaczego - zainteresowanych odsyłam do szczegółów metodologicznych.
Zobaczmy na razie graficznie wyniki naszej estymacji - zastosujmy
funkcję plot
plot(TCY)
Obserwacja jest uważana za posiadającą wysoką dźwignię, jeśli jej wartość (lub wartości) dla zmiennych predyktorów są znacznie bardziej ekstremalne w porównaniu z pozostałymi obserwacjami w zbiorze danych.
funkcja hatvalues()
służy do obliczenia dźwigni dla
każdej obserwacji w modelu
# obliczmy wartość lewara
hats <- as.data.frame(hatvalues(TCY))
# wylistumy te vartości
hats
## hatvalues(TCY)
## 2 0.21290798
## 3 0.19167812
## 5 0.07835187
## 6 0.07988768
## 7 0.10611081
## 8 0.09475865
## 9 0.04597844
## 10 0.04404193
## 11 0.07201387
## 12 0.07308525
## 15 0.13581008
## 19 0.07100794
## 20 0.06762549
## 21 0.04526655
## 22 0.37665168
## 23 0.09072711
## 24 0.08400364
## 29 0.04133848
## 30 0.06246831
## 35 0.34292671
## 36 0.08739606
## 37 0.04062334
## 38 0.18367009
## 43 0.07222597
## 44 0.39530021
## 45 0.06844399
## 46 0.04191017
## 51 0.04291890
## 52 0.08724704
## 53 0.04695298
## 54 0.06736653
## 55 0.06529267
## 62 0.04571295
## 63 0.04351669
## 64 0.97998610
## 67 0.04362519
## 68 0.07036614
## 77 0.09122794
## 78 0.06180910
## 88 0.34836347
## 90 0.07183608
## 91 0.04735230
## 101 0.07554022
## 102 0.37576933
## 103 0.10478660
## 104 0.05068387
## 105 0.13679124
## 106 0.07345583
## 107 0.13162536
## 108 0.05073110
## 117 0.06632617
## 118 0.12817979
## 119 0.09669277
## 120 0.08084825
## 121 0.07821484
## 122 0.09649332
## 123 0.07595300
## 124 0.07221547
## 127 0.05541486
## 128 0.09904922
## 129 0.06116892
## 130 0.07186645
## 131 0.06992124
## 136 0.06570245
## 137 0.11032187
## 1 0.25670894
## 4 0.19575441
Proszę zauważyć, iż w boczku mamy indeks poszczególnych papierów zrobiliśmy to przy okazji importowania danych (tutaj numerycznie, w praktyce proponuję po pierwszym autorze i roku publikacji np.: Novak2011, łatwiej się szuka i pamięta).
Posortujmy wyniki malejąco
hats[order(-hats['hatvalues(model)']), ]
hats[order(-hats['hatvalues(TCY)']), ]
## Warning in xtfrm.data.frame(x): cannot xtfrm data frames
## [1] 0.97998610 0.39530021 0.37665168 0.37576933 0.34836347 0.34292671
## [7] 0.25670894 0.21290798 0.19575441 0.19167812 0.18367009 0.13679124
## [13] 0.13581008 0.13162536 0.12817979 0.11032187 0.10611081 0.10478660
## [19] 0.09904922 0.09669277 0.09649332 0.09475865 0.09122794 0.09072711
## [25] 0.08739606 0.08724704 0.08400364 0.08084825 0.07988768 0.07835187
## [31] 0.07821484 0.07595300 0.07554022 0.07345583 0.07308525 0.07222597
## [37] 0.07221547 0.07201387 0.07186645 0.07183608 0.07100794 0.07036614
## [43] 0.06992124 0.06844399 0.06762549 0.06736653 0.06632617 0.06570245
## [49] 0.06529267 0.06246831 0.06180910 0.06116892 0.05541486 0.05073110
## [55] 0.05068387 0.04735230 0.04695298 0.04597844 0.04571295 0.04526655
## [61] 0.04404193 0.04362519 0.04351669 0.04291890 0.04191017 0.04133848
## [67] 0.04062334
Jawi się pytanie, które z tych wyników są istotne statystycznie
Zobaczmy lewary graficznie
plot(hatvalues(TCY), type = 'h')
Nasza statystyka testowa to
\[ h^*= \frac{2*(k-1)}{n}\] gdzie: \(h^*\) wartość statystyki testowej k- liczba estymowanych parametrów n - liczba obserwacji
W naszym przypadku 8 parametrów (wliczamy wyraz wolny) n- 67 bo mamy 67 obserwacji
Stąd wartość graniczna 0.2089552.
Więc wszystkie papiery, których wartość dżwigni przekaracza 0.2089552 są naszymi poszukiwanymi papierami do przeglądu opisowego. Zobaczmy, więc, które to są:
cutoff<-2*(8-1)/67
z<-hats> cutoff
z
## hatvalues(TCY)
## 2 TRUE
## 3 FALSE
## 5 FALSE
## 6 FALSE
## 7 FALSE
## 8 FALSE
## 9 FALSE
## 10 FALSE
## 11 FALSE
## 12 FALSE
## 15 FALSE
## 19 FALSE
## 20 FALSE
## 21 FALSE
## 22 TRUE
## 23 FALSE
## 24 FALSE
## 29 FALSE
## 30 FALSE
## 35 TRUE
## 36 FALSE
## 37 FALSE
## 38 FALSE
## 43 FALSE
## 44 TRUE
## 45 FALSE
## 46 FALSE
## 51 FALSE
## 52 FALSE
## 53 FALSE
## 54 FALSE
## 55 FALSE
## 62 FALSE
## 63 FALSE
## 64 TRUE
## 67 FALSE
## 68 FALSE
## 77 FALSE
## 78 FALSE
## 88 TRUE
## 90 FALSE
## 91 FALSE
## 101 FALSE
## 102 TRUE
## 103 FALSE
## 104 FALSE
## 105 FALSE
## 106 FALSE
## 107 FALSE
## 108 FALSE
## 117 FALSE
## 118 FALSE
## 119 FALSE
## 120 FALSE
## 121 FALSE
## 122 FALSE
## 123 FALSE
## 124 FALSE
## 127 FALSE
## 128 FALSE
## 129 FALSE
## 130 FALSE
## 131 FALSE
## 136 FALSE
## 137 FALSE
## 1 TRUE
## 4 FALSE
sum(z, na.rm=FALSE)
## [1] 8
W boczku mamy indeksy papierów, zaś w drugiej kolumnie informacje, czy dany papier jest czy nie wpływowy.
Objerzyjmy jak to wyszło w oryginalnym papierze:
Zródło:Staszkiewicz (2019).
W oryginale mamy 7 papierów, w naszym przeliczeniu wyszło 8 papierów. Stąd redukcja próby jest około 10-krotna.
Wydaje się, że ta metoda wybiera najstarszą pozycję, oraz najnowszą, z reguły przeglądówkę (jak tutaj Habib), a reszta zależy na ile jest scentrowana w głównym nurcie dyskusji. Technicznie weryfikacja była robiona na podstawie innych przeglądów literatury, ale formalnej metody testu nie ma.
Cała metoda bazuje na meta informacji bibliograficznej. Więc, w praktyce kluczowy jest DOI, bo identyfikuje jednoznacznie papier i jego atrybuty, lecz bez cytowań. Dlatego wykorzystuje się bazy bibliometryczne WoS i Scopus, niestety obie mają inne algorytmy zbierania cytowań, więc są niespójne. Można robić przegląd na WoS i sprawdzać stabilność Scopusem lub odwrotnie, acz niepolecam - dużo pracy mało zysku. Można także exportować z Menddeley lub Zetoro i ręcznie nanosić cytowania, pracochłonne, ale gdy piszemy przeglądówkę na Wordzie, to być może warto zainwestować czas. W przypadku pracy w markupie polecam Zetora, bo się ławiej integruje.
Powracając do baz bibliometrycznych. Dostęp jest z reguły możliwy po zarejestrowaniu się, proponuje eksportować pełny rekord (włącznie z abstraktem) to pomaga w dekodowaniu zmiennych.
Przykład jak to zrobić
Importowanie z WoS z Biblioteki SGH https://www.youtube.com/watch?v=8wVqVvEsYUc&t=2s
Ładowanie CSV do Excela https://www.youtube.com/watch?v=pY895-S1VWE&t=1s
Oczywiście całą procedurę można szybciej zrobić w Gretlu https://www.youtube.com/watch?v=XIFPuDmrAmA
Ale nie polecam, bo to narzędzie jednak wysokopoziomowe.
W praktyce albo do redukcji populacji papierów do przeglądu opisowego (narracyjnego) albo jako uzupełnienie metody do przeglądu systematycznego, albo - to już raczej z pozycji recenzenta - do sprawdzenia czy przedstawiony artykuł przeglądowy jest kompletny, ewentualnie czy mamy do czynienia z istotnym obciążeniem badacza.