isochron  R Documentation 
Plots cogenetic UPb, ArAr, KCa, PbPb, ThPb, RbSr, SmNd,
ReOs, LuHf, UThHe or ThU data as XY scatterplots, fits an
isochron curve through them using the york
,
titterington
or ludwig
function, and computes the
corresponding isochron age, including decay constant uncertainties.
isochron(x, ...)
## Default S3 method:
isochron(
x,
oerr = 3,
sigdig = 2,
show.numbers = FALSE,
levels = NA,
clabel = "",
xlab = "x",
ylab = "y",
ellipse.fill = c("#00FF0080", "#FF000080"),
ellipse.stroke = "black",
ci.col = "gray80",
line.col = "black",
lwd = 1,
plot = TRUE,
title = TRUE,
model = 1,
wtype = 1,
anchor = 0,
show.ellipses = 1 * (model != 2),
hide = NULL,
omit = NULL,
omit.fill = NA,
omit.stroke = "grey",
...
)
## S3 method for class 'other'
isochron(
x,
oerr = 3,
sigdig = 2,
show.numbers = FALSE,
levels = NA,
clabel = "",
xlab = "x",
ylab = "y",
ellipse.fill = c("#00FF0080", "#FF000080"),
ellipse.stroke = "black",
ci.col = "gray80",
line.col = "black",
lwd = 1,
plot = TRUE,
title = TRUE,
model = 1,
wtype = 1,
anchor = 0,
flippable = 0,
show.ellipses = 1 * (model != 2),
hide = NULL,
omit = NULL,
omit.fill = NA,
omit.stroke = "grey",
...
)
## S3 method for class 'UPb'
isochron(
x,
oerr = 3,
sigdig = 2,
show.numbers = FALSE,
levels = NA,
clabel = "",
joint = TRUE,
ellipse.fill = c("#00FF0080", "#FF000080"),
ellipse.stroke = "black",
type = 1,
ci.col = "gray80",
line.col = "black",
lwd = 1,
plot = TRUE,
exterr = FALSE,
model = 1,
show.ellipses = 1 * (model != 2),
anchor = 0,
hide = NULL,
omit = NULL,
omit.fill = NA,
omit.stroke = "grey",
y0option = 1,
taxis = FALSE,
...
)
## S3 method for class 'PbPb'
isochron(
x,
oerr = 3,
sigdig = 2,
show.numbers = FALSE,
levels = NA,
clabel = "",
ellipse.fill = c("#00FF0080", "#FF000080"),
ellipse.stroke = "black",
inverse = TRUE,
ci.col = "gray80",
line.col = "black",
lwd = 1,
plot = TRUE,
exterr = FALSE,
model = 1,
wtype = 1,
anchor = 0,
growth = FALSE,
show.ellipses = 1 * (model != 2),
hide = NULL,
omit = NULL,
omit.fill = NA,
omit.stroke = "grey",
...
)
## S3 method for class 'ArAr'
isochron(
x,
oerr = 3,
sigdig = 2,
show.numbers = FALSE,
levels = NA,
clabel = "",
ellipse.fill = c("#00FF0080", "#FF000080"),
ellipse.stroke = "black",
inverse = TRUE,
ci.col = "gray80",
line.col = "black",
lwd = 1,
plot = TRUE,
exterr = FALSE,
model = 1,
wtype = 1,
anchor = 0,
show.ellipses = 1 * (model != 2),
hide = NULL,
omit = NULL,
omit.fill = NA,
omit.stroke = "grey",
taxis = FALSE,
...
)
## S3 method for class 'ThPb'
isochron(
x,
oerr = 3,
sigdig = 2,
show.numbers = FALSE,
levels = NA,
clabel = "",
ellipse.fill = c("#00FF0080", "#FF000080"),
ellipse.stroke = "black",
inverse = FALSE,
ci.col = "gray80",
line.col = "black",
lwd = 1,
plot = TRUE,
exterr = FALSE,
model = 1,
wtype = 1,
anchor = 0,
show.ellipses = 1 * (model != 2),
hide = NULL,
omit = NULL,
omit.fill = NA,
omit.stroke = "grey",
taxis = FALSE,
...
)
## S3 method for class 'KCa'
isochron(
x,
oerr = 3,
sigdig = 2,
show.numbers = FALSE,
levels = NA,
clabel = "",
inverse = FALSE,
ci.col = "gray80",
ellipse.fill = c("#00FF0080", "#FF000080"),
ellipse.stroke = "black",
line.col = "black",
lwd = 1,
plot = TRUE,
exterr = FALSE,
model = 1,
wtype = 1,
anchor = 0,
show.ellipses = 1 * (model != 2),
hide = NULL,
omit = NULL,
omit.fill = NA,
omit.stroke = "grey",
taxis = FALSE,
bratio = 0.895,
...
)
## S3 method for class 'RbSr'
isochron(
x,
oerr = 3,
sigdig = 2,
show.numbers = FALSE,
levels = NA,
clabel = "",
ellipse.fill = c("#00FF0080", "#FF000080"),
ellipse.stroke = "black",
inverse = FALSE,
ci.col = "gray80",
line.col = "black",
lwd = 1,
plot = TRUE,
exterr = FALSE,
model = 1,
wtype = 1,
anchor = 0,
show.ellipses = 1 * (model != 2),
hide = NULL,
omit = NULL,
omit.fill = NA,
omit.stroke = "grey",
taxis = FALSE,
...
)
## S3 method for class 'ReOs'
isochron(
x,
oerr = 3,
sigdig = 2,
show.numbers = FALSE,
levels = NA,
clabel = "",
ellipse.fill = c("#00FF0080", "#FF000080"),
ellipse.stroke = "black",
inverse = FALSE,
ci.col = "gray80",
line.col = "black",
lwd = 1,
plot = TRUE,
exterr = FALSE,
model = 1,
wtype = 1,
anchor = 0,
show.ellipses = 1 * (model != 2),
hide = NULL,
omit = NULL,
omit.fill = NA,
omit.stroke = "grey",
taxis = FALSE,
...
)
## S3 method for class 'SmNd'
isochron(
x,
oerr = 3,
sigdig = 2,
show.numbers = FALSE,
levels = NA,
clabel = "",
ellipse.fill = c("#00FF0080", "#FF000080"),
ellipse.stroke = "black",
inverse = FALSE,
ci.col = "gray80",
line.col = "black",
lwd = 1,
plot = TRUE,
exterr = FALSE,
model = 1,
wtype = 1,
anchor = 0,
show.ellipses = 1 * (model != 2),
hide = NULL,
omit = NULL,
omit.fill = NA,
omit.stroke = "grey",
taxis = FALSE,
...
)
## S3 method for class 'LuHf'
isochron(
x,
oerr = 3,
sigdig = 2,
show.numbers = FALSE,
levels = NA,
clabel = "",
ellipse.fill = c("#00FF0080", "#FF000080"),
ellipse.stroke = "black",
inverse = FALSE,
ci.col = "gray80",
line.col = "black",
lwd = 1,
plot = TRUE,
exterr = FALSE,
model = 1,
wtype = 1,
anchor = 0,
show.ellipses = 1 * (model != 2),
hide = NULL,
omit = NULL,
omit.fill = NA,
omit.stroke = "grey",
taxis = FALSE,
...
)
## S3 method for class 'UThHe'
isochron(
x,
sigdig = 2,
oerr = 3,
show.numbers = FALSE,
levels = NA,
clabel = "",
ellipse.fill = c("#00FF0080", "#FF000080"),
ellipse.stroke = "black",
ci.col = "gray80",
line.col = "black",
lwd = 1,
plot = TRUE,
model = 1,
wtype = 1,
anchor = 0,
show.ellipses = 2 * (model != 2),
hide = NULL,
omit = NULL,
omit.fill = NA,
omit.stroke = "grey",
...
)
## S3 method for class 'ThU'
isochron(
x,
type = 2,
oerr = 3,
sigdig = 2,
show.numbers = FALSE,
levels = NA,
clabel = "",
ellipse.fill = c("#00FF0080", "#FF000080"),
ellipse.stroke = "black",
ci.col = "gray80",
line.col = "black",
lwd = 1,
plot = TRUE,
exterr = FALSE,
model = 1,
wtype = "a",
show.ellipses = 1 * (model != 2),
hide = NULL,
omit = NULL,
omit.fill = NA,
omit.stroke = "grey",
y0option = 4,
...
)
x 
EITHER a matrix with the following five columns:
OR an object of class 
... 
optional arguments to be passed on to 
oerr 
indicates whether the analytical uncertainties of the output are reported in the plot title as:

