early/late dates in phase returning outliers

39 views
Skip to first unread message

Sarah Martini

unread,
Mar 27, 2026, 10:28:42 AM (6 days ago) Mar 27
to OxCal
Hi all!
I have a question about model agreement, phases, and outliers. I am interested in estimating the beginning and end of a material type in a particular region, and thought I could do so by putting all of the associated C14 dates into a single phase and using the start and end boundaries. This very simple solution resulted in poor agreement indices, with the ~five earliest and ~five latest dates marked as problematic. 

An outlier model similarly identifies these dates as not fitting, but also does not seem to solve the agreement problems.

I am curious if people have recommendations for how to move forward. Excluding these dates as they are all at the ends of phase seems like it would rather artificially shorten the phase, and may simply result in the next youngest/oldest dates being marked as outliers.

Code/Dates:
 Options()
 {
  Curve="IntCal20.14c";
 };
 Plot()
 {
  Outlier_Model("General", T(5), U(0,4), "t");
  Sequence("Moravian Bell Beaker")
  {
   Boundary("Start Morav")
   Boundary("Start Pampas")
   {
    color = "green";
   };
   KDE_Plot("Moravia Bell Beaker KDE")
   {
    R_Date("BLM-4500 Tvorihráz/CZ gr. 2", 4011, 52)
    {
     Outlier(0.05);
    };
    R_Date("Erl-4721 Pavlov Horni pole/CZ gr. 516", 4007, 62)
    {
     Outlier(0.05);
    };
    R_Date("Erl-4719 Pavlov Horni pole/CZ gr. 501", 3990, 54)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34838 Stribrnice 1/CZ gr. 37", 3980, 35)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34665 Hulin 1/CZ gr. 63", 3950, 30)
    {
     Outlier(0.05);
    };
    R_Date("Poz-44322 Kyovice Sutny 2", 3940, 40)
    {
     Outlier(0.05);
    };
    R_Date("VERA-5530 Zahlinice gr. 48", 3935, 40)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34666 Hulin 1/CZ gr. 73", 3935, 25)
    {
     Outlier(0.05);
    };
    R_Date("MAMS-34188 Pavlov-Horni pole H570", 3919, 26)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34720 Stribrnice 1/CZ pit 4", 3915, 30)
    {
     Outlier(0.05);
    };
    R_Date("Erl-4722 Pavlov Horni pole/CZ gr. 570", 3913, 56)
    {
     Outlier(0.05);
    };
    R_Date("Erl-4718 Pavlov Horni pole/CZ gr. 500", 3908, 54)
    {
     Outlier(0.05);
    };
    R_Date("VERA-5533 Hostice I gr. 937", 3900, 40)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34669 Hulin 1/CZ gr. 86", 3900, 25)
    {
     Outlier(0.05);
    };
    R_Date("DeA-16846 Prerov-Predmosti 5 H44", 3897, 26)
    {
     Outlier(0.05);
    };
    R_Date("VERA-3337 OL-Slavonin Horni lan pit 255", 3890, 35)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34721/A-1 Stribrnice 1/CZ pit. 44", 3890, 30)
    {
     Outlier(0.05);
    };
    R_Date("VERA-5209 Hostice I gr. 837", 3885, 35)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34721/A1 Stribrnice I/CZ pit 44", 3880, 30)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34840 Stribrnice 1/CZ gr. 43", 3875, 30)
    {
     Outlier(0.05);
    };
    R_Date("Erl-7620 OL-Slavonin Horni lan/CZ pit 1247", 3874, 55)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34714 Vrchoslavice-Vitcice 1/CZ pit 45", 3870, 30)
    {
     Outlier(0.05);
    };
    R_Date("Bln-4497 Tvorihráz/CZ gr. 2", 3869, 40)
    {
     Outlier(0.05);
    };
    R_Date("MAMS-34185 Zahlinice H67/89", 3869, 26)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34842 Stribrnice gr. 53", 3865, 35)
    {
     Outlier(0.05);
    };
    R_Date("Erl-4681 OL-Slavonin Horni lan/CZ pit 2030", 3861, 51)
    {
     Outlier(0.05);
    };
    R_Date("Erl-4724 Pavlov Horni pole/CZ gr. 585", 3860, 57)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34721/A2 Stribrnice 1/CZ pit 44", 3860, 40)
    {
     Outlier(0.05);
    };
    R_Date("VERA-5206 Hostice I gr. 863", 3860, 35)
    {
     Outlier(0.05);
    };
    R_Date("Erl-4720 Pavlov Horni pole/CZ gr. 505", 3859, 57)
    {
     Outlier(0.05);
    };
    R_Date("MAMS-34189 Pavlov-Horni pole H500", 3856, 26)
    {
     Outlier(0.05);
    };
    R_Date("VERA-5532 Hostice I gr. 871", 3855, 40)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34663/1-2 Hulin 1/CZ gr. 57", 3855, 30)
    {
     Outlier(0.05);
    };
    R_Date("VERA-3347 OL-Slavonin/CZ pit 254", 3850, 35)
    {
     Outlier(0.05);
    };
    R_Date("VERA-3360 Pavlov Horni pole/CZ gr. 585", 3850, 35)
    {
     Outlier(0.05);
    };
    R_Date("VERA-5207 Hostice I gr. 947", 3850, 35)
    {
     Outlier(0.05);
    };
    R_Date("VERA-5529 Zahlinice gr. 47", 3845, 40)
    {
     Outlier(0.05);
    };
    R_Date("Poz-93238 Brno-Slatina Stranska skala obj. 2", 3845, 35)
    {
     Outlier(0.05);
    };
    R_Date("Poz-85799 Opava-Varovice obj. 1618 (H45)", 3845, 30)
    {
     Outlier(0.05);
    };
    R_Date("MAMS-34186 Pavlov-Horni pole H588", 3840, 26)
    {
     Outlier(0.05);
    };
    R_Date("BLN-4501 Tvorihráz/CZ gr. 2", 3838, 42)
    {
     Outlier(0.05);
    };
    R_Date("VERA-5528 Zahlinice gr. 5", 3845, 40)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34845 Stribrnice 1/CZ gr. 27", 3835, 35)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34845 Stribrnice 1/H27 (823)", 3835, 35)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34686 Hulin 1 H 78", 3835, 30)
    {
     Outlier(0.05);
    };
    R_Date("VERA-2161 Pavlov Horni pole/CZ gr. 500", 3830, 35)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34836 Stribrnice 1/CZ gr. 23", 3830, 35)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34719 Stribrnice 1/CZ pit 3", 3830, 30)
    {
     Outlier(0.05);
    };
    R_Date("UGAMS-11867 Drevohostice", 3830, 30)
    {
     Outlier(0.05);
    };
    R_Date("Erl-7622 OL-Slavonin Horni lan/CZ pit 1406", 3828, 50)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34835 Stribrnice 1/CZ gr. 21", 3825, 30)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34713-A Vrchoslavice-Vitcice 1/CZ gr. 10", 3825, 25)
    {
     Outlier(0.05);
    };
    R_Date("VERA-5208 Hostice I gr. 826", 3820, 40)
    {
     Outlier(0.05);
    };
    R_Date("Poz-93239 Brno-Slatina Stranska skala obj. 2", 3820, 40)
    {
     Outlier(0.05);
    };
    R_Date("Erl-4677 OL-Slavonin Horni lan/CZ pit 964", 3815, 55)
    {
     Outlier(0.05);
    };
    R_Date("VERA-3359 Pavlov Horni pole/CZ gr. 570", 3810, 35)
    {
     Outlier(0.05);
    };
    R_Date("Erl-4723 Pavlov Horni pole/CZ gr. 570", 3808, 57)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34633/1-1 Hulin I gr. 57", 3805, 30)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34833 Stribrnice 1/CZ gr. 7", 3805, 30)
    {
     Outlier(0.05);
    };
    R_Date("VERA-5205 Hostice I gr. 820", 3800, 35)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34633/1 Hulin 1/CZ gr. 3", 3800, 25)
    {
     Outlier(0.05);
    };
    R_Date("UGAMS-7653 Pravcice 3 99/800", 3800, 25)
    {
     Outlier(0.05);
    };
    R_Date("DeA-16848 Prerov-Predmosti 7 H4", 3796, 27)
    {
     Outlier(0.05);
    };
    R_Date("MAMS-34190 Pavlov-Horni pole H523", 3795, 26)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34841 Stribrnice 1/CZ gr. 48", 3790, 35)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34670 Hulin 1/CZ gr. 93", 3790, 30)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34721/A2 Stribrnice 1/CZ pit. 44", 3790, 30)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34844 Stribrnice 1/CZ gr. 85", 3790, 25)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34837 Stribrnice 1/CZ gr. 33", 3785, 35)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34713 Vrchoslavice-Vitcice 1/CZ gr. 10", 3785, 30)
    {
     Outlier(0.05);
    };
    R_Date("VERA-5531 Zahlinice gr. 67", 3780, 40)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34834 Stribrnice 1/CZ gr. 9", 3780, 30)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34843 Stribrnice 1/CZ gr. 79", 3775, 30)
    {
     Outlier(0.05);
    };
    R_Date("BLN-4499 Tvorihráz/CZ gr. 2", 3771, 44)
    {
     Outlier(0.05);
    };
    R_Date("KIA-34839 Stribrnice 1/CZ gr. 41", 3760, 30)
    {
     Outlier(0.05);
    };
    R_Date("DeA-16847 Prerov-Predmosti 5 H25", 3753, 26)
    {
     Outlier(0.05);
    };
    R_Date("BLN-2841 Holubice/CZ pit 1", 3750, 61)
    {
     Outlier(0.05);
    };
    R_Date("BLN-4498 Tvorihráz/CZ gr. 2", 3746, 52)
    {
     Outlier(0.05);
    };
    R_Date("BLN-2840 Holubice/CZ pit 2", 3740, 70)
    {
     Outlier(0.05);
    };
    R_Date("Poz-98491 Prerov-Predmosti 5 H24", 3740, 40)
    {
     Outlier(0.05);
    };
    R_Date("Poz-93511 Brno-Slatina Stranska skala obj. 2", 3700, 30)
    {
     Outlier(0.05);
    };
    R_Date("Poz-98492 Prerov-Predmosti 5 H25", 3690, 35)
    {
     Outlier(0.05);
    };
    R_Date("Erl-7621 OL-Slavonin Horni lan/CZ pit 1406", 3667, 50)
    {
     Outlier(0.05);
    };
   };
   Boundary("End Morav")
   {
    color = "red";
   };
  };
 };



