Author impact factors
Posted August 11, 2015 at 09:12 AM | categories: bibliometrics | tags:
In this new letter http://pubs.acs.org/doi/pdf/10.1021/acs.jpclett.5b01527 , the editors suggest a new "Author Impact Factor" as a way to measure the productivity and impact of an author independently of the journals they publish in. The AIF is defined for a year like this: take the paper published in two consecutive years, get the citations for those papers in the following year, and compute:
\(AIF = \frac{Y3 citations for papers_{Y1,Y2}}{Number of papers in Y1, Y2}\).
Here I do this for myself, using Scopus as the source of papers and citations. My Scopus ID is scopusid:7004212771. First, we need to get the articles published in 2012 and 2013. Here is the query, and the results.
from scopus import * from scopus.scopus_api import ScopusAbstract s = ScopusSearch(query='au-id(7004212771) and (pubyear is 2012 or pubyear is 2013)', fields='dc:identifier') abstracts = [ScopusAbstract(eid) for eid in s.EIDS if ScopusAbstract(eid).aggregationType == 'Journal'] print('<ol>') for ab in abstracts: print('<li>' + ab.html + '</li>') print('</ol>')
- Anita S. Lee, John C. Eslick, David C. Miller and John R. Kitchin, Comparisons of amine solvents for post-combustion CO2 capture: A multi-objective analysis approach, International Journal of Greenhouse Gas Control, 18, p. 68-74, (2013-10-01). doi:10.1016/j.ijggc.2013.06.020.
- Alexander P. Hallenbeck and John R. Kitchin, Effects of O2 and SO2 on the capture capacity of a primary-amine based polymeric CO2 sorbent, Industrial and Engineering Chemistry Research, 52(31), p. 10788-10794, (2013-08-07). doi:10.1021/ie400582a.
- James X. Mao, Anita S. Lee, John R. Kitchin, Hunaid B. Nulwala, David R. Luebke and Krishnan Damodaran, Interactions in 1-ethyl-3-methyl imidazolium tetracyanoborate ion pair: Spectroscopic and density functional study, Journal of Molecular Structure, 1038, p. 12-18, (2013-04-24). doi:10.1016/j.molstruc.2013.01.046.
- Federico Calle-Vallejo, Nilay G. Inoglu, Hai-Yan Su, José I. Martínez, Isabela C. Man, Marc T. M. Koper, John R. Kitchin and Jan Rossmeisl, Number of outer electrons as descriptor for adsorption processes on transition metals and their oxides, Chemical Science, 4(3), p. 1245-1249, (2013-03-01). doi:10.1039/c2sc21601a.
- Anita S. Lee and John R. Kitchin, Chemical and molecular descriptors for the reactivity of amines with CO 2 , Industrial and Engineering Chemistry Research, 51(42), p. 13609-13618, (2012-10-24). doi:10.1021/ie301419q.
- Edward S. Rubin, Hari Mantripragada, Aaron Marks, Peter Versteeg and John Kitchin, The outlook for improved carbon capture technology, Progress in Energy and Combustion Science, 38(5), p. 630-671, (2012-10-01). doi:10.1016/j.pecs.2012.03.003.
- Sneha A. Akhade and John R. Kitchin, Effects of strain, d-band filling, and oxidation state on the surface electronic structure and reactivity of 3d perovskite surfaces, Journal of Chemical Physics, 137(8), Art. No. 084703, , (2012-08-28). doi:10.1063/1.4746117.
- James Landon, Ethan Demeter, Nilay Inoǧlu, Chris Keturakis, Israel E. Wachs, Relja Vasić, Anatoly I. Frenkel and John R. Kitchin, Spectroscopic characterization of mixed Fe-Ni oxide electrocatalysts for the oxygen evolution reaction in alkaline electrolytes, ACS Catalysis, 2(8), p. 1793-1801, (2012-08-03). doi:10.1021/cs3002644.
- Robin Chao, Ratiporn Munprom, Rumyana Petrova, Kirk Gerdes, John R. Kitchin and Paul A. Salvador, Structure and relative thermal stability of mesoporous (La, Sr) MnO 3powders prepared using evaporation-induced self-assembly methods, Journal of the American Ceramic Society, 95(7), p. 2339-2346, (2012-07-01). doi:10.1111/j.1551-2916.2012.05236.x.
- John Kitchin, Preface: Trends in computational catalysis, Topics in Catalysis, 55(5-6), p. 227-228, (2012-06-01). doi:10.1007/s11244-012-9808-0.
- W. Richard Alesi and John R. Kitchin, Evaluation of a primary amine-functionalized ion-exchange resin for CO 2 capture, Industrial and Engineering Chemistry Research, 51(19), p. 6907-6915, (2012-05-16). doi:10.1021/ie300452c.
Now, we need to get the citing articles for each one of these, and only count them if they were published in 2014 or earlier. Each abstract has a cite_link in it, which points to the API url to get the articles citing it. Let's see what we are up against here. First, we see how many citations there are in total.
from scopus import * from scopus.scopus_api import get_encoded_text, ScopusAbstract from scopus.my_scopus import MY_API_KEY s = ScopusSearch(query='au-id(7004212771) and (pubyear is 2012 or pubyear is 2013)', fields='dc:identifier') abstracts = [ScopusAbstract(eid) for eid in s.EIDS if ScopusAbstract(eid).aggregationType == 'Journal'] import requests import xml.etree.ElementTree as ET TOTAL = 0 for ab in abstracts: xml = requests.get(ab.cite_link, headers={'Accept': 'application/xml', 'X-ELS-APIKey': MY_API_KEY}).text.encode('utf-8') results = ET.fromstring(xml) N = int(get_encoded_text(results, 'opensearch:totalResults')) TOTAL += N print N print '{} total citations'.format(TOTAL) print TOTAL / float(11)
4 9 5 18 5 98 10 50 4 0 16 219 total citations 19.9090909091
Not bad looking, but some of those citations might be from 2015, and some of them might be self-citations. Let's see about removing those. Usually, there are just 25 results per query, and some of the ones above have more than 25 results, so we will have to run a loop to get them all. For now, we just remove the citations from papers newer than the desired year It is a little tougher to remove the self-citations; that would require another request to Scopus to get authors and look for matches.
Here is some code that calculates my AIF for 2012, 2013 and 2014. The only issue I currently have with this code is the use of the abstract coverDate to get the publication year. I don't have a better way to do this, but I have seen a lot of cover dates that start on Jan 1 of a year, and that seems improbable to me. On the other hand, that might reflect a lot of submissions near the end of a year that just make it into the next one.
from scopus import * from scopus.scopus_api import get_encoded_text, ns, ScopusAbstract from scopus.my_scopus import MY_API_KEY import requests import xml.etree.ElementTree as ET QUERY = 'au-id(7004212771) and ((pubyear is {0}) or (pubyear is {1}))' for YEAR in [2012, 2013, 2014]: print(QUERY.format(YEAR - 2, YEAR - 1)) s = ScopusSearch(query=QUERY.format(YEAR - 2, YEAR - 1), fields='dc:identifier') abstracts = [ScopusAbstract(eid) for eid in s.EIDS if ScopusAbstract(eid).aggregationType == 'Journal'] print '{0}-{1} papers'.format(YEAR - 2, YEAR - 1) print ' '.join(['doi:{}'.format(ab.doi) for ab in abstracts]) TOTAL = 0 # citation count for ab in abstracts: xml = requests.get(ab.cite_link, headers={'Accept': 'application/xml', 'X-ELS-APIKey': MY_API_KEY}).text.encode('utf-8') results = ET.fromstring(xml) N = int(get_encoded_text(results, 'opensearch:totalResults')) start = 0 count = 25 while N > 0: xml = requests.get(ab.cite_link, headers={'Accept': 'application/xml', 'X-ELS-APIKey': MY_API_KEY}, params={'count': count, 'start': start}).text.encode('utf-8') results = ET.fromstring(xml) start += count N -= count for el in results.findall('atom:entry/prism:coverDate', ns): year = int(el.text.split('-')[0]) if year <= YEAR: TOTAL += 1 s = 'Author Impact Factor ({1}) = {0:1.3f} ({2} papers, {3} citations)\n' print(s.format(float(TOTAL) / len(abstracts), YEAR, len(abstracts), TOTAL))
au-id(7004212771) and ((pubyear is 2010) or (pubyear is 2011)) 2010-2011 papers doi:10.1063/1.3631948 doi:10.1002/cctc.201000397 doi:10.1021/cs200039t doi:10.1063/1.3561287 doi:10.1002/cssc.201000056 doi:10.1149/1.3432440 doi:10.1103/PhysRevB.82.045414 doi:10.1016/j.fuel.2009.11.036 doi:10.1080/08927022.2010.481794 Author Impact Factor (2012) = 9.667 (9 papers, 87 citations) au-id(7004212771) and ((pubyear is 2011) or (pubyear is 2012)) 2011-2012 papers doi:10.1021/ie301419q doi:10.1016/j.pecs.2012.03.003 doi:10.1063/1.4746117 doi:10.1021/cs3002644 doi:10.1111/j.1551-2916.2012.05236.x doi:10.1007/s11244-012-9808-0 doi:10.1021/ie300452c doi:10.1063/1.3631948 doi:10.1002/cctc.201000397 doi:10.1021/cs200039t doi:10.1063/1.3561287 Author Impact Factor (2013) = 14.000 (11 papers, 154 citations) au-id(7004212771) and ((pubyear is 2012) or (pubyear is 2013)) 2012-2013 papers doi:10.1016/j.ijggc.2013.06.020 doi:10.1021/ie400582a doi:10.1016/j.molstruc.2013.01.046 doi:10.1039/c2sc21601a doi:10.1021/ie301419q doi:10.1016/j.pecs.2012.03.003 doi:10.1063/1.4746117 doi:10.1021/cs3002644 doi:10.1111/j.1551-2916.2012.05236.x doi:10.1007/s11244-012-9808-0 doi:10.1021/ie300452c Author Impact Factor (2014) = 14.000 (11 papers, 154 citations)
Just a reminder of what these AIFs are. It is the ratio of the number of citations papers from two consecutive years (Y1 and Y2) have received in the next year Y3. These numbers suggest that on average my recent papers are getting 14 citations a year. I printed the DOIs above because I was skeptical that my AIF in 2013 and 2014 were identical, but it seems clear the papers are different, and it must be a coincidence that the number of citations is the same (I am still a bit skeptical though ;).
Is this a useful measure of author impact? That would take some study. The way this is defined it is a short-term impact which might be biased to some fields that have more than a three year time-frame before citations build up. That is fixed easily enough by increasing the window of publications, and/or counting citations two years out, for example. It is interesting this decouples the impact from the journals the articles are published in. I think this says I should be submitting my papers to higher impact journals though! My AIF exceeds the JIF of the journals I usually publish in.
Copyright (C) 2015 by John Kitchin. See the License for information about copying.
Org-mode version = 8.2.10