Descriptive

Missing Value Analysis

Lists how many values are absent from each column in the dataset, what share of the rows that represents, and which columns carry no gaps at all.

Method summary

Missing value analysis counts where the gaps in your response file accumulate. The output has three parts: the total number of rows in the dataset, the number of absent values in each column, and that number as a share of the rows. A list of the columns holding at least one gap comes with it, which saves you from reading past the complete ones. The method defines the problem rather than solving it: nothing is imputed, no row is dropped and the dataset stays as it was. The value of the count lies in knowing in advance how many observations later analyses will lose. A fifth of the answers absent from one scale item determines which participants can never receive a total score built on that item, and in a model using several variables, gaps that each look moderate on their own can combine to push a substantial part of the sample out of the analysis.

Which research questions does it answer?

  • Which questions in the survey did participants decline to answer?
  • How many gaps sit in the items I plan to combine into a total score?
  • Which columns are complete and will therefore cost no observations in analysis?
  • Why does the next analysis report fewer observations than the file has rows?

When should you use it?

  • Right after the data file opens and before any test is run, to map out where the gaps are.
  • Before building a derived column such as a scale total, since gaps in the items pass straight into the derived column.
  • Before fitting a multivariable model, to estimate how many observations the combined gaps of its columns will cost.
  • In surveys with skippable questions, or long ones, to see where in the questionnaire the tendency to skip increases.
  • When the method and findings sections require non-response rates to be reported.

Required variable types

  • The method counts columns of every type, treating numeric, text and category columns alike, because the count looks at whether a value is present rather than at what it contains.
  • There is no dependent or independent role here; since nothing is tested, no variable is assigned a role.
  • Whether missing value codes have been declared on the Variable tab determines whether the count is right, since an undeclared code counts as a valid value and never shows up as absent.
  • The method takes no column selection and works across the whole dataset, so technical columns appear in the audit as well.

Key assumptions

Gaps being genuinely empty cells
The count rests on a cell being empty. Where non-response was recorded with a marker such as 99, -1 or a dash, those cells count as filled and never appear in the audit.
The reason for the gaps being judged by the researcher
The numbers do not say where a gap came from. A skipped question, a dropout, a refusal on a sensitive topic and a technical recording fault all look identical in the audit, while their consequences for the analysis differ sharply.
Columns not being read in isolation
Because the audit reports column by column, it cannot show whether two columns are empty for the same participants. Two columns each missing a tenth of their values cost a tenth of the observations if the gaps fall on the same people and a fifth if they fall on different ones.
The total row count being read correctly
The percentages are produced by dividing into the total row count, so a file opening with more or fewer rows than expected shifts every rate. A file with blank rows at the end manufactures an artificial gap in every column.

How YouReply checks these assumptions

  • Gaps being genuinely empty cells: Missing value codes are defined on the Variable tab and enter the count once defined. The method itself cannot sense that a value might be a missing code and raises no warning about it.
  • The reason for the gaps being judged by the researcher: The panel does not test the mechanism behind the missingness. No test of whether the data are missing completely at random is carried out, and that judgement rests with the researcher who knows the questionnaire flow.
  • Columns not being read in isolation: No co-missingness matrix is produced and no row-level count of gaps is returned. Seeing the overlap between two columns means inspecting the data on the Data tab or computing it elsewhere.
  • The total row count being read correctly: The total row count appears at the head of the result and can be compared with the grid on the Data tab, though the method will not make that comparison for you.

How the analysis is run

  1. 1Drop your response file onto the upload area and note the row count as the file opens into the grid on the Data tab.
  2. 2Define the missing value codes on the Variable tab; skip this and non-responses entered as codes will not count as gaps in the audit.
  3. 3On the Analysis tab pick the missing value analysis from the descriptive group, narrowing the picker with the search box or the 'Only ones that fit my data' switch.
  4. 4There is no parameter to fill in for this method; the audit covers the whole dataset, so run it directly.
  5. 5In the result read the total row count, the per-column counts and the percentages; the list of columns carrying gaps tells you where to look.
  6. 6Export the audit to Excel. No chart is drawn for this method, and the computation credits card names the library call behind it.
  7. 7Return to the Variable tab if you need to correct derived columns or missing codes, then take the audit again.