Christopher Ramsey

unread,
Mar 27, 2026, 10:45:03 AM (6 days ago) Mar 27
to OxCal group
Dear Sarah

Many thanks for your question. The agreement index and outlier analysis are really separate approaches to dealing with outliers. If you have outlier analysis you can essentially ignore the agreement indices as the samples will already be down weighted within the model. Using [View > Oultiers] report will show you how much they have been down weighted by. If a sample has been totally excluded (outlier posterior probability 100%) then you can safely remove it using the Outlier(); command without a probability. This will often speed up the model running time.

Best wishes

Christopher
> --
> You received this message because you are subscribed to the Google Groups "OxCal" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to oxcal+un...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/oxcal/b179a85d-07b3-4c6d-8ce2-83190e205b19n%40googlegroups.com.

Sarah Martini

unread,
Mar 27, 2026, 10:54:22 AM (6 days ago) Mar 27
to OxCal
Dear Christopher,
Thank you for the response. The posterior outlier probabilities even for those problematic samples are still quite low (in my opinion), ranging from 6 - 13% (see attachments). Because of that, I did not think that removing the outliers would make sense. In this case, would you say all dates could be kept in the phase? 

Conceptually, I am also trying to grapple with what this means as the problematic dates are not vastly older or younger than any of the other dates or separated by any visible gap, they are simply the trailing ends of style use. I played a bit with other boundary types, like the trapezoidal, but it similarly returned a low overall model agreement.

