text:
Q: Why does my array search take 0 nanoseconds after search is looped beyond 2000 times? I wrote a program for a Java class I am taking to search a String array of 10 elements for a specific target. The program searches for the target from the beginning of the array to the end of the array and then searches from the end of the array to the beginning of the array. Each search is timed and looped 1000 times. After each search method has been looped 1000 times, the fastest search method is chosen to search the array for whatever number of 'reps' I passed as an argument in the main method.
The problem I am having is when I change the number of loops to beyond 2000. From roughly 2100 the time it takes to search the array in nanoseconds is frequently 0. Is this because the JVM has warmed up and the time it takes to search a 10 element array can't be measured in nanoseconds? I realize that probably sounds silly.
I am just going to paste the whole program here for reference(the program is far from complete but compiles and runs):
public class LinearStringSearch {

    // Array filled with random Strings
    String[] randomStrings = {"apple", "yellow", "fire", "wood", "zinc",
            "ram", "mouse", "fish", "cheese", "dirt"};

    // Save target arguments for global access(console printing purposes)
    int indexOfTarget;
    String target;
    String target2;
    long startTime;
    long startTime2;
    long estimatedTime;
    long estimatedTime2;
    long sumForward;
    long sumBackward;
    long counterFrontToEnd;
    long counterEndToFront;
    long counterTied;

    // Arrays for search times
    ArrayList<Long> forwardSearchTimes = new ArrayList<>();
    ArrayList<Long> backwardSearchTimes = new ArrayList<>();

    /**
     *
     * @param target - the item you want to retrieve from array
     * @param sa - the name of the array
     * @return i - the target, otherwise return error code: -1
     */
    int linearStringSearch(String target, String[] sa) {

        this.target = target;                                      // set class variable for print access
        startTime = System.nanoTime();                    // Start speed test
        for(int i = 0; i < sa.length; ++i) {
            if (sa[i].equals(target)) {
                estimatedTime = System.nanoTime() - startTime; // End speed test
                indexOfTarget = i; // update index for printing purposes
                forwardSearchTimes.add(estimatedTime);
                System.out.println("Forwards - Target found at index:" + i + " " + estimatedTime);
                return i; // return the index of target
            }
        }
        return -1; // -1 means that target was not found
    }

    /**
     *
     * @param target - the item you want to retrieve from array
     * @param sa - the name of the array
     * @return i - the target, otherwise return error code: -1
     */
    int reverseLinearStringSearch(String target, String[] sa) {
        this.target2 = target;                     // set class variable for print access
        startTime2 = System.nanoTime();            // Start speed test

        for(int i = sa.length-1; i >= 0; --i) {
            if (sa[i].equals(target)) {
                estimatedTime2 = System.nanoTime() - startTime2;  // End speed test
                backwardSearchTimes.add(estimatedTime2);
                System.out.println("Backwards: - Target found at index:" + i + " " + ", Time: " + estimatedTime2);
                return i; // return the index of target
            }
        }
        return -1; // -1 means that target was not found
    }

    /**
     *
     * @param estimatedTime - estimated time of search beginning to end
     * @param estimatedTime2 - estimated time of search end to beginning
     * @return fastest method
     */
    public String deduceFastestSearchMethod() {
        if(sumForward < sumBackward) {
            return "Linear search found " + "'"
                + target + "'" + " fastest overall";
        }
        if(sumForward > sumBackward) {
        return "Reverse linear search found " +
            "'" + target + "'" + " fastest overall";
        }
        return "Same";
    }

    public void counter(){

        if(estimatedTime < estimatedTime2) {
            counterFrontToEnd++;
        }
        else if(estimatedTime > estimatedTime2) {
            counterEndToFront++;
        }
        else {
            counterTied++;
        }
    }

    // Implement Fisher–Yates shuffle
    public void shuffleArray(String[] sa){
        Random rnd = new Random();
        for (int i = sa.length - 1; i > 0; i--){
            int index = rnd.nextInt(i + 1);

            // Simple swap
            String a = sa[index];
            sa[index] = sa[i];
            sa[i] = a;
        }
    }

    /********************************************************Methods for Repetitions**************************************************/

    // Set the number of times each method is called
    public void setReps(String target, String[] sa, long reps) {
        boolean chosenFastest = false;
        boolean forwardsIsFaster = false;

        shuffleArray(sa); // Shuffle the order of Strings in array

        for (int i = 0; i < reps; i++){
           if(chosenFastest){
              if(forwardsIsFaster)
                linearStringSearch(target, sa);
              else
                reverseLinearStringSearch(target, sa);
           }
           else {
             linearStringSearch(target, sa);
             reverseLinearStringSearch(target, sa);
             counter(); // counts winner
           }

           if (i == 1000)
              chosenFastest = true;
              if(sumForward < sumBackward)
                forwardsIsFaster = true;
              System.out.println("Loop #: " + i + "\n");
        }

        System.out.println("Linear search was faster: " + counterFrontToEnd + " times");
        System.out.println("Reverse linear search was faster: " + counterEndToFront + " times");
        System.out.println("Tied: " + counterTied + " times");
        System.out.println("\nTarget " + "'" + target2 + "'" + " found at index: " + indexOfTarget);

        calcSearchTimesForward(reps);
        calcSearchTimesReverse(reps);
    }

    public void calcSearchTimesForward(long reps) {
        sumForward = 0;
        double average = 0;

        for (Long i : forwardSearchTimes)
            sumForward += i;
            average = (double)sumForward/reps;
            System.out.println("\nAverage speed searching array front to end(" + reps + " trials):" );
        System.out.println("Nanoseconds: " + average);
    }

    public void calcSearchTimesReverse(long reps) {
        sumBackward = 0;
        double average = 0;

        for (Long i : backwardSearchTimes)
            sumBackward += i;
            average = (double)sumBackward/reps;
        System.out.println("\nAverage speed searching array end to front(" + reps + " trials):" );
        System.out.println("Nanoseconds: " + average);
    }

    /*
     * The target string is searched from the beginning of the array to the end of the array, then
     * from the end of the array to the beginning of the array.
     *
     */
    public static void main(String[] args) {

        LinearStringSearch lss = new LinearStringSearch();

        // Set repetitions
        lss.setReps("mouse", lss.randomStrings, 10000);  // Pass arguments

        // Print fastest search
        System.out.println();
        System.out.println(lss.deduceFastestSearchMethod());
    }
}

Here is the output:
//................
Backwards: - Target found at index:3 , Time: 453 nanoseconds
Loop #: 9992

Backwards: - Target found at index:3 , Time: 0 nanoseconds
Loop #: 9993

Backwards: - Target found at index:3 , Time: 0 nanoseconds
Loop #: 9994

Backwards: - Target found at index:3 , Time: 0 nanoseconds
Loop #: 9995

Backwards: - Target found at index:3 , Time: 0 nanoseconds
Loop #: 9996

Backwards: - Target found at index:3 , Time: 0 nanoseconds
Loop #: 9997

Backwards: - Target found at index:3 , Time: 0 nanoseconds
Loop #: 9998

Backwards: - Target found at index:3 , Time: 0 nanoseconds
Loop #: 9999

Linear search was faster: 432 times
Reverse linear search was faster: 282 times
Tied: 287 times

Target 'mouse' found at index: 3

Average speed searching array front to end(10000 trials):
Nanoseconds: 167.1195

Average speed searching array end to front(10000 trials):
Nanoseconds: 967.341

Linear search found 'mouse' fastest overall

A: Generally, a JVM will implement System.nanoTime() using the most accurate timer the operating system provides, but that usually isn't accurate down to the nano second, not is querying that timer instantenous (on my hardware, it takes 2 microseconds). And even if it were, your program is not guaranteed exclusive use of the hardware by the operating system, i.e. if another process wants the CPU, the operating system may suspend your program for a couple milliseconds to give the other process a chance to run.
Therefore, if you want a reliable benchmark, you can only assume the timer to be accurate to a couple milliseconds. The typical workaround is something like this:
long start = System.nanoTime();
for (int i = 0; i < reps; i++) {
    codeToTest();
}
long end = System.nanoTime();
System.out.println((end - start) / reps + " ns");

where reps is chosen so elapsed time is suitably big.
For a truly good benchmark, you should also take the effects of just in time compilation into account. A quite comprehensive list may be found at How do I write a correct micro-benchmark in Java?


Here's one thing we know: The weight-loss products industry is booming.
Here's one thing we don't know: How to actually lose weight. According the latest industry snapshot from CPG research firm Packaged Facts, Americans spent $26 billion on weight-loss and weight management products last year — yet the prevalence of obesity in this country over the past ten years increased 48% amongst adults, and 72% amongst children. It's projected that by the year 2018 obesity-related medical expenses will more than triple from their current rate.
You can't blame people for not trying. The report states that 39% of adults are working to lose or maintain weight. Nearly three fourths of sales go to diet foods and drinks, while 18% goes to weight loss programs and services like Jenny Craig and Nutrisystem. The bottom 10% belongs to over-the-counter drugs, therapies and (shudder) surgical intervention.
So who's to blame here, the products or the consumer? Perhaps both. People want their diets to be quick and easy, and companies help them maintain that illusion. There was the carb craze, for one, and now there's something called the "cookie diet". Ask any dietitian or nutritionist worth her salt, and she'll tell you losing weight is hard work, requiring a combination of exercise, planning, and smaller, more wholesome portions.
Nevertheless, we soldier on. The latest trend nowadays, according to the Packaged Facts report, is with food and drinks promoting satiety. These items are supposed to give consumers a feeling of fullness, keeping them from the cravings that cause them to raid the pantry.
More promising is the prospect of federal support. The Obama administration, as we wrote on here recently, just launched its Let's Move campaign to tackle childhood obesity. This fall, the U.S. Department of Health and Human Services and the U.S. Department of Agriculture will release updated Dietary Guidelines, including a brand spanking new food pyramid. And the Food and Drug Administration, in addition to cracking down on label claims, has said it will re-examine serving sizes so that they more accurately reflect products' nutritional profile.


text:
package mods.railcraft.api.tracks;

/**
 * Tracks that can emit a redstone signal should implement
 * this interface.
 *
 * For example a detector track.
 *
 * A track cannot implement both ITrackPowered and ITrackEmitter.
 *
 * @author CovertJaguar <http://www.railcraft.info>
 */
public interface ITrackEmitter extends ITrackInstance
{

    /**
     * Return the redstone output of the track.
     *
     * @return true if powered
     */
    public int getPowerOutput();
}

redpajama_set_name: RedPajamaGithub


text:
\section{Introduction}