sigdig 
the number of significant digits of the numerical values reported in the title of the graphical output 
show.numbers 
logical flag ( 
levels 
a vector with additional values to be displayed as different background colours within the error ellipses. 
clabel 
label for the colour scale 
xlab 
text label for the horizontal plot axis 
ylab 
text label for the vertical plot axis 
ellipse.fill 
Fill colour for the error ellipses. This can either be a single colour or multiple colours to form a colour ramp. Examples: a single colour: multiple colours: a colour palette: a reversed palette: For empty ellipses, set 
ellipse.stroke 
the stroke colour for the error
ellipses. Follows the same formatting guidelines as

ci.col 
the fill colour for the confidence interval of the intercept and slope. 
line.col 
colour of the isochron line 
lwd 
line width 
plot 
if 
title 
add a title to the plot? 
model 
construct the isochron using either:

wtype 
controls the parameter responsible for the overdispersion in model3 regression. If
otherwise,

anchor 
control parameters to fix the intercept age or common Pb composition of the isochron fit. This can be a scalar or a vector. If If If 
show.ellipses 
show the data as:

hide 
vector with indices of aliquots that should be removed from the plot. 
omit 
vector with indices of aliquots that should be plotted but omitted from the isochron age calculation. 
omit.fill 
fill colour that should be used for the omitted aliquots. 
omit.stroke 
stroke colour that should be used for the omitted aliquots. 
flippable 
controls if generic data (where 
joint 
logical. Only applies to UPb data formats 4 and
above. If 
type 
if
if
if

exterr 
propagate external sources of uncertainty (J, decay constant)? 
y0option 
controls the type of yintercept or activity ratio that is reported along with the isochron age. Only relevant to UPb data and ThU data formats 1 and 2. For UPb data:
For ThU data:

taxis 
logical. If 
inverse 
toggles between normal and inverse isochrons. If the
isochron plots If If 
growth 
add StaceyKramers Pbevolution curve to the plot? 
bratio 
the 
Given several aliquots from a single sample, isochrons allow the
nonradiogenic component of the daughter nuclide to be quantified
and separated from the radiogenic component. In its simplest form,
an isochron is obtained by setting out the amount of radiogenic
daughter against the amount of radioactive parent, both normalised
to a nonradiogenic isotope of the daughter element, and fitting a
straight line through these points by least squares regression
(Nicolaysen, 1961). The slope and intercept then yield the
radiogenic daughterparent ratio and the nonradiogenic daughter
composition, respectively. There are several ways to fit an
isochron. The easiest of these is total least squares
regression, which weighs all data points equally. In the presence
of quantifiable analytical uncertainty, it is equally
straightforward to use the inverse of the yerrors as weights. It
is significantly more difficult to take into account uncertainties
in both the x and the yvariable (York, 1966). IsoplotR
does so for its UThHe isochron calculations. The York (1966)
method assumes that the analytical uncertainties of the x and
yvariables are independent from each other. This assumption is
rarely met in geochronology. York (1968) addresses this issue with
a bivariate error weighted linear least squares algorithm that
accounts for covariant errors in both variables. This algorithm was
further improved by York et al. (2004) to ensure consistency with
the maximum likelihood approach of Titterington and Halliday
(1979).
IsoplotR
uses the York et al. (2004) algorithm for its
ArAr, KCa, PbPb, ThPb, RbSr, SmNd, ReOs and LuHf
isochrons. The maximum likelihood algorithm of Titterington and
Halliday (1979) was generalised from two to three dimensions by
Ludwig and Titterington (1994) for Useries disequilibrium dating.
Also this algorithm is implemented in IsoplotR
. Finally, the
constrained maximum likelihood algorithms of Ludwig (1998) and
Vermeesch (2020) are used for isochron regression of UPb data. The
extent to which the observed scatter in the data can be explained
by the analytical uncertainties can be assessed using the Mean
Square of the Weighted Deviates (MSWD, McIntyre et al., 1966),
which is defined as:
MSWD = ([X  \hat{X}] \Sigma_{X}^{1} [X  \hat{X}]^T)/df
where X
are the data, \hat{X}
are the fitted values,
and \Sigma_X
is the covariance matrix of X
, and df
= k(n1)
are the degrees of freedom, where k
is the
dimensionality of the linear fit. MSWD values that are far smaller
or greater than 1 indicate under or overdispersed measurements,
respectively. Underdispersion can be attributed to overestimated
analytical uncertainties. IsoplotR
provides three
alternative strategies to deal with overdispersed data:
Attribute the overdispersion to an underestimation of the
analytical uncertainties. In this case, the excess scatter can be
accounted for by inflating those uncertainties by a factor
\sqrt{MSWD}
.
Ignore the analytical uncertainties and perform a total least squares regression.
Attribute the overdispersion to the presence of 'geological scatter'. In this case, the excess scatter can be accounted for by adding an overdispersion term that lowers the MSWD to unity.
If x
has class PbPb
, ThPb
,
ArAr
, KCa
, RbSr
, SmNd
, ReOs
or LuHf
, or UThHe
, returns a list with the
following items:
the intercept of the straight line fit and its standard error.
the slope of the fit and its standard error.
the covariance of the slope and intercept
the degrees of freedom of the linear fit (df=n2
for nonanchored fits)
a two or threeelement list containing:
y
: the atmospheric ^{40}
Ar/^{36}
Ar or initial
^{40}
Ca/^{44}
Ca, ^{187}
Os/^{188}
Os,
^{87}
Sr/^{87}
Rb, ^{143}
Nd/^{144}
Nd,
^{176}
Hf/^{177}
Hf or ^{208}
Pb/^{204}
Pb
ratio.
s[y]
: the standard error of y
disp[y]
: the standard error of y
enhanced by
\sqrt{mswd}
(only applicable if model=1
).
a threeelement list containing:
t
: the ^{207}
Pb/^{206}
Pb,
^{208}
Pb/^{232}
Th, ^{40}
Ar/^{39}
Ar,
^{40}
K/^{40}
Ca, ^{187}
Os/^{187}
Re,
^{87}
Sr/^{87}
Rb, ^{143}
Nd/^{144}
Nd or
^{176}
Hf/^{177}
Hf age.
s[t]
: the standard error of t
disp[t]
: the standard error of t
enhanced by
\sqrt{mswd}
(only applicable if model=1
).
the mean square of the residuals (a.k.a 'reduced
Chisquare') statistic (omitted if model=2
).
the pvalue of a Chisquare test for linearity
(omitted if model=2
)
the overdispersion term, i.e. a twoelement vector with
the standard deviation of the (assumed) normally distributed
geological scatter that underlies the measurements, and its
standard error (only returned if model=3
).
(only reported if x
has class PbPb
and
growth
is TRUE
) the intercept(s) of the isochron with
the StaceyKramers mantle evolution curve.
OR, if x
has class ThU
:
if x$type=1
or x$type=3
: the best fitting
^{230}
Th/^{232}
Th intercept,
^{230}
Th/^{238}
U slope, ^{234}
U/^{232}
Th
intercept and ^{234}
U/^{238}
U slope, OR, if
x$type=2
or x$type=4
: the best fitting
^{234}
U/^{238}
U intercept,
^{230}
Th/^{232}
Th slope, ^{234}
U/^{238}
U
intercept and ^{234}
U/^{232}
Th slope.
the covariance matrix of par
.
the degrees of freedom for the linear fit, i.e. (3n3)
if
x$format=1
or x$format=2
, and (2n2)
if
x$format=3
or x$format=4
if type=1
: the ^{230}
Th/^{232}
Th
intercept; if type=2
: the ^{230}
Th/^{238}
U
intercept; if type=3
: the ^{234}
Th/^{232}
Th
intercept; if type=4
: the ^{234}
Th/^{238}
U
intercept and its propagated uncertainty.
if type=1
: the ^{230}
Th/^{238}
U slope;
if type=2
: the ^{230}
Th/^{232}
Th slope; if
type=3
: the ^{234}
U/^{238}
U slope; if
type=4
: the ^{234}
U/^{232}
Th slope and its
propagated uncertainty.
the covariance between a
and b
.
the mean square of the residuals (a.k.a 'reduced Chisquare') statistic.
the pvalue of a Chisquare test for linearity.
a threeelement vector containing:
y
: the initial ^{234}
U/^{238}
Uratio
s[y]
: the standard error of y
disp[y]
: the standard error of y
enhanced by
\sqrt{mswd}
.
a two (or three) element vector containing:
t
: the initial ^{234}
U/^{238}
Uratio
s[t]
: the standard error of t
disp[t]
: the standard error of t
enhanced by
\sqrt{mswd}
(only reported if model=1
).
the overdispersion term, i.e. a twoelement vector with the standard deviation of the (assumedly) Normally distributed geological scatter that underlies the measurements, and its standard error.
a matrix with the following columns: the Xvariable for the isochron plot, the analytical uncertainty of X, the Yvariable for the isochron plot, the analytical uncertainty of Y, and the correlation coefficient between X and Y.
the xlabel of the isochron plot
the ylabel of the isochron plot
OR if x
has class UPb
:
if model=1
or 2
, a three element vector
containing the isochron age and the common Pb isotope ratios. If
model=3
, adds a fourth element with the overdispersion
parameter w
.
the covariance matrix of par
the logarithm of par
the logarithm of cov
the number of analyses in the dataset
the degrees of freedom for the linear fit, i.e. 2n3
the yintercept and its standard error
the isochron slope and its standard error
the covariance between a
and b
.
the mean square of the residuals (a.k.a 'reduced Chisquare') statistic.
the pvalue of a Chisquare test for linearity.
a two or threeelement vector containing:
y
: the initial ^{206}
Pb/^{204}
Pbratio (if
type=1
and x$format=4,5
or 6
);
^{207}
Pb/^{204}
Pbratio (if type=2
and
x$format=4,5
or 6
);
^{208}
Pb/^{206}
Pbratio (if type=1
and
x$format=7
or 8
);
^{208}
Pb/^{207}
Pbratio (if type=2
and
x$format=7
or 8
);
^{206}
Pb/^{208}
Pbratio (if type=3
and
x$format=7
or 8
); or
^{207}
Pb/^{208}
Pbratio (if type=4
and
x$format=7
or 8
).
s[y]
: the standard error of y
disp[y]
: the standard error of y
enhanced by
\sqrt{mswd}
(only returned if model=1
)
the yaxis label of the isochron plot
a two (or three) element vector containing:
t
: the isochron age
s[t]
: the standard error of t
disp[t]
: the standard error of t
enhanced by
\sqrt{mswd}
(only reported if model=1
).
the xlabel of the isochron plot
the ylabel of the isochron plot
OR, if x
has class other
and x$format
is
either 4
or 5
and flippable
is not 0
,
returns
Dd
: the ratio of the inherited radiogenic daughter to its
nonradiogenic sister isotope
DP
: the ratio fo the radiogic daughter to its radioactive parent
cov.DdDP
: the covariance between Dd
and DP
.
In the remaining types of other
data, the intercept a
and b
are returned along with their covariance.
Ludwig, K.R. and Titterington, D.M., 1994. Calculation of
^{230}
Th/U isochrons, ages, and errors. Geochimica et
Cosmochimica Acta, 58(22), pp.50315042.
Ludwig, K.R., 1998. On the treatment of concordant uraniumlead ages. Geochimica et Cosmochimica Acta, 62(4), pp.665676.
Nicolaysen, L.O., 1961. Graphic interpretation of discordant age measurements on metamorphic rocks. Annals of the New York Academy of Sciences, 91(1), pp.198206.
Titterington, D.M. and Halliday, A.N., 1979. On the fitting of parallel isochrons and the method of maximum likelihood. Chemical Geology, 26(3), pp.183195.
Vermeesch, P., 2020. Unifying the UPb and ThPb methods: joint isochron regression and common Pb correction, Geochronology, 2, 119131.
York, D., 1966. Leastsquares fitting of a straight line. Canadian Journal of Physics, 44(5), pp.10791086.
York, D., 1968. Least squares fitting of a straight line with correlated errors. Earth and Planetary Science Letters, 5, pp.320324.
York, D., Evensen, N.M., Martinez, M.L. and De Basebe Delgado, J., 2004. Unified equations for the slope, intercept, and standard errors of the best straight line. American Journal of Physics, 72(3), pp.367375.
york
,
titterington
,
ludwig
attach(examples)
isochron(RbSr)
fit < isochron(ArAr,inverse=FALSE,plot=FALSE)
dev.new()
isochron(ThU,type=4)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.