Statistics and tables produced

Total row count
The divisor behind the percentages. Comparing it with the grid on the Data tab is the first step in confirming that the file opened in full.
Missing count per column
The number of empty cells in each column. The raw count belongs next to the percentage, since a small share of a large file can still mean hundreds of lost answers.
Missing percentage per column
The missing count as a share of the total rows. This is how columns are compared with one another and how the rate for a report is obtained.
List of columns carrying gaps
The names of the columns with at least one absent value. A column that is not on the list is complete and will cost no observations later.

Effect size and confidence intervals

Missingness rate
The only magnitude this method produces is the per-column percentage of absent values, and it is not an effect size. Rates under five per cent are usually treated as moderate in the literature, a column above ten per cent calls for a discussion of why the gaps are there, and a column past forty per cent is often dropped from the analysis. None of these are fixed rules and they shift with the weight the column carries in the model. Because no test is carried out, no significance value is produced for these rates.
Expected loss of observations
Combining the gaps of the columns you intend to use together lets you estimate how many observations the next analysis will lose; that figure approaches the single largest column rate at best and the sum of the rates at worst. The panel does not compute the overlap, so with a per-column audit the estimate is yours to make.

This method returns no confidence interval. No interval for a proportion is computed around the missingness rates, no hypothesis is tested and no p value is produced; every figure returned is an exact count of the file in hand. To test whether missingness differs across a grouping variable, you would code the gap as a binary column and move on to a categorical testing method.

Example research question and example result

The numbers below are a representative example, not data from a real study or a real user.

Research question
In an illustrative employee survey, which questions did the gaps accumulate in, and what does that mean for a scale total?
Variables
520 rows and 14 columns in the file · The items of a six-item commitment scale · A monthly income bracket question · A year of birth question
Example result
The audit counted 520 rows in total and listed five columns carrying gaps: monthly income bracket with 94 absent (18.1 per cent), year of birth with 31 absent (6.0 per cent), the fourth commitment item with 22 absent (4.2 per cent), the fifth with 19 absent (3.7 per cent) and the sixth with 17 absent (3.3 per cent). The first three items of the scale and all remaining columns are complete.
Interpretation
The income question is by a wide margin the column where gaps concentrate, and a rate of 18.1 per cent makes putting it straight into a model problematic; given that income is asked as a bracket, a tendency to decline tied to sensitivity is to be expected. That the gaps in the scale items fall on the last three suggests part of the sample moved quickly through the closing stretch of the questionnaire. Small as those three percentages are individually, the audit cannot say whether they accumulate on the same participants: if the gaps fall on entirely different people, the six-item total cannot be computed for 58 participants, whereas if they fall on the same people the loss stops at 22. Since the audit says nothing about pattern, that distinction is yours to establish. The figures are illustrative.

Real output on a sample dataset

The results below were produced by the analysis engine from this data file. Changing the variable changes the research question as well; every run was computed in advance, so the page sends no request to the engine.

General customer survey (synthetic)

A wide survey of three hundred respondents: two and three category grouping variables, continuous measures, a five point ordinal scale, a binary purchase outcome, a four category brand choice, three repeated measurements, paired binary questions, three raters, four price questions and deliberately empty cells.

Rows
300
Columns
respondent_id, gender, education, region, age, income, satisfaction, service_score, price_score, quality_score, loyalty, nps_score, purchased, brand_choice, satisfaction_level, pre_score, post_score, measure_1, measure_2, measure_3, use_before, use_after, use_followup, rater_1, rater_2, rater_3, price_too_cheap, price_cheap, price_expensive, price_too_expensive, feedback_score, followup_rating
Download the dataset as CSV

The data is synthetic: it comes from a fixed random seed, not from a real study. The values below were produced by the analysis engine from this file, so uploading the same file to the panel gives the same results.

Research question: Which questions were left blank and how large is the missing share? Two columns in this file were deliberately left incomplete.

Total rows
300

Missing cells per column