Consider observations $\bfv=\{v_1,\dots,v_n\}$, and parameters $\bftheta=\{\theta_1,\dots,\theta_n\}$ and $\bfphi=\{\phi_1,\dots,\phi_n \}$. Following standard notation, $v_i$, $i=1,\dots,n$, follows a distribution that is a member of the exponential family when its probability function can be written as,
\[
f(v_i | \theta_i, \phi_i) = \mbox{exp} \left\{ \frac{w_i}{\phi_i} \left[v_i \theta_i - b(\theta_i)\right] +c(v_i,\theta_i,\phi_i)
\right\},
\]
where, $\bfw=\{w_1,\dots,w_n \}$ are known weights, and $\phi_i$ is the dispersion or scale parameter. With regard to first and second order moments,
$\mu_i\equiv E(v_i)=b^{'}(\theta_i)$ and $\mbox{Var}(v_i)=\frac{w_i}{\phi_i} b^{''}(\theta_i)$. The variance function is defined as $V(\mu_i) = b^{''}(\theta_i)$. A generalized linear model relates
$\bfmu=\{\mu_1,\dots,\mu_n \}$ to covariates by setting $g(\bfmu)=X_d \bfgamma$, where $g$ denotes the link function,  $X_d$ the covariate design matrix and $\bfgamma$ is a vector of parameters. For a single $\mu_i$, we write $g(\mu_i)=X_{d(i)} \bfgamma$, where $X_{d(i)}$ denotes the $i-th$ row of $X_d$.

Denote with $\mathcal{P}$ a finite set of $P$ categorical variables. Observations from $\mathcal{P}$ can be arranged as counts in a $P$-way contingency table. Denote the cell counts as $n_i$,  $i=1,\dots,n_{ll}$.  A Poisson distribution is assumed for the counts so that $E(n_i)=\mu_i$. A Poisson log-linear interaction model $\mbox{log}(\bfmu) = X_{ll} \bflambda$ is a generalized linear model that relates the expected counts to $\mathcal{P}$. Assuming that one of the categorical variables, denoted with $Y$, is binary, a logistic regression can also be fitted with $Y$ as the outcome, and all or some of the remaining $P-1$ variables as covariates. We write, $\mbox{logit}(\bfp) = X_{lt} \bfbeta$, $\bfp=(p_1,\dots,p_{n_{lt}})$, using the `$lt$' indicator for the logistic model, as opposed to the `$ll$' indicator for the log-linear model. Here, $p_i$ denotes the conditional probability that $Y=1$ given covariates $X_{lt(i)}$, and $\bfbeta$ is a vector of parameters.

It is known (Agresti, 2002, Chapter 8) that when $\mathcal{P}$ contains a binary $Y$, a log-linear model $\mbox{log}(\bfmu) = X_{ll} \bflambda$ implies a specific logistic regression model with parameters $\bfbeta$ defined uniquely by $\bflambda$.  The logistic regression model for the conditional odds ratios for $Y$ implies an equivalent log-linear model with arbitrary interaction terms between the covariates in the logistic regression, plus arbitrary main effects for these covariates.
We provide a simple example to illustrate this result and clarify additional notation. Assume three categorical variables $X,Y$, and $Z$, with $Y$ binary. Following the notation in Agresti (2002), let $i,j,k$ be integer indices that describe the level of $X,Y$ and $Z$ respectively. For instance, as $Y$ is binary, $j=0,1$. Consider the log-linear model,
\[
\mbox{log}(\mu_{ijk})=\lambda + \lambda_{i}^{X} + \lambda_{j}^{Y} + \lambda_{k}^{Z} + \lambda_{ij}^{XY} + \lambda_{ik}^{XZ} + \lambda_{jk}^{YZ}, \tag{M1}
\]
where the superscript denotes the main effect or interaction term. The corresponding logistic regression model for the conditional odds ratios for $Y$ is derived as follows,
\begin{eqnarray}
\mbox{log} \left( \frac{P(Y=1 | X,Z)}{P(Y=0 | X,Z)} \right) &=&
\mbox{log} \left( \frac{P(Y=1,X,Z)}{P(Y=0,X,Z)} \right)
\nonumber \\
&=& \mbox{log}(\mu_{i1k}) - \mbox{log}(\mu_{i0k}) \nonumber \\
&=& \lambda_{1}^{Y} - \lambda_{0}^{Y} + \lambda_{i1}^{XY} - \lambda_{i0}^{XY}
+ \lambda_{1k}^{YZ} - \lambda_{0k}^{YZ}. \nonumber
\end{eqnarray}
This is a logistic regression with parameters,  $\bfbeta=(\beta,\beta_{i}^{X},\beta_{k}^{Z})$, so that, $\beta=\lambda_{1}^{Y} - \lambda_{0}^{Y}$, $\beta_{i}^{X}=\lambda_{i1}^{XY} - \lambda_{i0}^{XY}$, and $\beta_{k}^{Z}=\lambda_{1k}^{YZ} - \lambda_{0k}^{YZ}$. Considering identifiability corner point constraints, all elements in $\bflambda$ with a zero subscript are set to zero. Then, $\beta=\lambda_{1}^{Y}$, $\beta_{i}^{X}=\lambda_{i1}^{XY} $ and $\beta_{k}^{Z}=\lambda_{1k}^{YZ}$. This scales in a straightforward manner to larger log-linear models. For instance, if (M1) contained the three-way interaction $XYZ$, then the corresponding logistic regression model would contain the $XZ$ interaction, so that, $\beta_{ik}^{XZ}=\lambda_{i1k}^{XYZ} - \lambda_{i0k}^{XYZ}$, and under corner point constraints, $\beta_{ik}^{XZ}= \lambda_{i1k}^{XYZ}$. If a factor does not interact with $Y$ in the log-linear model, then this factor disappears from the corresponding logistic regression model.
To demonstrate that the correspondence between log-linear and logistic models is not bijective, it is straightforward to show that, for example, the log-linear model,
$\mbox{log}(\mu_{ijk})=\lambda + \lambda_{i}^{X} + \lambda_{j}^{Y} + \lambda_{k}^{Z} + \lambda_{ij}^{XY} + \lambda_{jk}^{YZ}$, implies the same logistic regression as (M1).

To simplify the analysis and notation, for the remainder of this manuscript we consider models specified under corner point constraints. Then, every logistic regression model parameter is defined uniquely by the corresponding log-linear model parameter, and the correspondence between the two types of model is more direct. For example, assume that after fitting a specific log-linear model, the credible interval for an element of $\bflambda$  contains zero. When fitting the corresponding logistic regression model, the investigator will anticipate that the credible interval for the corresponding element of $\bfbeta$ will also contain zero, as the two parameters are equal. {\it Importantly}, for this translation to hold, it is essential that the prior distribution for $\bfbeta$ implied by the prior on $\bflambda$ is the same to the distribution the investigator would assign to $\bfbeta$ if they were to fit the logistic model directly. If the implied prior on $\bfbeta$ is different to a directly assigned prior then, with regard to $\bfbeta$, there is no correspondence between the Bayesian log-linear and logistic analyses, rendering any translation meaningless.

This is where the contribution in this manuscript lies.
Typically, lack of information for the parameters of a generalized linear model leads to a relatively flat but proper prior distribution, so that model determination based on Bayes factors is  valid; O'Hagan (1995). A very popular choice for the parameters of log-linear and logistic regression models is the g-prior; see Saban\`{e}s Bov\`{e} and Held (2011) and Overstall and King (2014a,2014b). This type of prior was first proposed by Zellner (1986) for general linear models. In this context, it is known as Zellner's $g$-prior. Theorem 1 states that assigning to $\bflambda$ the $g$-prior that is specific to log-linear modelling, implies the $g$-prior specific to logistic modelling on the parameters $\bfbeta$ of the corresponding logistic regression. Under the reasonable assumption that an investigator who chooses a $g$-prior for $\bflambda$ would also choose a $g$-prior for $\bfbeta$ if they were to fit a logistic regression directly, inferences on the parameters of a log-linear model translate to inferences on the parameters of the corresponding logistic regression. The presence or absence of interaction terms in the log-linear model can inform on the relation between the binary $Y$ and the other variables as described by logistic regression. In fact, in the first illustration in Section 4.1, we observe that the credible intervals of the corresponding $\bflambda$ and $\bfbeta$ parameters are very similar, almost identical considering simulation error.

In Section 2, we provide the definition of the $g$-prior and mixtures of $g$-priors, and describe how the $g$-prior is derived for log-linear and logistic regression models. Section 3, contains the main contribution in this manuscript. In Section 4, the correspondence between log-linear and logistic regression models is illustrated using simulated and real data. We conclude with a discussion.

\section{The $g$-prior and mixtures of $g$-priors}

A $g$-prior for the parameters $\bfgamma$ of a generalized linear model is a multivariate Normal distribution $N(\bfm_{\gamma},g \Sigma_{\gamma})$, constructed so that the prior variance is a scalar multiple $g$ of the inverse Fisher information matrix; see Liang et al. (2008) for a discussion on the choice of $g$. Following Ntzoufras et al. (2003) and Ntzoufras (2009, chapter 7), the $g$-prior for the parameters of log-linear and logistic regression models is specified so that,
$\bfm_{\gamma}=(m_{\gamma_1},0,\dots,0)^{\top}$,
where $m_{\gamma_{1}}$ corresponds to the intercept and can be non-zero, and
\[
\Sigma_{\gamma} = V(m^{*}) g^{'}(m^{*})^{2} [(X_{d}^{\top} \mbox{diag}(\frac{1}{\phi_i}) X_{d}]^{-1},
\]
where $\mbox{diag}(1/\phi_i)$ denotes a diagonal $n\times n$ matrix with non-zero elements $1/\phi_i$, and $m^{*}=g^{-1}(m_{\gamma_1})$.

The unit information prior is a special case of the $g$-prior, obtained by setting $g=N$, where $N$ denotes the total number of observations. It is constructed so that the information contained in the prior is equal to the amount of information in a single observation (Kass and Wasserman, 1995).
Assuming that $g$ is a random variable, with prior $f(g)$, leads to a mixture of $g$-priors, so that,
\[
\bfgamma | g \sim N(\bfm_{\gamma},g \Sigma_{\gamma}), \mbox{ } g \sim f(g).
\]
Mixtures of $g$-priors are also called hyper-$g$ priors; see Saban\`{e}s Bov\`{e} and Held (2011).

\underline{Log-linear regression:} Consider counts $n_i$  $i=1,\dots,n_{ll}$. Now, $N=\sum_{1}^{n} n_i$, and,
\[
f(n_i | \bfmu) = \frac{e^{-\mu_i} \mu_{i}^{n_i}}{n_i !} ,
\]
with $\theta_i = \mbox{log}(\mu_i)$,
$b(\theta_i)=e^{\theta_i}$ and $c(n_i,\phi_i)=\mbox{-log} (n_i !)$.
Also, $w_i \phi_{i}^{-1}=1$, so that $w_i=1$ implies $\phi_i=1$. Note that,
\[
\mu_i=b^{'}(\theta_i)=e^{\theta_i}, \mbox{ }
\mbox{Var}(n_i)=\phi_i w_{i}^{-1} b^{''}(\theta)=e^{\theta_i}, \mbox{ } \mbox{ and } V(\mu_i)=\mu_i.
\]
For the log-linear model, $\mbox{log}(\bfmu) = X_{ll} \bflambda$, and
$g(\mu_i) = \mbox{log}(\mu_i)$ so that $g^{'}(\mu_i)=\mu_{i}^{-1}$.
The $g$-prior is constructed as $N(\bfm_{\lambda},g \Sigma_{\lambda})$, where,
$\bfm_{\lambda}=(\mbox{log}(\bar{n}),0,\dots,0)$, $\bar{n}$ denoting the average cell count. In addition,
\[
\Sigma_{\lambda} = \bar{n} \frac{1}{(\bar{n})^2}
(X_{ll}^{\top} X_{ll})^{-1}
= \frac{1}{\bar{n}} (X_{ll}^{\top} X_{ll})^{-1}
= \frac{n_{ll}}{N} (X_{ll}^{\top} X_{ll})^{-1}.
\]

\underline{Logistic regression:} Assume that $y_i$, $i=1,\dots,n_{lt}$, is the proportion of successes out of $t_i$ trials. Now, $N=\sum_{1}^{n} t_i$, and,
\[
f(y_i | p_i) = {t_i \choose t_i y_i} p_i^{t_i y_i} (1-p_i)^{t_i - t_i y_i},
\]
where $\theta_i=\mbox{logit}(p_i)$,  $b(\theta_i)=\mbox{log}(1+e^{\theta_i})$, and  $c(y_i,\phi_i)=\mbox{log} {t_i \choose t_i y_i}$. Also, $w_i \phi_{i}^{-1}=t_i$, so that $w_i=1$ implies  $\phi_i=t_{i}^{-1}$. Note that,
\[
E(y_i)=b^{'}(\theta_i)=\frac{e^{\theta_i}}{1+e^{\theta_i}}=p_i, \mbox{ }
\mbox{Var}(y_i)=\frac{\phi_i}{w_i} b^{''}(\theta_i)=\frac{1}{t_i} \frac{e^{\theta_i}}{(1+e^{\theta_i})^2}=\frac{p_i(1-p_i)}{t_i}, \mbox{ } V(p_i)=p_i(1-p_i).
\]
The logistic regression model is defined as $\mbox{logit}(\bfp) = X_{lt} \bfbeta$, so that $X_{lt}$ is a $n_{lt} \times n_{\beta}$ design matrix, and
$g(p_i) = \mbox{logit}(p_i)$ so that $g^{'}(p_i)=[p_i(1-p_i)]^{-1}$.
The $g$-prior is $N(\bfm_{\beta},g \Sigma_{\beta})$, where, $\bfm_{\beta}=(0,0,\dots,0)$, and,
\begin{eqnarray}
\Sigma_{\beta} =  p^{*} (1-p^{*}) \frac{1}{[p^{*} (1-p^{*})]^2}
[X_{lt}^{\top} \mbox{diag}(t_i) X_{lt}]^{-1} = \frac{1}{0.25} [X_{lt}^{\top} \mbox{diag}(t_i) X_{lt}]^{-1}. \nonumber
\end{eqnarray}
Here, $p^{*}$ corresponds to $m^{*}$ in the general definition of the g-prior at the start of this Section. As $m_{\gamma_{1}}=0$, $p^{*}=0.5$. By approximating each $t_i$ with the average number of trials $\bar{t}$, as suggested by Ntzoufras et al. (2003),
\[
\Sigma_{\beta} = 4 \frac{1}{\bar{t}} (X_{lt}^{\top} X_{lt})^{-1} =
4 \frac{n_{lt}}{\sum_{i=1}^{n_{lt}} t_i} (X_{lt}^{\top} X_{lt})^{-1} =
4 \frac{n_{lt}}{N} (X_{lt}^{\top} X_{lt})^{-1}.
\]

\section{Relation between logistic regression and log-linear models}

We show that, given that a $g$-prior for log-linear models is assigned to $\bflambda$, the implied prior for $\bfbeta$ is a $g$-prior for logistic regression models, i.e. the one that would be assigned if the investigator considered the logistic regression model directly.

{\bf Theorem 1:} A $g$-prior $\bflambda \sim N(\bfm_{\lambda}, g \Sigma_{\lambda})$ on the parameters of a log-linear model $\mbox{log}(\bfmu) = X_{ll} \bflambda$, implies a $g$-prior $N(\bfm_{\beta}, g \Sigma_{\beta})$ for the parameters $\bfbeta$ of the corresponding logistic regression $\mbox{logit}(\bfp) = X_{lt} \bfbeta$.

{\it Proof:} See Appendix.

{\bf Corollary 1:} A unit information prior $\bflambda \sim N(\bfm_{\lambda}, N \Sigma_{\lambda})$ implies a unit information prior $N(\bfm_{\beta}, N \Sigma_{\beta})$ for the parameters $\bfbeta$ of the corresponding logistic regression.

Corollary 1 follows directly from Theorem 1 by setting $g=N$. The following Corollary concerns mixtures of $g$-priors. It is implicitly assumed that the investigator would adopt the same prior density $f(g)$ for both modelling approaches.

{\bf Corollary 2:} A mixture of $g$-priors so that $\bflambda | g \sim N(\bfm_{\lambda}, g \Sigma_{\lambda})$, $g\sim f(g)$, implies a mixture of $g$-priors for the parameters $\bfbeta$ of the corresponding logistic regression, so that $\bfbeta | g \sim N(\bfm_{\beta}, g \Sigma_{\beta})$, $g\sim f(g)$.

This also follows from Theorem 1, which states that when $\bflambda | g \sim N(\bfm_{\lambda}, g \Sigma_{\lambda})$, the conditional prior for $\bfbeta$ is $\bfbeta | g \sim N(\bfm_{\beta}, g \Sigma_{\beta})$.

\underline{Considering a flat prior on the intercept:}
When the g-prior is utilized, it is common to assign a locally uniform Jeffreys prior ($\propto 1$) on the intercept, after the covariate columns of the design matrix have been centered to ensure orthogonality with the intercept (Liang et al., 2008). If one decides to adopt the approach where a flat prior is assigned to the intercept in both log-linear and logistic formulations, the correspondence between log-linear and logistic regression breaks, but only with regard to the intercept of the logistic regression. The prior on the log-linear intercept does not have a bearing on the implied prior for the logistic regression parameters, as the log-linear intercept does not contribute to the formation of the logistic regression parameters; see Section 1. After assigning a flat prior on the intercept of the log-linear model, all $\bfbeta$ parameters (including the intercept) are still Normal as linear combinations of Normal random variables, and the distribution of $\bfbeta$ is the one given by Theorem 1; see additional material in the proof of Theorem 1. For an illustration, see Table 3 in Section 4.2.

\section{Illustrations}

Unit information priors are adopted for the model parameters ($g=N$). The size of the burn-in sample is $10^5$, followed by $2\times 10^5$ iterations. In all model determination analyses, the Reversible Jump MCMC algorithm proposed in Papathomas et al. (2011) is employed, adopting a uniform prior over the model space so that all models are assumed equally probable apriori.

The two data sets were also analysed after adopting a mixture of $g$-priors such that,
\[
g\sim \mbox{IG}\left( 2+\frac{N^2}{\mbox{Var}(g)},N + \frac{N^3}{\mbox{Var}(g)} \right).
\]
The expectation of the Inverse Gamma density is $N$.  Results are not reported as posterior model probabilities and credible intervals were very similar to results under the unit information prior. Altering the variance of $g$ within $[1,100]$ did not produce a notable difference in inferences.

\subsection{A simulation study}

Consider six binary variables $\{Y,A,B,C,D,E\}$, generating data from 1000 subjects in accordance with the log-linear model,
\[
\mbox{log}(\bfmu)=YAB+YCD+YE. \hspace{2cm} \tag{M2}
\]
Following the notation in Agresti (2002), a single letter denotes the presence of a main effect, two letter terms denote the presence of the implied first-order interaction and so on and so forth. The presence of an interaction between a set of variables implies the presence of all lower order interactions plus main effects for that set. For the generated data, model selection on the space of all possible graphical log-linear models assigns posterior probability to the model above equal to 0.98. In this study, the signal in the data with regard to the dependence structure between the factors is very strong, allowing to fully demonstrate the direct correspondence between the two types of analysis.

According to the discussion and results in Sections 1 and 3, the logistic regression where $Y$ is treated as the outcome should only contain the first-order interactions $AB$ and $CD$ plus the $E$ main effect,
\[
\mbox{logit}(\bfp) = AB+CD+E. \tag{M3}
\]
In Table 1, we present credible intervals (CI) for the parameters of (M2) and (M3). The CIs for the corresponding $\bflambda$ and $\bfbeta$ parameters are almost identical, considering simulation error. For example, the CI for $\lambda_{1,1,1}^{YCD}$ is $(-1.99,-0.86)$, whilst the CI for $\beta_{1,1}^{CD}$ is $(-1.96,-0.87)$.

After performing model comparison in the space of all possible graphical logistic regression models, the posterior probability of (M3) was 0.59. In Table 1, we also report on the most prominent logistic regression model when any of the $\{A,B,C,D,E\}$ is treated as the outcome. Similarly to the results above, there is a direct correspondence between the CIs of the $\bflambda$ and $\bfbeta$ parameters. For example, when $A$ is the outcome, the CI for $\beta_{1}^{B}$ is $(0.94,1.64)$, whilst the CI for $\lambda_{1,1}^{AB}$ is $(0.96,1.67)$. The CIs of the $\bfbeta$ parameters that correspond to a main effect or interaction not present in the prominent log-linear model always contain zero. For example, when $A$ is the outcome, the CI for $\beta_{1}^{C}$ is $(-0.37,0.22)$, as the $AC$ interaction is absent from the prominent log-linear model.

In Table 2, we present minimum,  maximum and quantile values for the $t_i$ observations, for each logistic regression shown in Table 1. It is clearly demonstrated that the simulated data do not represent balanced Binomial experiments where $t_i=\bar{t}$. The credible intervals shown in Table 1 demonstrate that the correspondence between log-linear and logistic models is very robust to departures from $t_i = \bar{t}$. This is also demonstrated in the real data analysis presented in the next subsection, where the collected data do not represent balanced Binomial experiments when one of the factors is treated as the outcome.

In terms of deviance, a logistic regression model is equivalent to the largest possible log-linear model that corresponds to it. In our example, (M3) attains a deviance of 20.178, whilst (M2) produces 33.707. The log-linear model that is equivalent in terms of deviance to (M3) is $\mbox{log}(\bfmu)=ABCDE+YAB+YCD+YE$.

\begin{small}
\begin{center}
\begin{table*}[!t]
\begin{small}
{\bf Table 1:} {Simulated data illustration. The prominent log-linear model and credible intervals for its parameters, plus credible intervals for the parameters of the most probable logistic regression model when either of the 6 factors is treated as the outcome. Posterior model probabilities $P(M)$ are also provided.}
\label{tab:1}
\par
\begin{tabular}{cccccccc}
\hline
\multicolumn{8}{c}{Log-linear model (M2), \hspace{0.8cm} $\mbox{log}(\bfmu) = YAB + YCD + YE$, \hspace{0.8cm} $P(M2)=0.98$} \\
Intercept & Y & A & B & C & D & E & YA    \\
(1.57,2.11) & (2.00,1.01) & (-0.17,0.36) &  (-0.48,0.09) & (-0.45,0.10) & (-0.47,0.09) & (0.34,0.66) &  (-0.53,0.25)    \\
YB & YC & YD & YE & AB & CD & YAB & YCD    \\
 (-0.40,0.44) & (-0.20,0.62) & (-0.37,0.48) & (-0.81,-0.29) & (0.96,1.67) & (1.22,1.94) & (-1.62,-0.53) &  (-1.99,-0.86)    \\
\hline
\multicolumn{8}{c}{Outcome is Y (M3), \hspace{0.8cm} $\mbox{logit}(\bfp) = AB+CD+E$, \hspace{0.8cm} $P(M3)=0.59$} \\
Intercept & A & B & C & D & E & AB & CD    \\
(0.21,1.14) & (-0.56,0.26) & (-0.51,0.43) & (-0.24,0.60) & (-0.38,0.47) & (-0.86,-0.30) & (-1.57,-0.48) & (-1.96,-0.87)    \\
\hline
\multicolumn{8}{c}{Outcome is A, \hspace{0.8cm} $\mbox{logit}(\bfp) = C + D + E + YB$, \hspace{0.8cm} $P(M)=0.57$} \\
Intercept & Y & B & C & D & E & YB &     \\
(-0.21,0.61) & (-0.57,0.23) & (0.94,1.64) & (-0.37,0.22) & (-0.25,0.32) & (-0.37,0.18) & (-1.60,-0.51) &    \\
\hline
\multicolumn{8}{c}{Outcome is B, \hspace{0.8cm} $\mbox{logit}(\bfp) =  C + D + E + YA$, \hspace{0.8cm} $P(M)=0.58$} \\
Intercept & Y & A & C & D & E & YA &    \\
(-0.39,0.41) & (-0.43,0.40) & (0.94,1.68) & (-0.41,0.17) & (-0.39,0.17) & (-0.34,0.19) & (-1.67,-0.55) &   \\
\hline
\multicolumn{8}{c}{Outcome is C, \hspace{0.8cm} $\mbox{logit}(\bfp) = A + B + E + YD$, \hspace{0.8cm} $P(M)=0.66$} \\
Intercept & Y & A & B & D & E & YD &    \\
(-0.46,0.33) & (-0.22,0.58) & (-0.42,0.16) & (-0.36,0.20) & (1.19,1.94) & (-0.21,0.31) & (-1.97,-0.87) &   \\
\hline
\multicolumn{8}{c}{Outcome is D, \hspace{0.8cm} $\mbox{logit}(\bfp) = A + B + C + E + YC$, \hspace{0.8cm} $P(M)=0.65$} \\
Intercept & Y & A & B & C & E & YC &     \\
(-0.68,0.17) & (-0.34,0.50) & (-0.30,0.29) & (-0.33,0.24) & (1.19,1.95) & (-0.12,0.43) & (-2.02,-0.87) &   \\
\hline
\multicolumn{8}{c}{Outcome is E, \hspace{0.8cm} $\mbox{logit}(\bfp) = Y + A + B + C + D$,  \hspace{0.8cm} $P(M)=0.60$} \\
Intercept & Y & A & B & C & D & &   \\
(0.08,0.84) & (-0.81,-0.25) & (-0.39,0.16) & (-0.31,0.21) & (-0.20,0.34) & (-0.12,0.42) &  &    \\
\hline
\end{tabular}
\end{small}
\end{table*}
\end{center}
\end{small}

\begin{small}
\begin{center}
\begin{table*}[!h]
\begin{small}
{\bf Table 2:} {Simulated data illustration. Maximum, minimum, and quantiles for $t_i$, $i=1,\hdots, n_{lt}$, for each of the logistic regressions shown in Table 1.}
\label{tab:1}
\par
\begin{tabular}{cccccc}
\hline
Outcome & Minimum & 25\% Quantile & Median & 75\% Quantile & Maximum \\
\hline
Y & 11 &  17 &   21 &   41.5 &  124   \\
A &  12 &   19 &   23 &   30 &  144  \\
B & 10 &   18 &   22.5 &   31 &  165 \\
C & 12 &   18.5 &   23 &   26.5 &  151 \\
D &  11 &   19.5 &   23 &   27.5 &  147 \\
E & 10 &   17.5 &   22 &   27 &  191 \\
\hline
\end{tabular}
\end{small}
\end{table*}
\end{center}
\end{small}

\subsection{A real data illustration}

Edwards and Havr\'anek (1985) presented a $2^{6}$ contingency table
in which $1841$ men were cross-classified by six binary risk factors
$\{A,B,C,D,E,F\}$ for
coronary heart disease. From Dellaportas and Forster (1999), the top two Hierarchical models are
\[
\mbox{log}(\bfmu)=AC+AD+AE+BC+CE+DE+F, \tag{M4}
\]
and,
\[
\mbox{log}(\bfmu)=AC+AD+AE+BC+BE+DE+F, \tag{M5}
\]
with associated posterior model probabilities 0.28 and 0.15 respectively. In Table 3, we present CIs for the parameters of the most prominent log-linear model (M4). We also present CIs for the parameters of the corresponding logistic regression model when $A$ is treated as the outcome,
\[
\mbox{logit}(\bfp) = C+D+E. \tag{M6}
\]
We performed this analysis twice. Once after considering the g-priors described in Section 2 ($g=N$), as in the previous illustration, and again after adopting a g-prior with a locally flat prior for the intercept. Under the g-prior described in Section 2, the CIs for the corresponding $\bflambda$ and $\bfbeta$ parameters (including the intercept) are almost identical, considering simulation error. For instance, the CI for both the coefficient of $A$ in the log-linear model and the intercept in the logistic regression is $(-0.59,-0.24)$.
Under the flat prior for the intercepts, the correspondence breaks down with regard to the intercept in the logistic regression model. The CI for the coefficient of $A$ is $(-0.64,-0.24)$ whilst the CI for the intercept of the corresponding logistic regression model is $(-0.17,0.01)$. Concurrently, the credible intervals for the coefficients of $C$, $D$ and $E$ in the logistic regression model are almost identical to the corresponding CIs for $AC$, $AD$ and $AE$ in the log-linear model, with differences due to simulation error.

When performing model comparison in the space of all possible graphical logistic regression models with outcome $A$ (including all main effects), only the $C,D$ and $E$ main effect CIs do not contain zero; see Table 4. The most likely model (with probability $0.42$) is,
\[
\mbox{logit}(\bfp) = B+C+D+E+F. \tag{M7}
\]
In Table 4, we also report on the most prominent logistic regression model when any of $\{B,C,D,E,F \}$ is treated as the outcome. A logistic regression that only contains main effects is always the prominent model. Credible intervals for two $\bfbeta$ elements do not contain zero in spite of what is suggested by (M4) and (M5). The two CIs are displayed with bold face in Table 4. In fact, both CIs concern parameters that describe the relation between B and F when either is treated as the outcome. We believe this anomaly is observed because the signal in the data is relatively weak, as $57\%$ of the probability in the log-linear model space corresponds to a large number of models, each one associated with posterior probability that is less than $0.08$.

Model, $\mbox{logit}(\bfp) = C+D+E$, attains a deviance of 33.513, whilst $(M4)$ produces 64.922, and $(M5)$  65.847. The log-linear model that is equivalent to $\mbox{logit}(\bfp) = C+D+E$ in terms of deviance is $\mbox{log}(\bfmu)=BCDEF+AC+AD+AE$.

\begin{small}
\begin{center}
\begin{table*}[!t]
\begin{small}
{\bf Table 3:} {Real data illustration. Credible intervals for the parameters of log-linear model (M4) and logistic regression model when A is treated as the outcome. Intervals are shown under the g-priors in Section 2 (g=N), and after considering a locally flat prior on the intercepts.}
\label{tab:2}
\par
\begin{tabular}{cccccccc}
\hline
\multicolumn{8}{c}{Log-linear model (M4), \hspace{0.2cm} $\mbox{log}(\bfmu) = AC + AD + AE + BC + CE + DE + F$ \hspace{0.2cm} (g-prior in Section 2)} \\
Intercept & A & B & C & D & E & F &      \\
(3.62,3.94) & (-0.59,-0.24) & (0.76,1.04) & (0.84,1.20) & (-0.44,-0.14) & (-0.67,-0.31) & (-1.92,-1.67) &   \\
AC & AD & AE & BC & CE & DE &  &     \\
(0.35,0.73) & (-0.54,-0.16) & (0.30,0.67) & (-3.03,-2.55) & (-0.64,-0.25) & (0.19,0.57) & &   \\
\hline
\multicolumn{8}{c}{Outcome is A (M6), \hspace{0.3cm} $\mbox{logit}(\bfp) = C+D+E$ \hspace{0.2cm} (g-prior in Section 2)} \\
Intercept & C & D & E & & &  &     \\
(-0.59,-0.24) & (0.36,0.74) & (-0.56,-0.18) & (0.30,0.68) & & & &   \\
\hline
\multicolumn{8}{c}{Log-linear model (M4), \hspace{0.2cm} $\mbox{log}(\bfmu) = AC + AD + AE + BC + CE + DE + F$ \hspace{0.2cm} (flat prior on intercept)} \\
Intercept & A & B & C & D & E & F &      \\
(2.63,2.77) & (-0.57,-0.24) & (0.77,1.05) & (0.86,1.18) & (-0.43,-0.13) & (-0.66,-0.33) & (-1.93,-1.68) &   \\
AC & AD & AE & BC & CE & DE &  &     \\
(0.37,0.72) & (-0.54,-0.19) & (0.30,0.65) & (-3.02,-2.59) & (-0.65,-0.29) & (0.19,0.57) & &   \\
\hline
\multicolumn{8}{c}{Outcome is A (M6), \hspace{0.3cm} $\mbox{logit}(\bfp) = C+D+E$ \hspace{0.2cm} (flat prior on intercept)} \\
Intercept & C & D & E & & &  &     \\
(-0.17,0.02) & (0.36,0.72) & (-0.55,-0.20) & (0.29,0.68) & & & &   \\
\hline
\end{tabular}
\end{small}
\end{table*}
\end{center}
\end{small}

\section{Discussion}

The correspondence we investigated is not unexpected, given the results in Agresti (2002) discussed in the Introduction, and also the link between the g-prior and Fisher's information matrix (Held et al., 2015), although this link is stronger for general linear models. Results on the relation between different statistical models are of interest, as they improve understanding and enhance the models' utility. Often, developments for one modelling framework are not readily available for the other. For example, Papathomas and Richardson (2015) comment on the relation between log-linear modelling and variable selection within clustering, in particular with regard to marginal independence, whilst logistic regression models are not considered in that report.

\begin{small}
\begin{center}
\begin{table*}[!t]
\begin{small}
{\bf Table 4:} {Real data illustration. Credible intervals for the parameters of log-linear model (M4) and logistic regression models when either of the 6 factors is treated as the outcome. The g-priors in Section 2 (g=N) are employed. Posterior model probabilities $P(M)$ are provided.}
\label{tab:2}
\par
\begin{tabular}{cccccccc}
\hline
\multicolumn{8}{c}{Log-linear model (M4), \hspace{0.5cm} $\mbox{log}(\bfmu) = AC + AD + AE + BC + CE + DE + F$, \hspace{0.5cm} $P(M4)=0.28$} \\
Intercept & A & B & C & D & E & F &      \\
(3.62,3.94) & (-0.59,-0.24) & (0.76,1.04) & (0.84,1.20) & (-0.44,-0.14) & (-0.67,-0.31) & (-1.92,-1.67) &   \\
AC & AD & AE & BC & CE & DE &  &     \\
(0.35,0.73) & (-0.54,-0.16) & (0.30,0.67) & (-3.03,-2.55) & (-0.64,-0.25) & (0.19,0.57) & &   \\
\hline
\multicolumn{8}{c}{Outcome is A (M7), \hspace{0.8cm} $\mbox{logit}(\bfp) = B+C+D+E+F$, \hspace{0.8cm} $P(M7)=0.42$} \\
Intercept & B & C & D & E & F &  &     \\
(-0.66,-0.17) & (-0.23,0.20) & (0.32,0.77) & (-0.55,-0.15) & (0.30,0.68) & (-0.10,0.34)   \\
\hline
\multicolumn{8}{c}{Outcome is B, \hspace{0.8cm} $\mbox{logit}(\bfp) = A+C+D+E+F$, \hspace{0.8cm} $P(M)=0.41$} \\
Intercept & A & C & D & E & F &  &     \\
(0.49,0.92) & (-0.26,0.21) & (-3.04,-2.56) & (-0.12,0.33) & (0.01,0.47) & {\bf (0.06,0.70)}   \\
\hline
\multicolumn{8}{c}{Outcome is C, \hspace{0.8cm} $\mbox{logit}(\bfp) = A+B+D+E+F$, \hspace{0.8cm} $P(M)=0.32$} \\
Intercept & A & B & D & E & F &  &     \\
(0.64,1.09) & (-0.30,0.77) & (-3.05,-2.57) & (-0.05,0.39) & (-0.54,-0.07) & (0.15,0.51)   \\
\hline
\multicolumn{8}{c}{Outcome is D, \hspace{0.8cm} $\mbox{logit}(\bfp) = A+B+C+E+F$, \hspace{0.8cm} $P(M)=0.46$} \\
Intercept & A & B & C & E & F &  &     \\
 (-0.65,-0.19) & (-0.55,-0.18) & (-0.13,0.32) & (-0.07,0.41) & (0.18,0.57) & (-0.14,0.38)  \\
\hline
\multicolumn{8}{c}{Outcome is E, \hspace{0.8cm} $\mbox{logit}(\bfp) = A+B+C+D+F$, \hspace{0.8cm} $P(M)=0.60$} \\
Intercept & A & B & C & D & F &  &     \\
(0.95,-0.45) & (0.31,0.68) & (0.01,0.49) & (-0.53,-0.07) & (0.19,0.56) & (-0.07,0.42)   \\
\hline
\multicolumn{8}{c}{Outcome is F, \hspace{0.8cm} $\mbox{logit}(\bfp) = A+B+C+E+F$, \hspace{0.8cm} $P(M)=0.45$} \\
Intercept & A & B & C & D & E &  &     \\
(-2.64,-1.91) & (-0.13,0.39) & {\bf (0.06,0.72)} & (-0.14,0.51) & (-0.13,0.39) & (-0.07,0.45)   \\
\hline
\end{tabular}
\end{small}
\end{table*}
\end{center}
\end{small}

When performing model selection in a space of log-linear models, the prominent log-linear model describes a certain dependence structure between the categorical factors, including the relation of the binary Y with all other factors.
The corresponding logistic regression describes the dependence structure between Y and the other factors that is supported by the data, in accordance with the log-linear analysis. When $g$-priors are adopted for the parameters of the linear models, Theorem 1 strengthens the correspondence between the log-linear and logistic analyses.
Therefore, under reasonable expectation, results from a single log-linear model determination analysis may translate, at the very least, to interesting logistic regressions for any of the binary factors that formed the contingency table.
In Section 4, in the analysis of simulated and real data, prominent logistic regression models are always the ones suggested by the single log-linear analysis.
However, the mapping between log-linear and logistic regression model spaces is not bijective. Furthermore, posterior model probabilities depend on the prior on the model space. Consequently, model determination inferences for one model space should not be carelessly translated to inferences for the other.

\vspace{0.2cm}
\noindent {\bf Acknowledgements}
\vspace{0.1cm}

\noindent
The author wishes to thank the Editors and the Referee for comments that significantly improved this manuscript. We would also like to thank Professor Petros Dellaportas and Dr Antony Overstall for the very useful discussions we had during the preparation of this manuscript.

\parindent 0mm \parskip 0cm
\vspace{0.3cm}
\noindent {\bf References}
\vspace{0.0cm}

\begin{list}{}
{\setlength{\itemsep}{0cm}
\setlength{\parsep}{0cm}
\setlength{\leftmargin}{0.5cm}
\setlength{\labelwidth}{0.5cm}
\setlength{\itemindent}{-0.5cm}
}

\item Agresti, A. (2002). {\it Categorical data analysis. 2nd edition}. John Wiley \& Sons. New Jersey.

\item Dellaportas, P. and Forster, J.J. (1999). ``Markov chain Monte Carlo model determination for hierarchical and graphical log-linear models.'' {\it Biometrika}, 86, 615-633.

\item Edwards, D. and Havr\'anek, T. (1985). ``A fast procedure for model search in multi-dimensional contingency tables.'' {\it Biometrika}, 72, 339-351.

\item Held, L., Saban\`{e}s Bov\`{e}, D. and Gravestock, I. (2015). ``Approximate Bayesian model selection with the deviance statistic.'' {\it Statistical Science},
\\ \verb http://www.imstat.org/sts/future_papers.html \verb

\item Kass, R.E. and Wasserman, L. (1995). ``A reference Bayesian test for nested hypotheses and its relationship to the Schwarz criterion.'' {\it J. Am. Stat. Assoc.}, 90, 928-934.

\item Liang, F., Paulo, R., Molina, G., Clyde, M.A. and Berger, J.O. (2008). ``Mixtures of g-priors for Bayesian variable selection.'' {\it J. Am. Stat. Assoc.}, 103, 410-423.

\item Lutkepohl, H. (1996). {\it Handbook of matrices.} John Wiley and Sons, Chichester.

\item Ntzoufras, I., Dellaportas, P. and Forster, J.J. (2003). ``Bayesian variable and link determination for generalized linear models.'' {\it J. Stat. Plan. Infer.}, 111, 165-180.

\item Ntzoufras, I. (2009). {\it Bayesian modelling using WinBugs.} John Wiley \& Sons, New Jersey

\item O'Hagan, A. (1995). ``Fractional Bayes factors for model comparison.'' {\it J. R. Statist. Soc. B}, 57, 99-138.

\item Overstall, A. and King, R. (2014a). ``A default prior distribution for contingency tables with dependent factor levels.'' {\it Statistical Methodology}, 16, 90-99.

\item Overstall, A. and King, R. (2014b) ``conting: an R package for Bayesian analysis of complete and incomplete contingency tables.'' {\it Journal of Statistical Software}, 58, 1-27.

\item Papathomas, M. and Richardson, S. (2015). ``Exploring dependence between categorical variables: benefits and limitations of using variable selection within Bayesian clustering in relation to log-linear modelling with interaction terms.'' Technical report. http://arxiv.org/abs/1401.7214v2

\item Papathomas, M., Dellaportas, P. and Vasdekis, V.G.S. (2011). ``A novel reversible jump algorithm for generalized linear models.'' {\it Biometrika}, 98, 231-236.

\item Saban\`{e}s Bov\`{e}, D. and Held, L. (2011). ``Hyper-g priors for generalized linear models.'' {\it Bayesian Analysis}, 6, 387-410.

\item Zellner, A. (1986). ``On assessing prior distributions and Bayesian regression analysis with g-prior distributions.'' In {\it Bayesian Inference and Decision Techniques: Essays in Honor of Bruno de Finetti, (eds. P. K. Goel and A. Zellner)}, pp. 233-243. North-Holland/Elsevier.

\end{list}

\vspace{0.5cm}

\noindent {\bf Appendix.}
\vspace{0.1cm}
{\it Proof of Theorem 1:} To facilitate the proof, the following notation is introduced. Write the mapping between $\bfbeta$ and $\bflambda$ as $\bfbeta=\bfT \bflambda$, where,
\[
  \bfT=\left( \begin{array}{l}
    \bflambda_{(1)} \\
    \vdots \\
    \bflambda_{(n_{\lambda_{Y}})} \\
  \end{array}
  \right),
\]
and $\bflambda_{(k)}$, $k=1,\dots,n_{\lambda_{Y}}$, is a vector of zeros with the exception of one element that is equal to one. This element is in the position of the $k$-th $\bflambda$ parameter with a $Y$ in its superscript. With $n_{\lambda_{Y}}$ we denote the number of parameters in $\bflambda$ with a $Y$ in their superscript.

To ease algebraic calculations, and without any loss of generality, rearrange the columns of $\bflambda$, creating a new vector $\bflambda_{r}$, so that $\bfT$ changes accordingly to,
$
  \bfT_{r}=\left( \begin{array}{ll}
    \bfI & \bf0
  \end{array}
  \right),
$
where $\bfI$ is a $n_{\beta}\times n_{\beta}$ identity matrix and $n_{\beta}$ is the number of elements in $\bfbeta$. The rows and columns of $X_{ll}$ are also rearranged accordingly to create $X_{rll}$, so that,
\begin{eqnarray}
  X_{rll}=\left( \begin{array}{ll}
    X_{lt}^{*} & X_{ll-lt} \\
     \bf0 & X_{ll-lt}\\
  \end{array}
  \right).
\end{eqnarray}

Denote with $j_1=2$ the number of levels of the binary factor $Y$ that becomes the outcome in the logistic regression model. With $j_2$ to $j_q$, $1\leq q \leq P-1$ denote the number of levels of the $q-1$ factors that are present in the log-linear model but disappear from the logistic regression model as they do not interact with $Y$. Then, $n_{ll}=2\times j_2 \times \hdots \times j_q \times n_{lt}$. When $q=1$, all factors other than $Y$ remain in the logistic regression model as covariates. When $q=P-1$, the corresponding logistic regression model only contains the intercept. For instance, for a $2^P$ contingency table, $n_{ll}=2^q \times n_{lt}$, and for $q=1$, $n_{ll}=2\times n_{lt}$.
Furthermore, $X_{lt}^{*}$ is a $n_{ll}/2 \times n_{\beta}$ matrix. By rearranging the rows of $X_{rll}$ when necessary, we can write $X_{lt}^{*}$ as,
$X_{lt}^{*}=(X_{lt}^{\top} X_{lt}^{\top} \hdots X_{lt}^{\top})^{\top}$, where $X_{lt}^{\top}$ is repeated
$ (j_1-1) \times j_2 \times \hdots \times j_q$ times.  For example, for $q=1$, $X_{lt}^{*}=X_{lt}$. For $q=2$, $X_{lt}$ repeats $j_2$ times within $X_{lt}^{*}$.

We can now write $\bfbeta=\bfT_{r} \bflambda_{r}$. For example, assume the log-linear model (M1) describes a $3\times 2\times 2$ contingency table. Then, $q=1$, and the standard arrangement of the elements of $\bflambda$ would be such that,
\begin{tiny}
 \[
  X_{ll} = \left( \begin{array}{llllllllll}
  1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
  1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
  1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
  1 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\
  1 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 \\
  1 & 0 & 1 & 1 & 0 & 0 & 1 & 0 & 0 & 0 \\
  1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\
  1 & 1 & 0 & 0 & 1 & 0 & 0 & 1 & 0 & 0 \\
  1 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 1 & 0 \\
  1 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 1 \\
  1 & 1 & 0 & 1 & 1 & 1 & 0 & 1 & 0 & 1 \\
  1 & 0 & 1 & 1 & 1 & 0 & 1 & 0 & 1 & 1
  \end{array}
  \right), \hspace{0.2cm}

  \bflambda   = \left( \begin{array}{l}
  \lambda \\ \lambda_{1}^{X} \\ \lambda_{2}^{X} \\  \lambda_{1}^{Y} \\ \lambda_{1}^{Z} \\ \lambda_{11}^{XY} \\  \lambda_{21}^{XY} \\ \lambda_{11}^{XZ} \\ \lambda_{21}^{XZ} \\     \lambda_{11}^{YZ}
  \end{array}
  \right), \hspace{0.2cm}

  \bfT = \left( \begin{array}{llllllllll}
  0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\
  0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\
  0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\
  0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1
  \end{array}
  \right)
  \]
 \end{tiny}

After rearranging,
\begin{tiny}
 \[
  X_{rll} = \left( \begin{array}{llllllllll}
  1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\
  1 & 1 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 \\
  1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & 0 \\
  1 & 0 & 0 & 1 & 1 & 0 & 0 & 1 & 0 & 0 \\
  1 & 1 & 0 & 1 & 1 & 1 & 0 & 1 & 1 & 0 \\
  1 & 0 & 1 & 1 & 1 & 0 & 1 & 1 & 0 & 1 \\
  0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\
  0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 \\
  0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 \\
  0 & 0 & 0 & 0 & 1 & 0 & 0 & 1 & 0 & 0 \\
  0 & 0 & 0 & 0 & 1 & 1 & 0 & 1 & 1 & 0 \\
  0 & 0 & 0 & 0 & 1 & 0 & 1 & 1 & 0 & 1
  \end{array}
  \right), \hspace{0.2cm}

  \bflambda_{r}   = \left( \begin{array}{l}
  \lambda_{1}^{Y} \\ \lambda_{11}^{XY} \\ \lambda_{21}^{XY} \\  \lambda_{11}^{YZ} \\ \lambda \\ \lambda_{1}^{X} \\  \lambda_{2}^{X} \\ \lambda_{1}^{Z} \\ \lambda_{11}^{XZ} \\ \lambda_{21}^{XZ}
  \end{array}
  \right), \hspace{0.2cm}

  \bfT_{r} = \left( \begin{array}{llllllllll}
  1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
  0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
  0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
  0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0
  \end{array}
  \right)
  \]
 \end{tiny}

For another example, where $q=2$, consider again model (M1) but now assume that the interaction $YZ$ is not present in the log-linear model. Then, the $Z$ factor will disappear from the corresponding logistic regression model, and after rearranging,

\begin{tiny}
 \[
  X_{rll} = \left( \begin{array}{lllllllll}
  1 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\
  1 & 1 & 0 & 1 & 1 & 0 & 0 & 0 & 0 \\
  1 & 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 \\
  1 & 0 & 0 & 1 & 0 & 0 & 1 & 0 & 0 \\
  1 & 1 & 0 & 1 & 1 & 0 & 1 & 1 & 0 \\
  1 & 0 & 1 & 1 & 0 & 1 & 1 & 0 & 1 \\
  0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\
  0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 \\
  0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 \\
  0 & 0 & 0 & 1 & 0 & 0 & 1 & 0 & 0 \\
  0 & 0 & 0 & 1 & 1 & 0 & 1 & 1 & 0 \\
  0 & 0 & 0 & 1 & 0 & 1 & 1 & 0 & 1
  \end{array}
  \right), \hspace{0.2cm}

  \bflambda_{r}   = \left( \begin{array}{l}
  \lambda_{1}^{Y} \\ \lambda_{11}^{XY} \\ \lambda_{21}^{XY} \\ \lambda \\ \lambda_{1}^{X} \\  \lambda_{2}^{X} \\ \lambda_{1}^{Z} \\ \lambda_{11}^{XZ} \\ \lambda_{21}^{XZ}
  \end{array}
  \right), \hspace{0.2cm}

  \bfT_{r} = \left( \begin{array}{llllllllll}
  1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
  0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
  0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0
  \end{array}
  \right)
  \]
 \end{tiny}

The $g$-prior,
\[
\bflambda \sim N(\bfm_{\lambda}, g \Sigma_{\lambda}) \equiv
N((\mbox{log}(\bar{n}),0,\dots,0)^{\top}, \frac{g n_{ll}}{N} (X_{ll}^{\top} X_{ll})^{-1}),
\]
translates to,
\[
\bflambda_{r} \sim N(\bfm_{\lambda_{r}}, g \Sigma_{\lambda_{r}}) \equiv
N((0,\dots,0,\mbox{log}(\bar{n}),0,\dots,0)^{\top}, \frac{g n_{ll}}{N} (X_{rll}^{\top} X_{rll})^{-1}),
\]
where $\mbox{log}(\bar{n})$ is the $(n_{\beta}+1)$-th element in the mean vector. Then,
\[
E(\bfbeta)=E(\bfT_{r} \bflambda_{r}) = \bfT_{r} E(\bflambda_{r}) = \left( \begin{array}{ll}
    \bfI & \bf0
  \end{array}
  \right) \times \bfmu_{\lambda_{r}}
 = \bf0.
\]
Furthermore,
\[
\mbox{Var}(\bfbeta) = g \bfT_{r} \Sigma_{\lambda_{r}} \bfT_{r}^{\top}
= \frac{g n_{ll}}{N} \bfT_{r} (X_{rll}^{\top} X_{rll})^{-1} \bfT_{r}^{\top} .
\]

From (1),
\[
 (X_{rll}^{\top} X_{rll})^{-1} =\left( \begin{array}{llll}
    X_{lt}^{* \top} X_{lt}^{*}  & X_{lt}^{* \top} X_{ll-lt}  \\
    X_{ll-lt}^{\top} X_{lt}^{*}  & X_{ll-lt}^{\top} X_{ll-lt}+X_{ll-lt}^{\top} X_{ll-lt}
  \end{array}
  \right)^{-1}
= \left( \begin{array}{llll}
    X_{lt}^{* \top} X_{lt}^{*}  & X_{lt}^{* \top} X_{ll-lt}  \\
    X_{ll-lt}^{\top} X_{lt}^{*}  & 2 X_{ll-lt}^{\top} X_{ll-lt}
  \end{array}
  \right)^{-1}.
\]

From Lutkepohl (1996, p.147), the submatrix $H$ that is formed by the first $n_{\beta}$ rows and columns of $(X_{rll}^{\top} X_{rll})^{-1}$ is,
\[
H=(X_{lt}^{*\top} X_{lt}^{*})^{-1} + (X_{lt}^{* \top} X_{lt}^{*})^{-1} X_{lt}^{* \top} X_{ll-lt}
[X_{ll-lt}^{\top} (2 \bfI - X_{lt}^{*}(X_{lt}^{* \top} X_{lt}^{*})^{-1} X_{lt}^{* \top}) X_{ll-lt}]^{-1}
X_{ll-lt}^{\top} X_{lt}^{*} (X_{lt}^{* \top} X_{lt}^{*})^{-1}
\]
Now, $P_{lt}\equiv X_{lt}^{*}(X_{lt}^{* \top} X_{lt}^{*})^{-1} X_{lt}^{* \top}$ is the projection matrix for $X_{lt}^{*}$. It is straightforward to verify that for a projection matrix $P_{lt}$ and a constant $c$,
\[
(c\bfI -P_{lt}) \times \left(\frac{1}{c}\bfI +\frac{1}{c(c-1)} P_{lt} \right) = \bfI.
\]

Therefore, $(2 \bfI - P_{lt})=(0.5 \bfI + 0.5 P_{lt})^{-1}$, and consequently,
\[
H= (X_{lt}^{* \top} X_{lt}^{*})^{-1} + (X_{lt}^{* \top} X_{lt}^{*})^{-1} X_{lt}^{* \top} X_{ll-lt}
[X_{ll-lt}^{\top} (0.5 \bfI + 0.5 P_{lt})^{-1} X_{ll-lt}]^{-1}
X_{ll-lt}^{\top} X_{lt}^{*} (X_{lt}^{* \top} X_{lt}^{*})^{-1}.
\]

$X_{ll-lt}$ is a square matrix of full rank. If $X_{ll-lt}$ was not full rank, then some of its columns would be linearly dependent. In turn, some of the columns of
$\left( \begin{array}{l}
    X_{ll-lt} \\
    X_{ll-lt}
  \end{array}
  \right)$
would be linearly dependent, implying the same for columns of $X_{rll}$; see (1). This is not possible as $X_{rll}$ is a design matrix of full rank. Thus, $X_{ll-lt}^{-1}$ exists and,
\begin{eqnarray}
H &=& (X_{lt}^{* \top} X_{lt}^{*})^{-1} + (X_{lt}^{* \top} X_{lt}^{*})^{-1} X_{lt}^{* \top} X_{ll-lt}
[X_{ll-lt}^{-1} (0.5 \bfI + 0.5 P_{lt}) X_{ll-lt}^{\top^{-1}}]
X_{ll-lt}^{\top} X_{lt}^{*} (X_{lt}^{* \top} X_{lt}^{*})^{-1} \nonumber \\
&=& (X_{lt}^{* \top} X_{lt}^{*})^{-1} + (X_{lt}^{* \top} X_{lt}^{*})^{-1} X_{lt}^{* \top}
(0.5 \bfI + 0.5 P_{lt})
X_{lt}^{*} (X_{lt}^{* \top} X_{lt}^{*})^{-1} \nonumber \\
&=& (X_{lt}^{* \top} X_{lt}^{*})^{-1} + 0.5 (X_{lt}^{* \top} X_{lt}^{*})^{-1} + 0.5 (X_{lt}^{* \top} X_{lt}^{*})^{-1} \nonumber \\
&=& 2 (X_{lt}^{* \top} X_{lt}^{*})^{-1} \nonumber \\
&=& 2 (j_2 \times \hdots \times j_q  X_{lt}^{\top} X_{lt})^{-1} \nonumber
\end{eqnarray}
Therefore,
\begin{eqnarray}
\mbox{Var}(\bfbeta) &=& \frac{g n_{ll}}{N} \bfT_{r} (X_{rll}^{\top} X_{rll})^{-1} \bfT_{r}^{\top} \nonumber \\
&=& \frac{g n_{ll}}{N} \left( \begin{array}{ll} \bfI & \bf0  \end{array} \right)
(X_{rll}^{\top} X_{rll})^{-1}
\left( \begin{array}{l} \bfI \\ \bf0  \end{array} \right)
\nonumber \\
&=& \frac{2  g  2 j_2 \times \hdots \times j_q  n_{lt}}{N j_2 \times \hdots \times j_q} (X_{lt}^{\top} X_{lt})^{-1} \nonumber \\
&=& \frac{4 g n_{lt}}{N} (X_{lt}^{\top} X_{lt})^{-1} \nonumber
\end{eqnarray}
Thus,
\[
\bfbeta \sim N({\bf 0} , \frac{4 g n_{lt}}{N} (X_{lt}^{\top} X_{lt})^{-1}),
\]
which is the $g$-prior for the parameters of a logistic regression; see Section 2. This completes the proof.

\underline{Placing a flat prior on the Intercept:}  Assume that a flat prior is placed on the intercept of the log-linear model, after the design matrix has been centered to induce orthogonality between the intercept and the factors that form the contingency table. This does not alter the prior on the parameters of the corresponding logistic regression model. The proof follows along the lines of the proof of Theorem 1, if we express the parameters of the logistic regression model as $\bfbeta=\bfT_{r-1} \bflambda_{r-1}$, where $\bfT_{r-1}$ denotes matrix $\bfT_{r}$ without the first column with all elements zero, and $\bflambda_{r-1}$ denotes the vector of parameters $\bflambda_{r}$ without the intercept $\lambda$. The proof proceeds as above, replacing $X_{rll}$ with $X_{rll-1}$, where $X_{rll-1}$ is the former matrix without the column with all elements one. It is also required to replace $X_{ll-lt}$ with $X_{ll-lt-1}$, where $X_{ll-lt-1}$ is the former matrix without the column with all elements one.

\end{document}

redpajama_set_name: RedPajamaArXiv


Skin cancer is the most commonly diagnosed cancer in the United States. Over five million cases are diagnosed each year, costing the U.S. healthcare system over $8 billion. More than 100,000 of these cases involve melanoma, the deadliest form of skin cancer, which leads to over 9,000 deaths a year, and the numbers continue to grow. Internationally, melanoma also poses a major public health threat. In Australia, there are over 13,000 new instances of melanoma yearly, leading to more than 1,600 deaths. In Europe, it causes more than 20,000 deaths a year.
To combat the rising mortality rate of melanoma, mechanisms for detection are needed that can diagnose the disease in its earliest stages, when proper treatment can still produce a five-year survival rate over 98 percent. If disease progresses to the lymphatic system or beyond, the survival rate drops as low as 16 percent.
Today, using an imaging technique called Dermoscopy, expert dermatologists can detect disease in early stages, but there are two challenges that remain. The first is that there may be a limited supply of these specialized physicians, making them costly to visit or difficult to access in many geographic regions. Convenient and affordable access to screening on a regular basis, if available, could help maximize the chances of identifying the disease early. The second challenge is the potential for human error, despite extensive training. For example, up to nine lesions are surgically biopsied for every one melanoma discovered. The occurrence of surgical biopsies on non-melanoma lesions can lead to patient discomfort, disfigurement, and a rise in healthcare costs.
Therefore, there remains a need for innovation that can help improve the access to and accuracy of melanoma detection. Historically, we've seen with many diseases that diagnostic blood tests can be one way to provide widespread access to accurate screening mechanisms. Blood can be drawn by technicians with minimal training, and diagnostics can be performed by local care centers, or mailed to labs. The results can then be used by clinical staff, including primary care physicians, to help come to a diagnosis in the context of the patient's symptoms and history. However, no reliable blood tests for melanoma currently exist.
Can doctors someday use pictures to routinely diagnose skin cancer?
At IBM Research, we have been focusing on potential technology applications in skin image analysis, as our expertise in healthcare, machine learning, computer vision, and cloud computing — as well as our partnerships with Memorial Sloan Kettering Cancer Center (MSK) and others — puts us in a unique position to approach this task. Recently, we've been developing techniques in computer vision that could one day enable clinical staff to use pictures to help them screen for disease. Our vision is that taking pictures to diagnose melanoma might one day be as routine as drawing blood to detect other diseases. Equipped with a smartphone or other camera attached to a Dermascope, the goal is that this type of technology would enable doctors, nurses, or support staff to take a photo of a concerning lesion, send it to a cloud-based analytics service, and receive a detailed report on the lesion in response. The report may contain a confidence indicator to help a clinician determine whether the lesion has characteristics of melanoma or other type of skin cancer. The report might also include other relevant supporting information, such as visual patterns observed on the lesion that might indicate certain underlying cellular structures, which may further assist clinical staff in assessing a patient's risk.
Screen shot of IBM Research Melanoma Image Analysis system outlining areas of the skin believed to be part of a lesion.
In 2015, our team published preliminary research on this topic, in which we explained the ability of computer vision approaches we are developing to help find disease markers in dermoscopy images, using an initial dataset provided to us through a collaboration with MSK and the International Skin Imaging Collaboration (ISIC). While preliminary research demonstrated promising results, the algorithms studied required a human user to outline the skin lesion of interest from the entire image. In addition, no direct comparison to the diagnostic performance of human experts was provided.
In the past two years, we have continued to develop and further advance computer vision methods to automatically outline the lesion of interest, as well as more effectively analyze the lesion and surrounding skin to screen for melanoma. With support from our collaborators, we have also directly compared the performance of these new methods to that of eight specialists. Using some clinically relevant metrics evaluated on the most recent datasets, the approaches we've developed are now about three times better at recognizing melanoma than the previous methods we developed, and do as well at recognizing disease in the dataset as specialists. This work is scheduled be published in a 2017 issue of the IBM Journal of Research and Development. A pre-print has been made available for immediate access on the online library arXiv, managed by Cornell University.
It's important to recognize that work is still in its early stages. As an analogy, a well-established dermatologist will see 25 patients or more per day. Assuming approximately 20 workdays a month, this results in over 6,000 patients per year, with potentially multiple lesions observed on each patient. By comparison, the IBM system has seen fewer than 3,000 lesions, meaning its experience level is along the lines of a medical student. More research and testing are necessary before the technology can contribute to clinical practice. But the hope is that one day, the simple act of taking a picture could help clinicians quickly and accurately test for melanoma and other dangerous skin diseases, allowing medical staff to focus more of their efforts on the appropriate treatment and management of disease.


text:
Battle for Sky intensifies as Comcast ups its offer
DCMS gives Fox go-ahead to take control of Sky
The battle to gain control of Sky has escalated further with Comcast increasing its bid from £22 billion to £26 billion.
That's more than 21st Century Fox's latest bid of £24.5 billion, announced yesterday.
Comcast said its new offer has been recommended by Sky's independent committee of directors.
It was now offering £14.75 a share for Sky compared with £14 from Fox.
Comcast said it had "long admired Sky", adding: "We believe it is an outstanding company and a great fit. Today's announcement further underscores Comcast's belief and its commitment to owning Sky."
Meanwhile, the Department of Media, Culture and Sport has announced it will allow Fox's bid to take control of Sky to go ahead.
In a written statement new Secretary of State for Culture Jeremy Wright said: "Having considered the responses to the consultation, the previous Secretary of State agreed with the parties a clarificatory change to Disney's undertakings and changes to the associated brand licensing agreement. In response to specific concerns raised by respondents, he also agreed that where appropriate the Secretary of State will consult with the CMA in relation to these undertakings and will publish the formal written advice given by the CMA. I am content to confirm this position."
"The publication of the undertakings marks the final stage of the public interest consideration of this case. It is right that Ofcom, the CMA and my Department have taken such care in ensuring the bid is properly and effectively scrutinised. It is now a matter for the Sky shareholders to decide whether to accept 21CF's bid."
Tags ⋅ 21st Century Fox ⋅ FOX ⋅ acquisitions ⋅ Sky ⋅ comcast
Sky extends Formula 1 rights deal across all its markets, will offer multi-screen and second-screen options
Sky moves further away from satellite with launch of Sky Stream
Comcast 'considering Sky Deutschland sale'
Sky to introduce HDR to Formula 1 coverage
Sky plans to add another 10 stages to Sky Studios Elstree
Sky Studios Elstree recruits local graduates for HETV training programme
Sky Deutschland sale 'could happen before the end of the year'
ProSiebenSat.1 'exploring' Sky Deutschland acquisition

redpajama_set_name: RedPajamaCommonCrawl


text:
Updated on January 11, 2016 11:20pm EST
How Much Can You Save on Life Insurance by Losing 20 Pounds?
By Aaron Crowe Insurance.com
You're not alone if you're packing a few extra pounds and want to get in shape for summer. But if you lose 20 pounds, you may accomplish more than looking fit in a bathing suit -- you may save money on your life insurance rates.
Americans weigh about 20 pounds more on average than they did 20 years ago, while the majority of Americans -- 61.6% -- are overweight or obese, according to recent Gallup polls.
Gallup's annual survey on health and health care found that men are self-reporting they weigh 196 pounds on average and women are reporting they weigh 160 pounds on average. And no one lies when self-reporting their weight, right? A separate Gallup poll found that 35.8% of Americans were overweight and 25.8% were obese -- adding up to 61.6% -- based on body mass index, or BMI, calculations that use height and weight for a number that correlates with the amount of body fat.
Figures from the Centers for Disease Control and Prevention echo the poll results. Of adults age 20 and over, 33.9% are obese, and 34.4% are overweight, but not obese.
Drop and give me 20: shed pounds, spur insurance savings
Too Young for Life Insurance? The Debate Over Policies for Children
Out of Work? Consider Tapping Your Life Insurance Policy for Quick Cash
Gene Simmons in the Life Insurance Biz?
The Link Between Estate Planning and Life Insurance
Losing that extra 20 pounds can result in a lower life insurance quote that could save you a few hundred dollars per year, according to an Insurance.com analysis.
"Extra weight does come into play and could increase the premium that you pay, and at some point extreme obesity would prevent you from getting any coverage at all," says Edward E. Graves, an associate professor of insurance at The American College in Bryn Mawr, Pa.
Some companies offer strong incentives for losing weight. Kaiser Permanente Colorado offers adults up to $150 every three months for losing weight and keeping it off under the Weigh and Win program.
But the best incentive could come from your life insurance company. If the money saved in life insurance premiums by losing weight was put aside, it could help pay for the policy.
Insurance.com's analysis of life insurance quotes based on weight found some savings for a $1 million, 20-year term policy, and for a $1 million whole life insurance policy. Quotes are based on a man and woman, both age 37, and of average heights for their gender. The average height in the U.S. for men ages 20 and older is 5 feet 8 inches, according to the CDC. For women ages 20 and over, the average height is 5 feet 3 inches.:
For a man who weighs 200 pounds, the term life insurance is $889 per year but drops to $670 if he loses 20 to 40 pounds, a savings of $219 a year.
A whole life insurance policy for the same man and the same amount of coverage would drop from $5,761 at 200 pounds to $5,031 at 180 pounds to 160 pounds, a lifetime savings of $730.
For a woman weighing 180 pounds, the term policy is $758 a year. That drops to $569 if she loses 20 to 40 pounds, an annual savings of $189.
The same woman could get a whole life policy for $4,686 at 180 pounds, but it would drop to $4,159 if she lost 20 to 40 pounds, a savings of $527.
The best time to buy life insurance when considering weight loss
Graves says, however, that there's a difference between a potential policyholder applying for a life insurance policy at a lower weight, and an existing policyholder asking for a rate change after losing some weight. Many companies won't consider the latter request, just as they won't increase rates if a policyholder gains weight, he says.
The best strategy would be to lose the extra weight before applying for a life insurance policy, says Graves. Being 40 pounds overweight will likely result in higher rates, and every insurer will have higher rates for people 70 pounds or more overweight, he says.
Weight is one of a dozen factors insurers will use to determine life insurance quotes, and underwriters of permanent or whole life policies have more leeway to give breaks for an extra 10 pounds of weight loss, says Tony Steuer, a licensed Individual life and disability insurance analyst in California.
For thinner people seeking lower rates, providing proof can be as easy as having an examiner bringing a scale to their home, or the insurance company checking their medical records, Steuer says.
But you may face problems if your weight changes every time you apply for a policy change, or if a dramatic weight loss from dieting is unsustainable, he says. For someone who plans to lose weight, getting a five- or 10-year life insurance plan now, and then updating to another plan when they lose the weight is a good idea if they follow through, Steuer says.
"The danger there is something else occurs health-wise, or they don't lose the weight, and they don't have the coverage they need," he says.
Losing weight could lead to a less expensive classification by the life insurance company, but getting older in the time it takes to lose it could make up the difference in savings you get from being thinner, says Mark Bermudez, marketing supervisor at Life and Annuity Masters in Simi Valley, Calif.
The original article can be found at Insurance.com:How much can you save on life insurance by losing 20 pounds?


Hello everyone! I have been absent from the Blog-sphere for a while, but I'm back – finally! I had some minor health issues that have been resolved and my sewing has returned! Yippee!
A well-fitted white shirt has been declared an essential item in today's wardrobe. We have been told that we can dress up the white shirt by adding a suit jacket and look "professional" for any occasion. That's all well and good, but why settle for a plain white shirt when you can embellish the shirt in a few hours to make a unique garment? By adding ribbon, lace, some cords or Seminole Patchwork you can create a beautiful shirt with original details.
I bought some white shirts from a local discount clothing store and embellished each with a different technique. Using fabrics and trims from my stash, I used a number of techniques to embellish each shirt differently. Inspiration is sure to strike after seeing these beautifully embellished white shirts.
I will post the directions for one or two of the embellished shirts in a future post; I promise.
Since my sewing mojo has returned I created a new shirt that I hope will interest quilters: a Tumbling Blocks embellished shirt. I know several quilters who would like to show off their quilting skills, but you can't exactly wear a quilt to work, can you? The Tumbling Blocks shirt uses a plain white shirt, with a set of blocks sewn onto one shoulder. Then several single blocks tumble down the front of the shirt, ready to join some mates at the bottom of the shirt.
I think the Tumbling Blocks work well enough and are fun enough that I'm now playing with the Spool of Thread pattern. What do think? Do these variations on quilt work interest you?
Sorry that you weren't feeling well, but it's awesome to have you back!
I'd like to cast my vote for instructions for the four strand braid shirt 8-D.


ASTANA (French Embassy) – Kazakhstan has extended a visa fee entry for foreign citizens from ten countries until July 2016, said French Ambassador Francis Etienne.
"Yesterday, we heard from our contacts in the Kazakh Ministry of Foreign Affairs, that it had been decided to extend a visa free rule for another year starting from July 15, 2015", the diplomat said at a press conference in Astana on Wednesday.
However, Kazakhstan's Foreign Ministry, however, told Interfax-Kazakhstan that the issue is still under consideration by the competent authorities. "As far as I know, the authorized agencies are still studying the effect of the initiative and a possibility of extending it", Foreign Ministry spokesman Nurzhan Aitmakhanov said.
The Kazakh government granted a visa-free entry to the country for citizens from U.S., the Netherlands, Great Britain, France, Germany, Italy, Malaysia, UAE, South Korea and Japan in the period from July 15, 2014 to July 15, 2015. During this time, the citizens of these ten countries are allowed to stay in Kazakhstan without visa for 15 calendar days.
Visa is not required for citizens of following 16 countries/territories: Argentina, Armenia, Azerbaijan, Belarus, Georgia, Hong Kong, Mongolia, Kyrgyzstan, Moldova, Russia, Serbia, South Korea, Tajikistan, Turkey, Ukraine and Uzbekistan.
For a 1 month tourist visa, no letter of invitation is needed for national of one of 47 countries with easy visa procedure.


text:
Police Task Force Targets Online Ticket Sellers "In boxer shorts"
Law enforcement will target scalpers this week at the U.S. Open tournament in Oakmont, but that won't protect golf fans seeking to buy tickets...
Law enforcement will target scalpers this week at the U.S. Open tournament in Oakmont, but that won't protect golf fans seeking to buy tickets online, officials said.
"Someone will get scammed," said Michael Overholt, a Pittsburgh police computer crimes detective.
"We sit here in our offices and look at our computer screens, and it's part of our environment. It makes us feel comfortable," Overholt said. "But you've got to shop online as if you were in that seller's store. He might be sitting in a basement somewhere in his boxer shorts smoking a cigar."
Many tickets on Friday were selling for prices below face value — $95 per day for general admission tickets to the rounds Thursday through Sunday — on sites such as craigslist and eBay. StubHub.com and RazorGator.com had full week packages listed at $1,000 or more. . .
Though bargains can be found, purchasing tickets from a Web site can be risky, officials said.
Some scammers will sell tickets, collect the money and never deliver the tickets, Overholt said. Others will set up fraudulent sites aimed at collecting sensitive information for identity theft, he said. (Full Story)
Last Updated on June 11, 2007 by


I melt into sheer comfort.
I actually wrote this while I was drunk, so sorry if it makes absolutely no sense... I just wanted to share anyway.
Edit: Apologies everyone, I have no idea what drove me to write this one, it was written when I was in a rather confusing place. However, reading it back, it still makes sense to me personally. I may be the only one, but i'd like to leave it posted.
Last edited by Fkeu'itan; 05-02-2010 at 01:17 PM.
A few of the stanzas make sense, but most don't. At least to me anyways.
As I said in my edit, it makes some amount of sense to me, but maybe it is more of a personal experience... Thanks for reading anyway.


text:
Daft Punk Fans - Get Spooky At Get Lucky Halloween (Wylam Brewery)
I remember my first encounter with Daft Punk clearly - seeing the video for 'Da Funk' on MTV (you remember, the one with the dog man) in around 1996 and being glued to the spot by the beat, feeling bad for the dog man in plaster whilst simultaneously falling in love with their sound. Fast forward to 2001, I was living in France, and Discovery came out. 'One More Time' was constantly on the radio, and every time I hear it I'm transported back to carefree days of being a student abroad, partying in clubs in Paris until dawn. I still haven't achieved my dream of seeing them live (yet), and I can no longer count the number of times I've watched their epic Coachella performance from 2006...
Luckily there are other ways of enjoying their music until they decide to do an epic gig again. Get Lucky: A Project Performing The Music of Daft Punk Live is coming to Newcastle at the end of October. Experience your favourite DP tunes performed by a fourteen piece orchestra (don't worry, a mega synth is also involved).
The original date, at World Headquarters on November 1st has now totally sold out, but luckily due to crazy demand there's a second date (spookily enough on Halloween) at Wylam Brewery (I'm already planning my scary robot outfit). With 11 shows sold-out in London (and a previous sell-out show at Wylam), you'd be a fool to miss this audiovisual feast. I can barely contain my excitement - no crappy Halloween party this year!
To book tickets for Get Lucky Halloween (first release presale tickets are £20) click here
*Please be aware that LED, strobe lighting and smoke machines will be in use throughout this event. If you have photosensitive epilepsy please do not buy a ticket for this show.
Chef's Academy and Lifestyle Academy - Newcastle College
Treasures On Our Doorstep - The Wonders of Northumberland National Park...
Aladdin - Tyne Theatre
blog archive October (1) January (2) December (2) November (2) October (2) September (3) August (4) June (1) May (1) April (2) March (3) February (4) January (3) December (6) November (3) October (3) September (2) August (3) July (2) April (3) March (1) February (2) December (4) November (1) October (2) September (4) August (5) July (6) June (8) May (7) April (1) March (4) February (4) January (1) December (1) October (4) September (1) August (3) July (2) June (2) May (1) April (1) March (5) February (12) January (13) December (5) November (5) October (2) September (6) August (6) July (6) June (4) May (5) April (4) March (5) February (10) January (6) December (6) November (2) October (11) September (14) August (7) July (13) June (22) May (16) April (19) March (12) February (20) January (15) December (3) November (1) September (1) August (1)
Blogger Programme
TEMPLATE DESIGNED BY PRETTYWILDTHINGS


text:
package eu.nubomedia.af.kurento.net.vertx;

import org.openxsp.java.OpenXSP;
import org.openxsp.java.RPCResult;
import org.openxsp.java.RPCResultHandler;
import org.openxsp.java.session.SessionControlAcceptSession;
import org.openxsp.java.session.SessionControlCancelSession;
import org.openxsp.java.session.SessionControlConfirmSessionEstablishment;
import org.openxsp.java.session.SessionControlCreateSession;
import org.openxsp.java.session.SessionControlEndSession;
import org.openxsp.java.session.SessionControlFactory;
import org.vertx.java.core.json.JsonObject;

import eu.nubomedia.af.kurento.SessionHandler;
import eu.nubomedia.af.kurento.net.NetworkService;
import eu.nubomedia.af.kurento.util.log.Logger;
import eu.nubomedia.af.kurento.util.log.LoggerFactory;
import eu.nubomedia.af.kurento.util.mem.Storage;

public class VertxNetworkService implements NetworkService{

	private static Logger log = LoggerFactory.getLogger(VertxNetworkService.class);

	private String callbackAddress;

	private OpenXSP openxsp;

	private JsonObject config;

	private Storage<String, String> sessionStorage;
	private Storage<String, SessionHandler> handlerStorage;

	public VertxNetworkService(OpenXSP openxsp, JsonObject config, String callbackAddress, Storage<String, String> sessionStorage, Storage handlerStorage){
		this.openxsp = openxsp;
		this.config = config;
		this.callbackAddress = callbackAddress;
		this.sessionStorage = sessionStorage;
		this.handlerStorage = handlerStorage;
	}

	@Override
	public void createSession(final String action, final String sessionId, String from, String to, String content, String contentType, final SessionHandler handler) {
		log.i("Creating session from " + from + " to " + to);
		log.v("Content: \r\n" + content);

		SessionControlCreateSession s = SessionControlFactory.createInitSessionMessage(sessionId, from, to, content, contentType, callbackAddress);

		String remoteEvent = getUserEvent(to);

		if (remoteEvent == null) {
			log.w("Could not send create session request to remote user - user unknown");
			return;
		}

		openxsp.eventBus().invoke(remoteEvent, action, s.create(), new RPCResultHandler() {

			@Override
			public void handle(RPCResult res) {
				if (res.succeeded()) {
					registerHandler(sessionId, handler);
				} else if (res.failed()) {

					log.e("Create session error", res.cause());

					if (handler != null) {
						if (res.cause() != null)
							handler.onSessionError(action, sessionId, res.cause().getMessage());
						else
							handler.onSessionError(action, sessionId, "Create session error");
					}
				}
			}
		});
	}

	@Override
	public void acceptSession(final String action, final String sessionId, String content, String contentType, final SessionHandler handler) {

		log.i("Accepting session with id " + sessionId);
		log.v("Content: \r\n" + content);

		SessionControlAcceptSession a = SessionControlFactory.createAcceptSessionMessage(sessionId, content, contentType, callbackAddress);

		String remoteEvent = getSessionRemoteEvent(sessionId);

		if (remoteEvent == null) {
			log.w("Could not send accept session with id " + sessionId + " - remote event unknown");
			return;
		}

		openxsp.eventBus().invoke(remoteEvent, action, a.create(), new RPCResultHandler() {

			@Override
			public void handle(RPCResult res) {
				if (res.succeeded()) {
					registerHandler(sessionId, handler);
				} else if (res.failed()) {

					log.e("Accept session error", res.cause());

					if (handler != null) {
						if (res.cause() != null)
							handler.onSessionError(action, sessionId, res.cause().getMessage());
						else
							handler.onSessionError(action, sessionId, "Accept session error");
					}
				}
			}
		});
	}

	@Override
	public void confirmSession(final String action, final String sessionId, String content, String contentType, final SessionHandler handler) {

		log.i("Confirming session with id " + sessionId);
		log.v("Content: \r\n" + content);

		SessionControlConfirmSessionEstablishment c = SessionControlFactory.createConfirmSessionMessage(sessionId, content, contentType, callbackAddress);

		String remoteEvent = getSessionRemoteEvent(sessionId);

		if (remoteEvent == null) {
			log.w("Could not send confirm session with id " + sessionId + " - remote event unknown");
			handler.onSessionError("", sessionId, "Could not send confirm session with id " + sessionId
					+ " - remote event unknown");
			return;
		}

		openxsp.eventBus().invoke(remoteEvent, action, c.create(), new RPCResultHandler() {

			@Override
			public void handle(RPCResult res) {

				if (res.failed()) {

					log.w("Accept session error", res.cause());

					if (handler != null) {
						if (res.cause() != null)
							handler.onSessionError(action, sessionId, res.cause().getMessage());
						else
							handler.onSessionError(action, sessionId, "Confirm session error");
					}
				}
				if (res.succeeded()) {
					// message receivement acknowledged by remote - nothing to
					// do
				}
			}
		});

	}

	@Override
	public void cancelSession(final String action, final String sessionId, String content, String contentType,
			final SessionHandler handler) {

		log.i("Canceling session with id " + sessionId);

		SessionControlCancelSession c = SessionControlFactory.createCancelSessionMessage(sessionId, callbackAddress);

		String remoteEvent = getSessionRemoteEvent(sessionId);

		if (remoteEvent == null) {
			log.w("Could not send cancel session with id " + sessionId + " - remote event unknown");
			return;
		}

		openxsp.eventBus().invoke(remoteEvent, action, c.create(), new RPCResultHandler() {

			@Override
			public void handle(RPCResult res) {

				if (res.failed()) {

					log.e("Cancel session error", res.cause());

					if (handler != null) {
						if (res.cause() != null)
							handler.onSessionError(action, sessionId, res.cause().getMessage());
						else
							handler.onSessionError(action, sessionId, "Cancel session error");
					}
				}
				if (res.succeeded()) {
					// message receivement acknowledged by remote - nothing to
					// do
					sessionStorage.remove(sessionId);
					unregisterHandler(sessionId);
				}
			}
		});

	}

	@Override
	public void endSession(final String action, final String sessionId, final SessionHandler handler) {

		log.i("Ending session with id " + sessionId);

		SessionControlEndSession c = SessionControlFactory.createEndSessionMessage(sessionId, callbackAddress);

		String remoteEvent = getSessionRemoteEvent(sessionId);

		if (remoteEvent == null) {
			log.w("Could not send end session with id " + sessionId + " - remote event unknown");
			return;
		}

		openxsp.eventBus().invoke(remoteEvent, action, c.create(), new RPCResultHandler() {

			@Override
			public void handle(RPCResult res) {

				if (res.failed()) {

					log.e("Cancel session error", res.cause());

					if (handler != null) {
						if (res.cause() != null)
							handler.onSessionError(action, sessionId, res.cause().getMessage());
						else
							handler.onSessionError(action, sessionId, "End session error");
					}
				} else {
					handler.onSessionEnded("", sessionId);
				}
			}
		});
	}

	private String getUserEvent(String to) {
		// TODO get remote event address from user registry
		return to;
	}

	@Override
	public JsonObject getConfig() {
		return this.config;
	}

	private String getSessionRemoteEvent(String sessionId) {

		return sessionStorage.get(sessionId);
	}

	private void registerHandler(String sessionId, SessionHandler handler) {

		handlerStorage.put(sessionId, handler);
	}

	private void unregisterHandler(String sessionId) {

		handlerStorage.remove(sessionId);
	}

	private void removeRemoteEvent(String sessionId){

		sessionStorage.remove(sessionId);
	}

//	private SessionHandler getSessionHandler(String sessionId) {
//
//		return VertxStorage.getInstance().get(VertxStorage.MAP_SESSION_HANDLER, sessionId);
//	}
//
//	private void registerRemoteEvent(String sessionId, String remoteEvent) {
//
//		VertxStorage.getInstance().put(VertxStorage.MAP_EVENT_SESSIONS, sessionId, remoteEvent);
//	}
}


text:
Anna Reading: Essays
Select Publications -- Click here to download articles
Essays in Edited Books
Reading, A. 2019. The Restitutional Assemblage: The Art of Transformative Justice at Parramatta Girls Home, Australia. Gready, Paul and Robins, Simon. (eds) From Transitional to Transformative Justice. Routledge.
Reading, A, 2017. 'Transformative Tales: Theater Storytelling, Ethics and Restitution'
Storytelling and Ethics: Literature, Storytelling and the Power of Narrative. edited by Hanna Meretoja and Colin Davis. Routledge Literature Series. Chapter 14.
Reading, A. 2017. 'Globital Memory Capital'. Chapter 10. With Tanya Notley. Digital Memory. Routledge. Edited by Andrew Hoskins.
Reading, A and Khlusova, A. 2017. 'War Museums: Gender and Memory' with Anna Khlusova. Macmillan Handbook of Gender. Palgrave.
Reading, A. 2015. 'Singing for My Life: Memory, Nonviolence and the Songs of Greenham Common Women's Peace Camp'
in Cultural Memories of Nonviolent Struggles: Powerful Times. Basingstoke: Palgrave Macmillan, p. 147-165
Reading, A. 2015. 'Making feminist heritage work: Gender and heritage'. The Palgrave Handbook of Contemporary Heritage Research. BFI Palgrave Macmillan, p. 397-413
Reading, A. M. & Katriel, T. 2015' 'Introduction' in Cultural Memories of NonViolent Struggles: Powerful Times. Basingstoke: Palgrave Macmillan, p. 1-31
Reading, A. 2014. 'Making Memory Work for Feminist Theory' The Sage Handbook of Feminist Theory. Evans, M., Hemmings, C., Henry, M., Madhok, S., Plomien, A. & Wearing, S. (eds.). London New York : Sage Publishing
Reading, A. 2014 The Journalist as Memory Assembler: Non Memory, The War on Terror and The Shooting of Osama Bin Laden
in Memory and Journalism. Zelizer , . B. & Tenenboim., . K. (eds.). Basingstoke, UK: Palgrave/Macmillan
Reading, A. 2013 Europe's Other World: Romany Memory within the New Dynamics of the Globital Memory Field
in Memory, Conflict and New Media: Web Wars in Post-Socialist States. Rutten. E., Fedor, J. & Zrevava . V. (eds.). London: Routledge, p. 21-31
Reading, A, 2012. 'Globital Time: Time in the Digital Globalised Age' Time, Media, and Modernity. Edited by Emily Keightley. Basingstoke: Palgrave, 143-164
Reading, A. 2012. 'The European Roma: An Unsettled Right to Memory' in Public Memory, Public Media, and the Politics of Justice. Co-edited by Philip Lee and Pradip N. Thomas. Basingstoke: Palgrave, pp.121-140
Reading, A. 2011, 'Globalisation and Digital Memory: Globital Memory's Six Dynamics', in, Neiger, M., Meyers, O., Zandberg, E. (eds), On Media Memory , Basingstoke: Palgrave, pp 241-252.
Reading, A. 2011, 'Globital Witnessing: Mobile Memories of Atrocity and Terror from London and Iran', in, Hall, K. and Jones, K. (eds), Constructions of Conflict: Transmitting Memories of the Past in European Historiography, Literature and Culture , Oxford: Peter Lang, pp 73-90.
Reading, A. 2009, 'Memobilia: Mobile Phones Making New Memory Forms', in, Garde-Hansen, J. Hoskins and Reading, A. (eds), Save As…Digital Memories , London: Palgrave, pp 81-95.
Harvey, C. and Reading, A. 2008, 'Remembrance of Things Fast: Conceptualising Nostalgic-Play in the Battlestar Galactica Video Game', in, Whalen, Z. and Taylor, L. (eds), Playing the Past: History and Nostalgia in Video Games , Nashville: Vanderbilt University Press, pp 164-182.
Reading, A. 2007, Anthologised extract from book, 'Gender, Memory and Culture: The Social Inheritance of the Holocaust', in, Rossington, M. and Whitehead, A. (eds), Theories of Memory: A Reader, Edinburgh: Edinburgh University Press, pp 219-222.
Reading, A. 2005, 'The Making of Social Memories? Young People's Reception of Holocaust Films in Different Cultural Contexts', in, Haggith, T. and Newman, J. (eds), The Holocaust and the Moving Image: Representations in Film and Television Since 1933 , London: Wallflower Press, pp 211-216.
Reading, A. (2003), 'Sale of the Century: Engendering Media Policy in Eastern Europe', in, Paletz, D. and Jakubowicz, K. (eds), Business as Usual? Media in Eastern Europe , Cresskill: Hampton Press, pp 385-412.
Reading, A. 2001, 'Clicking on Hitler: The Virtual Holocaust @Home', in, Zelizer, B. (ed.), Visual Culture and the Holocaust , New Brunswick, NJ: Rutgers University Press, pp 323-339.
Reading, A. 1999, 'Regulation and Media Policy', in, Reading, A. and Stokes, J. (eds), The Media in Britain: Current Debates and Developments , Basingstoke: Macmillan, pp 127-129.
Stokes, J. and Reading, A. 1999, 'Media Material: Content and Representation', The Media in Britain: Current Debates and Developments , Basingstoke: Macmillan, pp 185-190.
Reading, A (1999), 'Selling Sexuality in the Lesbian and Gay Press', The Media in Britain: Current Debates and Developments , Basingstoke: Macmillan, pp 265-272.
Reading, A (1999), 'Campaigns to Change the Media', The Media in Britain: Current Debates and Developments , Basingstoke: Macmillan, pp 170-181.
Reading, A. 1995, 'The President's Men: Television, Gender and the Public Sphere in Central and Eastern Europe', in, Preston, P. and Corcoran, C. (eds). Democracy and Communication in the New Europe , Cresskill: Hampton Press, pp 175-194.
Reading, A. and Sparks, C. 1995, 'Re-regulating broadcasting in Eastern and Central Europe: a comparative analysis', in, Preston, P. and Corcoran, C. (eds), Democracy and Communication in the New Europe , Cresskill: Hampton, pp 31-50.