Outlier analysis error "warning no boundaries used "

306 views
Skip to first unread message

Michelle

unread,
Jan 22, 2018, 12:38:51 AM1/22/18
to OxCal
Dear Oxcal Users,

I have a number of radiocarbon dates from a short wetland core that has a significant sediment change; multi proxy data indicate this is likely a hiatus.
The radiocarbon data also have some reversals before and after the hiatus.  

I want to perform outlier analysis prior to building my deposition model to help in determining which dates to keep within the model, but I keep getting a warning stating that no boundaries are used. 


  I have been trying to work out the where the problem lies, I have come back to it with fresh eyes over several days now  and tried various tweaks, but to no avail.  
I am not sure where I have erred in placing my boundaries..

(The postbomb age is clearly problematic but I have tried the code with and without it. When I remove the postbomb age I get the warning no boundaries and zero distribution errors
When I leave it in  get the warning no boundaries and warning can not determine value errors.)

I am hoping someone would be kind enough to look at my code?   No doubt it is glaringly obvious but at this point I can't see the wood for the trees!

Sincerely and appreciatively,
Michelle

Plot()
 {
  Outlier_Model("General", T(5), U(0,4),"t");
  P_Sequence ("KN_1A",1,0.2)
  {
   Boundary ("bottom core")
   {
    z=43;
};
    Sequence ("phase 2")
    {
     R_Date("SacA 33590", 1190, 80)
     {
      Outlier();
      z=42.5;
     };
     R_Date("SacA 33589", 1055, 30)
     {
      Outlier();
      z=37.75;
     };
     R_Date("Beta 463029", 1660, 30)
     {
      Outlier();
      z=32.5;
     };
     Boundary ("phase 2: abrupt contact/change in sed type")
     {
      z=31;
     };
    };
    Interval("hiatus period");
    P_Sequence ("phase 1",1,0.2)
    {
     Boundary ("End hiatus")
     {
      z=31;
};
      Sequence ("phase 1 start")
      {
       R_Date("Beta 463028", 730, 30)
       {
        Outlier();
        z=30.5;
       };
       R_Date("Beta 323990", 270, 30)
       {
        Outlier();
        z=28.5;
       };
       R_Date("Beta 463027", 540, 30)
       {
        Outlier();
        z=22.5;
       };
    R_F14C("SacA 33588",1.0912,0.0024)
{
        Outlier();
        z=11.75;
       };
       Boundary("Field date",U(2010,2011))
       {
        z=0;
       };
      };
     };
    };
   };
  };
 };
        

MILLARD, ANDREW R.

unread,
Jan 22, 2018, 5:03:33 AM1/22/18
to ox...@googlegroups.com
I don't think you have the nesting of boundaries and sequences quite right

P_Sequence ("KN_1A",1,0.2)
{
Boundary ("bottom core"){...}
Sequence ("phase 2")
{
...
Boundary ("phase 2: abrupt contact/change in sed type"){...}
};
};
Interval("hiatus period");
P_Sequence ("phase 1",1,0.2)
{
Boundary ("End hiatus"){...}
Sequence ("phase 1 start")
{
...
Boundary("Field date",U(2010,2011)){...}
};
};

The Sequence commands nested within P_Sequence seem unnecessary to me. If you remove them the P_Sequences will start and end with boundaries, but you need an overall sequence:

Sequence()
{
P_Sequence ("KN_1A",1,0.2)
{
Boundary ("bottom core"){...}
...
Boundary ("phase 2: abrupt contact/change in sed type"){...}
};
Interval("hiatus period");
P_Sequence ("phase 1",1,0.2)
{
Boundary ("End hiatus"){...}
...
Boundary("Field date",U(2010,2011)){...}
};
};

However, the dates are so scattered that OxCal cannot resolve the order to find a starting point even when the Boundary problem is resolved.

Best wishes

Andrew
--
 Dr. Andrew Millard 
e: A.R.M...@durham.ac.uk | t: +44 191 334 1147
 w: https://www.dur.ac.uk/archaeology/staff/?id=160
 Associate Professor of Archaeology,