Thanks again!
Sarah 
ourtlier2.png
outlier_1.png

John Meadows

unread,
Mar 28, 2026, 6:59:20 AM (5 days ago) Mar 28
to ox...@googlegroups.com
Dear Sarah
Good questions. There's one bug in your code: the Boundary ("start Pampas") is redundant. I am not sure if this changes anything, but to deal with the real issue - I suspect that the number of 'outliers' is roughly what you should expect, given how many measurements you have, so you should not be excluding them to bump up the agreement index. The real challenge is deciding what is the most realistic model structure. The Boundary-Phase-Boundary Sequence is usually valid if you have no other information, and the phenomenon of interest is regarded as starting and ending abruptly. It assumes the dated events are selected at random from a temporally uniform distribution of datable events. But OxCal has various alternative options (see Help manual and Bronk Ramsey 2009; Lee and Bronk Ramsey 2012; Bronk Ramsey 2017 for details). If I don't know much about a data set, I might start with KDE_Model of everything, which can give a hint about the overall temporal distribution of the dated events. Your dates are not obviously bimodally distributed, or heavily slanted towards earlier or later events, so probably it makes sense to treat them as only one phase (but you also knew this from the material culture associated with the dates), and not to think about ramped or exponential distributions (Zero_Boundary and Tau_Boundary). Intuitively, I would also reject a sigmoid distribution; your Outlier_model is already down-weighting the outliers and you would not expect rare cases of Bell Beakers being produced centuries before or after their main period of use. That leaves the Trapezium model, which in principle is the best approximation of archaeological expectations for the temporal distribution of an artefact type. With all your dates in, and using your Outlier_model specifications, this has satisfactory dynamic agreement and suggests rapid, if not instantaneous, beginning and end of the use of Bell Beakers in Moravia (around 2400 and 2200 BC respectively, which sounds about right). Whether it is worth going into more detail than this depends on your research questions.
all the best
John

