Tag: MSc dissertation

  • R vs Python vs SPSS vs Stata for a Postgraduate Data Science Dissertation (2026)

    R vs Python vs SPSS vs Stata for a Postgraduate Data Science Dissertation (2026)

    The choice is usually made badly, and it is usually made once. Whatever you pick in month two is what you will still be using the week before submission, because nobody rewrites an analysis pipeline in year two of a research degree for aesthetic reasons. So the decision deserves twenty minutes of thought against the criteria that actually bite at postgraduate scale — licensing after you graduate, reproducibility when an examiner asks you to rerun something, and whether tables reach your manuscript without manual retyping.

    The comparison at a glance

    Criterion R Python SPSS Stata
    Cost to you Free, open source Free, open source Commercial; usually via university licence Commercial; student licences discounted
    Access after you graduate Unaffected Unaffected Lost when licence ends Perpetual licence available at extra cost
    Learning curve from zero Moderate to steep Moderate Shallow — menu driven Shallow to moderate
    Classical statistics coverage Comprehensive Good, less complete Comprehensive for standard tests Comprehensive, especially econometrics
    Machine learning Good (tidymodels, caret) Best in class Limited Limited
    Meta-analysis Excellent (metafor, meta) Weak Add-on required Strong (meta suite)
    Survey and complex sampling Strong (survey package) Weak Add-on module Excellent (svy commands)
    Reproducibility of a full analysis Excellent — script plus Quarto Excellent — script plus notebooks Poor if used through menus Very good — do-files and logs
    Publication-ready tables into the thesis Excellent Adequate Manual export Excellent
    Supervisor likely to know it Common in health and stats Common in computing Common in social sciences Common in economics and epidemiology

    The ranked shortlist

    1. R — the default for a postgraduate dissertation with a statistical core

    R wins the criteria that matter over a multi-year project rather than a single assignment. It costs nothing, so the analysis does not die when your student credentials expire. Its statistical coverage is the broadest of the four, and for anything methodologically specialised — mixed-effects models, survival analysis, meta-analysis, structural equation modelling — someone has already written and validated a package.

    The argument that clinches it for thesis writing is Quarto and R Markdown. You write a document in which the code and the prose live together, and the numbers in your results section are generated by the analysis rather than copied into it. When your supervisor asks what happens if you exclude the under-25s, you change one line and rerun the document. Every table and figure updates. Anyone who has spent an evening retyping a regression table after a late data correction understands why this is not a minor convenience.

    Where it falls short at postgraduate scale: the learning curve is real, and it is steepest in the first fortnight when you are also trying to make progress on the actual research. Error messages are unhelpful to beginners. Package quality varies, and a package with forty users may be abandoned before you submit — check maintenance activity before building a chapter on one.

    2. Python — correct if the dissertation is genuinely a machine learning project

    If your contribution involves model architectures, large or unstructured data, text or images, or anything you would describe as engineering rather than inference, Python is the right answer and R is not. The scikit-learn, PyTorch and transformers ecosystems have no serious equivalent elsewhere, and if your work needs to be deployed or handed to a collaborator it will be expected in Python.

    Python is also the better choice when the data acquisition is a substantial part of the project — scraping, APIs, database work and pipeline orchestration are far more natural here than in the alternatives.

    Where it falls short at postgraduate scale: classical inferential statistics are Python’s weak flank. Statsmodels is capable but thinner than R’s coverage, and for mixed models, complex survey designs or meta-analysis you will be working harder than you need to. Notebooks are also a reproducibility trap — cells run out of order produce results nobody, including you, can reconstruct six months later. If you use notebooks, restart and run all before believing any number.

    3. Stata — the quiet strong option for quantitative social science and epidemiology

    Stata is underrated by people who have never used it. Do-files give you genuine reproducibility with a fraction of R’s learning cost, the log file records exactly what was run, and the documentation is the best of the four by a wide margin — each command’s manual entry includes the underlying methods and references.

    For complex survey data, panel data and epidemiological analysis it is arguably better than R, because the survey and panel commands are built into the core language rather than assembled from packages. Table export into a manuscript is mature.

    Where it falls short at postgraduate scale: it costs money, and the version tied to your university licence stops working when you leave unless you buy a perpetual licence. Machine learning support is thin. And it holds one dataset in memory at a time by default, which is an awkward constraint for multi-source analytical projects.

    4. SPSS — usable, but hard to justify as a deliberate choice

    SPSS is fine for standard analyses — t-tests, ANOVA, regression, factor analysis — and its point-and-click interface means you can produce results in week one rather than week four. For a dissertation whose contribution is substantive rather than methodological, that is a legitimate trade.

    The problem is what happens afterwards. Menu-driven work leaves no record of what you did. Six months on, facing a correction that asks you to rerun an analysis with one variable recoded, you will not remember which dialogue boxes you ticked. The mitigation is to paste every command into a syntax file and run everything from syntax — which recovers reproducibility, but at that point you are writing scripts anyway and the main argument for SPSS has evaporated.

    Where it falls short at postgraduate scale: licence dependence, weak version control, limited modern methods, and output that has to be manually reformatted for every table in your thesis.

    The recommendation

    Use R unless you have a specific reason not to. It is free forever, statistically comprehensive, and it is the only option on this list whose document-generation story genuinely removes an entire category of late-stage errors from your thesis.

    Use Python instead if the dissertation’s contribution is machine learning, unstructured data or engineering. Use Stata if you work with complex survey or panel data and your supervisor uses it, because supervisor fluency is worth more than any feature comparison. Use SPSS only if your programme mandates it or your timeline genuinely cannot absorb a learning curve — and if you do, work entirely from syntax files.

    The criteria people forget until it is too late

    Can your supervisor debug it?

    A supervisor who uses your software can spot in ninety seconds an error that would cost you two days. This single factor outweighs most technical differences, and it is worth asking directly at your first methods meeting. It is one of the practical questions covered in running a supervisory relationship well.

    Will the analysis still run after your corrections?

    Assume you will be asked to rerun something after examination. A scripted analysis reruns; a menu-driven one has to be reconstructed from memory. This is a live concern rather than a theoretical one, since reanalysis requests are a routine part of completing corrections after a viva.

    Does the software match your sample size assumptions?

    Power calculations and sample size justification usually happen before you write a line of analysis code, and the tool you choose should support the design you committed to. If you have not fixed that yet, start with sample size conventions in postgraduate health research and choose software afterwards.

    Does it handle your synthesis method?

    If your dissertation includes an evidence synthesis component, meta-analysis package quality becomes a first-order criterion — and it is the one place R and Stata are clearly ahead. The workflow this feeds into is covered in writing a PRISMA systematic review chapter.

    Where does the output actually go?

    Whatever you choose, decide early how a regression table gets from the software into your manuscript, and whether that route survives your thesis being written in LaTeX or Word. The trade-offs are set out in the LaTeX and Word comparison for long theses.

    What about mixing them?

    Mixing is normal and usually fine. Cleaning a dataset in Python and modelling it in R is a common and defensible pattern. The rule is that every handoff must be scripted and the intermediate file versioned — an undocumented manual step in the middle of a pipeline is exactly the thing you will be unable to explain in a viva.

    Qualitative components sit outside all four of these tools; if your design is mixed-methods, you will need dedicated software alongside, and the comparison of NVivo, ATLAS.ti and Taguette covers the options including a free one.

    Keep the analysis and the writing in the same place

    The gap between a working analysis and a written results chapter is where most postgraduate time disappears — numbers copied by hand, tables rebuilt after a data correction, a methods section that no longer describes what the code does. Tesify keeps your drafts, sources and notes in one workspace so the chapter stays anchored to the analysis it describes, while the interpretation remains unmistakably yours.

    Start your dissertation with Tesify

    Frequently asked questions

    Is R or Python better for a data science dissertation?

    R is better if the contribution is statistical inference; Python is better if it is machine learning, unstructured data or engineering. For a dissertation that mixes both, choose the one matching your primary contribution and script the handoff to the other.

    Will examiners judge you for using SPSS?

    Not for the software itself. Examiners judge whether the analysis was appropriate and whether you can explain it. What does attract criticism is being unable to say precisely what was run — which is a risk of menu-driven work, not of SPSS as such.

    Do universities provide SPSS and Stata free?

    Many UK institutions hold site licences covering registered students, sometimes including home installation. Check your IT services pages before purchasing anything. Note that licences typically expire when your registration ends, which matters if you submit papers after graduating.

    How long does it take to learn R well enough for a dissertation?

    Enough to clean data and run standard models is a matter of weeks with consistent practice. Fluency takes longer. The efficient route is learning against your own dataset from the start rather than working through unrelated tutorial exercises.

    Should you use Jupyter notebooks for thesis analysis?

    They are excellent for exploration and risky as a final record, because out-of-order execution produces results that cannot be reproduced. If notebooks are your final artefact, always restart and run all before reporting any number, and keep the notebook under version control.

    Can you switch software partway through a dissertation?

    Possible but expensive, and the cost rises sharply once analysis is written up. If you are seriously considering a switch, do it before your main analysis begins. After that, the safer route is usually to add a second tool for a specific task rather than migrate everything.

    Which software is best for meta-analysis?

    R, using metafor or meta, is the most complete and is free. Stata’s meta suite is excellent and easier to learn. SPSS requires an add-on and Python’s support is thin, so neither is a natural choice for a synthesis-heavy dissertation.

    Do you need version control for dissertation analysis code?

    Strongly advisable. Git costs an afternoon to learn at a basic level and gives you a recoverable history of every analysis decision. At minimum, keep dated copies of scripts and never overwrite the version that produced results you have already written up.

  • How to Write a PRISMA Systematic Review Chapter for a Public Health Dissertation (2026)

    How to Write a PRISMA Systematic Review Chapter for a Public Health Dissertation (2026)

    The systematic review is the most procedural chapter you will ever write, and that is the good news. Unlike a discussion chapter, it has a defined output, a published reporting standard and a diagram that either adds up or does not. What sinks postgraduate reviews is almost never the writing — it is a question that cannot be searched, a search that was never recorded, or numbers in the flow diagram that do not reconcile at 11pm the night before submission.

    This is the procedure in order. Each step states what you should have in hand before moving on. Every institution’s requirements differ, so check your programme handbook against this and follow the handbook where they disagree.

    Step 1: Decide whether you are writing a systematic review at all

    Confirm which of three things your dissertation actually requires, because they have different standards and different workloads.

    1. A full systematic review as the dissertation. Common on public health masters programmes where primary data collection is impractical in the time available. PRISMA applies in full.
    2. A systematic review chapter within an empirical dissertation. Shorter, still PRISMA-reported, positioned to justify the primary study that follows.
    3. A narrative or scoping review. Different reporting standard entirely — a scoping review reports to PRISMA-ScR, and a narrative review is not held to PRISMA at all.

    Expected output: a one-line statement of review type, agreed with your supervisor in writing.

    Step 2: Build a question that can actually be searched

    Reviews fail here more than anywhere else. “The effect of physical activity interventions on health” is not a review question; it is a research field. A searchable question specifies each element tightly enough that the database returns a number you can screen in the time you have.

    Use a structured framework. PICO suits intervention questions; SPIDER handles qualitative evidence better; PEO works for exposure questions common in public health.

    Worked example. Take a vague starting point — “does exercise help older people’s mental health?” — and force it through PICO:

    • Population: community-dwelling adults aged 65 and over, without a diagnosis of dementia
    • Intervention: structured group exercise programmes of at least eight weeks’ duration
    • Comparator: usual activity or waiting-list control
    • Outcome: depressive symptoms measured on a validated scale

    That yields a stated question: In community-dwelling adults aged 65 and over, do structured group exercise programmes of at least eight weeks reduce depressive symptoms compared with usual activity? Every one of those qualifiers becomes an inclusion criterion, and every inclusion criterion becomes a screening decision you can defend.

    Expected output: one question in a single sentence, plus a PICO or PEO table.

    Step 3: Write the inclusion and exclusion criteria before you search

    Write them now, while you have no attachment to any particular paper. Criteria written after you have seen the results are criteria bent to fit the results, and examiners recognise the pattern.

    Cover, at minimum: study designs eligible, population limits, intervention and comparator definitions, outcome measures accepted, date range with a justification for the start date, language restrictions with an honest acknowledgement of the bias they introduce, and publication status — whether you include grey literature, preprints, theses and conference abstracts.

    Expected output: a criteria table with a stated rationale for each restriction.

    Step 4: Register the protocol

    Register on PROSPERO before screening begins. Registration is free, takes an afternoon once your criteria are written, and does three useful things: it timestamps your criteria, it tells you whether someone is already running your review, and it makes the eventual paper substantially more publishable.

    If your programme does not require registration, write the protocol anyway and date it. The protocol is where you commit to your analysis plan, which protects you against the accusation that you chose your synthesis method after seeing which studies you had.

    Expected output: a PROSPERO registration number, or a dated protocol document lodged with your supervisor.

    Step 5: Build and record the search strategy

    Search at least three databases. For public health that typically means MEDLINE, Embase and CINAHL, often with PsycINFO for mental health outcomes, Scopus or Web of Science for breadth, and the Cochrane Library for trials. Ask your subject librarian to review the strategy — this is the single highest-return hour available to you, and most university libraries offer it.

    Each concept gets a block combining controlled vocabulary with free-text terms, and the blocks are combined with AND. A recorded MEDLINE strategy looks like this:

    1. exp Exercise/ OR exp “Physical Activity”/
    2. (exercis* OR “physical activit*” OR “resistance train*”).ti,ab.
    3. 1 OR 2
    4. exp Aged/
    5. (“older adult*” OR elderly OR “aged 65”).ti,ab.
    6. 4 OR 5
    7. exp Depression/
    8. (depress* OR “low mood”).ti,ab.
    9. 7 OR 8
    10. 3 AND 6 AND 9

    Record the exact string, the database and interface, the date you ran it, and the number of records returned. You will need all four in your methods section, and you will need to rerun the search shortly before submission to catch new publications. Reference management discipline matters here more than anywhere else in the dissertation; if you have not settled on a tool, the comparison of Zotero, Mendeley and EndNote covers which survives a large review library.

    Expected output: a search log table with one row per database, reproducible by a stranger.

    Step 6: Screen in two stages, and count everything

    Deduplicate first, in your reference manager, and record how many duplicates were removed. Then screen titles and abstracts against your criteria, then screen full texts.

    Have a second reviewer independently screen a proportion — 10 to 20 per cent is a common expectation at masters level — and report the agreement. A supervisor or fellow student can do this. Record disagreements and how they were resolved.

    The rule that saves the flow diagram: every full text you exclude needs a recorded reason, and the reasons must be categorised. “Not relevant” is not a reason. “Wrong population”, “wrong comparator”, “no eligible outcome measure”, “conference abstract only” are reasons, and they are what the exclusion box in the diagram reports.

    Expected output: a screening spreadsheet where the numbers reconcile at every stage.

    Step 7: Draw the PRISMA flow diagram so it adds up

    The diagram is arithmetic, and examiners check it. Work through the chain: records identified through database searching, plus records identified through other sources such as citation chasing, minus duplicates removed, equals records screened. Records screened minus records excluded at title and abstract equals full texts assessed for eligibility. Full texts assessed minus full texts excluded, with reasons broken down by category, equals studies included in the synthesis.

    A worked chain: 2,847 records from four databases plus 18 from reference lists, giving 2,865. Removing 912 duplicates leaves 1,953 screened. Excluding 1,847 at title and abstract leaves 106 full texts assessed. Excluding 89 with reasons — 34 wrong population, 28 wrong intervention, 15 no eligible outcome, 12 not primary research — leaves 17 studies included.

    Every number in that paragraph must match your spreadsheet and your diagram. Build the diagram from the spreadsheet, never from memory.

    Expected output: a flow diagram that reconciles line by line.

    Step 8: Appraise quality with a tool that fits the designs

    Choose the appraisal tool by study design, and justify the choice. Randomised trials call for the Cochrane risk-of-bias approach. Observational studies commonly use the Newcastle-Ottawa Scale. Mixed-design reviews often use the Mixed Methods Appraisal Tool, and JBI and CASP checklists are widely accepted on taught programmes.

    Two things distinguish a strong appraisal from a weak one. First, appraisal must have consequences — if you rate four studies at high risk of bias and then treat all seventeen identically in the synthesis, the appraisal was decorative. Say explicitly how quality shaped your conclusions, ideally through a sensitivity analysis. Second, report appraisal per domain rather than as a single score, because a study can be strong on measurement and weak on confounding, and that distinction matters to your reader.

    Expected output: an appraisal table by study and domain, plus a paragraph on how quality affected interpretation.

    Step 9: Synthesise, and be honest about whether you can pool

    Meta-analysis is not the default and is not the goal. Pool only when studies are similar enough in population, intervention, comparator and outcome measure that a summary estimate means something. Combining a twelve-week resistance programme with a two-year walking scheme produces a number, not a finding.

    Where pooling is inappropriate, conduct a structured narrative synthesis — group studies by intervention type or outcome, tabulate direction and magnitude of effects, and explain heterogeneity rather than averaging it away. This is a legitimate and common outcome for masters reviews. If you do pool, the analysis is usually straightforward in R or Stata; the comparison of statistical software for postgraduate research covers which handles meta-analysis packages most easily.

    Sample size across the included studies is worth commenting on directly — a review of seventeen underpowered trials tells you something different from a review of three large ones, and sample size conventions in postgraduate health research gives you the benchmarks to make that judgement.

    Expected output: a synthesis section with a stated method and a characteristics-of-included-studies table.

    Step 10: Write the chapter in the order examiners read it

    The chapter follows the PRISMA reporting sections: rationale and objectives, then methods covering eligibility criteria, information sources, search strategy, selection process, data collection, quality assessment and synthesis method, then results opening with study selection and the flow diagram, then characteristics of included studies, then quality appraisal findings, then synthesis, then a limitations section.

    A worked opening for the methods section, which you can adapt:

    This review was conducted in accordance with the PRISMA 2020 statement and registered prospectively on PROSPERO (CRD42026XXXXXX). MEDLINE, Embase, CINAHL and PsycINFO were searched from January 2010 to March 2026, the start date reflecting the publication of the first national guidance on this intervention. Search terms combined controlled vocabulary and free-text terms across three concept blocks, and the full MEDLINE strategy is reproduced in Appendix A. Titles and abstracts were screened against pre-specified criteria by the author, with 20 per cent independently screened by a second reviewer; disagreements were resolved by discussion.

    Write limitations as analytic judgements, not apologies. “English-language restriction may have excluded relevant evidence from non-Anglophone health systems, which is a material limitation for an intervention delivered largely in community settings” is a doctoral-level limitation. “I only had a few months” is not. The same principle governs writing limitations in a discussion chapter.

    Expected output: a complete chapter, with the search appendix attached.

    Keep the review reproducible while you write it

    A systematic review generates more moving parts than any other chapter — search logs, screening decisions, appraisal ratings, extraction tables — and they all have to still agree with each other months later when you write the methods section. Tesify keeps your sources, extraction notes and drafts in one workspace so the chapter you write is anchored to the records you actually screened, and the numbers you cite are the numbers you have.

    Start your systematic review chapter with Tesify

    Frequently asked questions

    How many studies should a masters systematic review include?

    There is no target number — the answer is however many meet your criteria. Reviews including fewer than five studies are publishable if the question is important and the search was thorough. A review returning eighty included studies usually signals a question that was too broad for the time available.

    Can you do a systematic review on your own?

    For a dissertation, yes, provided you report it honestly. Best practice requires dual independent screening; masters programmes typically accept a single reviewer with a proportion double-screened by a supervisor or peer. State exactly what was done and treat single screening as a limitation.

    Do you need PROSPERO registration for a dissertation review?

    Not usually required by programmes, but strongly advisable. PROSPERO accepts student reviews with supervisor details. Registration timestamps your criteria and materially improves the chances of publishing the review afterwards.

    What is the difference between PRISMA 2009 and PRISMA 2020?

    PRISMA 2020 replaced the 2009 statement and expanded the checklist, with more detail required on search strategies, automation tools, and reporting of bias assessment. It also revised the flow diagram, including a version for reviews updating a previous review. Report to PRISMA 2020 and cite it.

    Should you include grey literature in a public health review?

    Often yes, because public health interventions are frequently evaluated in government and NGO reports that never reach journals. Excluding grey literature risks publication bias. If you exclude it, say so and name the bias; if you include it, specify which sources you searched.

    What do you do if your search returns 20,000 records?

    Narrow the question rather than the search quality. Tighten the population, restrict to specific study designs, or limit to a defensible date range with a stated rationale. Do not simply screen the first few hundred records — that is not a systematic review and examiners will identify it.

    Can you use AI tools to screen studies?

    Screening-assistance tools are increasingly accepted, but PRISMA 2020 requires you to report any automation used, and you remain responsible for every inclusion decision. Check your institution’s academic integrity policy before using any tool, and never present machine decisions as independent human screening.

    How long does a masters systematic review take?

    Plan on the search and screening consuming considerably more calendar time than the writing. Protocol and search development typically take several weeks, screening several more, and the rerun before submission needs its own slot. Reviews run late because screening is estimated as if it were reading.

    Does a narrative synthesis count as a weaker result?

    No. Choosing narrative synthesis because heterogeneity makes pooling invalid is a methodological judgement in your favour. Forcing a meta-analysis on incomparable studies is the weaker outcome, and a well-briefed examiner will say so.