Durham University, UK
> --
> 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.
> For more options, visit https://groups.google.com/d/optout.

Michelle

unread,
Jan 25, 2018, 1:21:15 AM1/25/18
to OxCal
Dear Andrew, I really appreciate your help. thank you.

The data set clearly has "issues"; however, as a "thought" exercise is it possible to use a later  (younger ) radiocarbon date to help constrain say the older section of the core prior to the hiatus.
Specifically I am wondering if the date at 30.5 cm (Beta 463028) could be used to constrain the boundary at 31 cm (Boundary ("phase 2: abrupt contact/change in sed type").

I have tried using the before command but am not sure if I am using it appropriately, or in the correct sequence. 
The code as follows does not seem to permit a deposition model for the older lower section of the core.....

But perhaps this, even as an exercise in using Oxcal, is over pushing the data?

Would love to get any thoughts you or other Oxcal folks might have on this.

Again appreciatively,

Michelle

 Plot()
 {
  P_Sequence ("KN_1A_2",1,0.2)
  {
Curve("Atmospheric","SHCal13.14c");
   Boundary ("bottom core")
   {
    z=43;
   };
   R_Date("SacA 33590", 1190, 80)
   {
    z=42.5;
   };
   R_Date("SacA 33589", 1055, 30)
   {
    Outlier();
    z=37.75;
   };
   R_Date("Beta 463029", 1660, 30)
   {
    Outlier();
    z=32.5;
   };
   Boundary ("phase 2: abrupt contact/change in sed type")
   {
    z=31;
   };
Before (R_Date("463028", 730, 30));
  };
  };
  Interval("hiatus period");
  P_Sequence ("KN_1A_1",1,0.2)
  {
   Boundary ("End hiatus")
   {
    z=31;
   };
   R_Date("Beta 463028", 730, 30)
   {
    z=30.5;
   };
   R_Date("Beta 323990", 270, 30)
   {
    Outlier();
    z=28.5;
   };
   R_Date("Beta 463027", 540, 30)
   {
    z=22.5;

MILLARD, ANDREW R.

unread,
Jan 26, 2018, 7:27:33 AM1/26/18
to ox...@googlegroups.com
I hadn’t noticed before as I was concentrating on the structure, but you have all dates with Outlier(). The manual says

Outlier([Name], [Probability]) with no parameter removes an item from consideration in a model and in some cases a test is applied to see how likely the item is to be at this place in the model; using the outlier probability sets up outlier analysis based on an Outlier_Model - which can be specified using the name

So all your dates are not being considered and you need to change Outlier() to Outlier("General",0.05). You could use a higher prior probability than 0.05 if you think that some samples are less reliable than others. You might want to use a different outlier model based on your knowledge of the depositional processes.

Your final date extends beyond the range of the calibration curve, so you need to use the Bomb curve. I tried it with Curve("Bomb13NH1") and it runs, but you should choose the one appropriate for the location.

In my quick test the model runs but it fails to converge and all the dates have non-negligible posterior probabilities of being outliers. Rather than trying to change the model I think you need to have a hard look at the nature of the samples to decide which are more likely to be reliable, the form that an outlier might take and where there may be disturbance of the stratigraphy.


Best wishes

Andrew
--
 Dr. Andrew Millard 
e: A.R.M...@durham.ac.uk | t: +44 191 334 1147
 w: https://www.dur.ac.uk/archaeology/staff/?id=160
 Associate Professor of Archaeology,
Durham University, UK


> -----Original Message-----
> From: ox...@googlegroups.com [mailto:ox...@googlegroups.com] On Behalf
> Of Michelle

Michelle

unread,
Jan 28, 2018, 10:44:33 PM1/28/18
to OxCal
Andrew, again, thanks so much.  I worked on this now and after spending more time reading Bronk Ramsay 2009 on outliers and pondering your emails. I now believe I have it sorted on how I should be doing this.  

Very much appreciate all your help.
With best wishes
Michelle
Reply all
Reply to author
Forward
0 new messages