Sarah Martini

unread,
Mar 29, 2026, 6:45:26 AM (4 days ago) Mar 29
to OxCal
Dear John,
Thank you for the detailed response! 
I had caught that typo and re-run the model with little change, I didn't realize I copied the old version.
I will try to run a Trapezium model with an Outlier model, I had only the Outlier for the basis Boundary-Phase-Boundary.
Thanks for the suggestions!
Sarah

Erik Marsh

unread,
Mar 30, 2026, 9:48:16 AM (3 days ago) Mar 30
to OxCal
Hi Sarah, 

Good question and a good choice for regional trends. I agree with Christopher: I would keep all the dates. It is easy to forget that even though OxCal gives you red text, this does not mean it's a bad model or you've made a mistake. Agreement indices only tell us if the dates and priors are internally consistent. We should expect about 1 in 20 dates to be outliers, so I also am not surprised by this. The outlier probabilities of 10–13% are lowish but not bad (those dates have a 87–90% chance of not being outliers). John has a great point about the Trapezium model, especially for these rapid changes in ceramics (I would suspect that the boundaries are similar). For simplicity's sake, you can remove the calibration curve and the options,  since IntCal20 is OxCal's default.

When I see low A indices, I go back to each date – there are a number of possible scenarios, for example, these ceramics were adopted/abandoned at slightly different times at some sites (though as a regional trend, your model's estimates are probably defendable). If you can add any stratigraphic constraints, they may help the model converge. For example, two late dates are from the context (or site?) "Prerov-Predmosti 5 H25" – should these be combined? If so, that context's date would move away from the ending boundary. What about those large (500 g?!)  "pole" samples – are those construction posts? They seem to cluster toward the beginning of the model, making me think they are wood and need a charcoal outlier model (just guessing here). They could be prior to associated occupation floors. If this phase was brief (as John's model suggests), it will be more sensitive to these minor model tweaks.

And mainly, I go back to the usual suspect: sample–ceramic association. I would rate each association on Waterbolk's (1971) scale and then see how much the model shifts when you include only high- or low-rated associations. i would say poor (or null) associations are a defendable reason to manually reject dates, while indices and outlier probabilities are not, generally speaking.

Hope that helps,
Erik

Reply all
Reply to author
Forward
0 new messages