respondent_id
0
gender
0
education
0
region
0
age
0
income
0
satisfaction
0
service_score
0
price_score
0
quality_score
0
loyalty
0
nps_score
0
purchased
0
brand_choice
0
satisfaction_level
0
pre_score
0
post_score
0
measure_1
0
measure_2
0
measure_3
0
use_before
0
use_after
0
use_followup
0
rater_1
0
rater_2
0
rater_3
0
price_too_cheap
0
price_cheap
0
price_expensive
0
price_too_expensive
0
feedback_score
45
followup_rating
80

Percentage of missing cells per column

respondent_id
0
gender
0
education
0
region
0
age
0
income
0
satisfaction
0
service_score
0
price_score
0
quality_score
0
loyalty
0
nps_score
0
purchased
0
brand_choice
0
satisfaction_level
0
pre_score
0
post_score
0
measure_1
0
measure_2
0
measure_3
0
use_before
0
use_after
0
use_followup
0
rater_1
0
rater_2
0
rater_3
0
price_too_cheap
0
price_cheap
0
price_expensive
0
price_too_expensive
0
feedback_score
15
followup_rating
26.67

Computation credits: scipy 1.18.0 · statsmodels 0.14.6 · scikit-learn 1.9.0 · numpy 2.5.1 · pandas 3.0.5 · semopy 2.3.11 · 89fc29a · Data seed: 20260914

How to report the result

Non-response was 18.1 per cent for the monthly income question, 6.0 per cent for year of birth, and between 3.3 and 4.2 per cent across the last three commitment items (N = 520).

An example sentence close to APA style; the numbers are representative.

When you should not use it

  • It does not show why the gaps arose; skipping a question, abandoning the survey and a technical recording fault all look the same in the audit.
  • No test of whether the data are missing completely at random is run, so this output cannot supply the evidence an imputation choice would rest on.
  • Whether columns are absent together stays invisible: with no co-missingness matrix, the real loss of observations in a multivariable analysis cannot be read from the audit.
  • No row-level summary is given, so how many participants left at least one question blank, or which of them answered almost nothing, is absent from this table.
  • Undeclared missing value codes are not counted as gaps, so an audit that looks clean is no guarantee that the data are complete.
  • The method fills nothing in and removes no rows; deciding on and carrying out imputation or row deletion stays outside the panel.

What to use when the assumptions are not met

  • Descriptive StatisticsWhy: When you want the per-column observation count alongside measures of centre and spread, to show how the gaps affect the summary statistics.
  • Frequency DistributionWhy: When you suspect that non-response in a category column was coded as a category of its own; it lists every category with its count.

Frequently asked questions

Does the panel fill in missing values?
It does not. This method only counts: nothing is imputed with a mean or with any model, and the dataset is left untouched. If you have decided to impute, you need to do so in your own file before uploading and to state the imputation method in your report. Analyses you run without imputing proceed on the rows that hold values in the columns that analysis uses.
I used a missing value code. Why does it not show in the audit?
The count is based on empty cells. A code such as 99 or -1 counts as absent only once you declare it as missing on the Variable tab; otherwise it remains a valid number and enters the computation both here and in the descriptive statistics, where it distorts the mean. Declare the codes and run the audit again.
Above what rate should I drop a column from the analysis?
There is no single threshold, and the decision depends on the column's role in the study as much as on the rate. Gaps of a few per cent cause no trouble in most designs. Once the rate passes a tenth, you are expected to discuss the reason in your report. Dropping a heavily incomplete column from a model is a common route, though in some cases the refusal itself carries information and coding the column as answered or not answered is more informative.
How can I tell whether two columns are empty for the same people?
This audit counts per column and supplies no such overlap; no co-missingness matrix is produced. A rough route is to place the columns side by side in the grid on the Data tab and see whether the gaps line up. For an exact number you would code the gap in each column as a binary variable and cross-tabulate the two, or work the figure out outside the panel.

References

  • Little, R. J. A., & Rubin, D. B. (2019). Statistical Analysis with Missing Data
  • Rubin, D. B. (1976). Inference and Missing Data
  • Rubin, D. B. (1987). Multiple Imputation for Nonresponse in Surveys
  • pandas.DataFrame.isnull documentation

Try it with your own data

The free plan includes 50 analysis runs a month and needs no card.