<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Genet.</journal-id>
<journal-title>Frontiers in Genetics</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Genet.</abbrev-journal-title>
<issn pub-type="epub">1664-8021</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1088223</article-id>
<article-id pub-id-type="doi">10.3389/fgene.2023.1088223</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Genetics</subject>
<subj-group>
<subject>Technology and Code</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Springer: An R package for bi-level variable selection of high-dimensional longitudinal data</article-title>
<alt-title alt-title-type="left-running-head">Zhou et al.</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/fgene.2023.1088223">10.3389/fgene.2023.1088223</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Zhou</surname>
<given-names>Fei</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Liu</surname>
<given-names>Yuwen</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Ren</surname>
<given-names>Jie</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1244610/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Wang</surname>
<given-names>Weiqun</given-names>
</name>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Wu</surname>
<given-names>Cen</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/658747/overview"/>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>Department of Statistics</institution>, <institution>Kansas State University</institution>, <addr-line>Manhattan</addr-line>, <addr-line>KS</addr-line>, <country>United States</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>Department of Biostatistics and Health Data Sciences</institution>, <institution>Indiana University School of Medicine</institution>, <addr-line>Indianapolis</addr-line>, <addr-line>IN</addr-line>, <country>United States</country>
</aff>
<aff id="aff3">
<sup>3</sup>
<institution>Department of Food</institution>, <institution>Nutrition</institution>, <institution>Dietetics and Health</institution>, <institution>Kansas State University</institution>, <addr-line>Manhattan</addr-line>, <addr-line>KS</addr-line>, <country>United States</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/29737/overview">Rongling Wu</ext-link>, The Pennsylvania State University (PSU), United States</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/849719/overview">Tao Wang</ext-link>, Shanghai Jiao Tong University, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1999856/overview">Ang Dong</ext-link>, Beijing Forestry University, China</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Cen Wu, <email>wucen@ksu.edu</email>
</corresp>
<fn fn-type="other">
<p>This article was submitted to Statistical Genetics and Methodology, a section of the journal Frontiers in Genetics</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>06</day>
<month>04</month>
<year>2023</year>
</pub-date>
<pub-date pub-type="collection">
<year>2023</year>
</pub-date>
<volume>14</volume>
<elocation-id>1088223</elocation-id>
<history>
<date date-type="received">
<day>03</day>
<month>11</month>
<year>2022</year>
</date>
<date date-type="accepted">
<day>28</day>
<month>02</month>
<year>2023</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2023 Zhou, Liu, Ren, Wang and Wu.</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Zhou, Liu, Ren, Wang and Wu</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p>
</license>
</permissions>
<abstract>
<p>In high-dimensional data analysis, the bi-level (or the sparse group) variable selection can simultaneously conduct penalization on the group level and within groups, which has been developed for continuous, binary, and survival responses in the literature. Zhou et al. (2022) (PMID: 35766061) has further extended it under the longitudinal response by proposing a quadratic inference function-based penalization method in gene&#x2013;environment interaction studies. This study introduces &#x201c;springer,&#x201d; an R package implementing the bi-level variable selection within the QIF framework developed in Zhou et al. (2022). In addition, R package &#x201c;springer&#x201d; has also implemented the generalized estimating equation-based sparse group penalization method. Alternative methods focusing only on the group level or individual level have also been provided by the package. In this study, we have systematically introduced the longitudinal penalization methods implemented in the &#x201c;springer&#x201d; package. We demonstrate the usage of the core and supporting functions, which is followed by the numerical examples and discussions. R package &#x201c;springer&#x201d; is available at <ext-link ext-link-type="uri" xlink:href="https://cran.r-project.org/package=springer">https://cran.r-project.org/package&#x3d;springer</ext-link>.</p>
</abstract>
<kwd-group>
<kwd>bi-level variable selection</kwd>
<kwd>gene&#x2013;environment interaction</kwd>
<kwd>repeated measurements</kwd>
<kwd>generalized estimating equation</kwd>
<kwd>quadratic inference function</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>In gene&#x2013;environment interaction studies, a central task is to detect important G&#xd7;E interactions that are beyond main G and E effects. Although the main environmental factors are usually preselected and of low dimensionality, in the presence of a large number of G factors, conducting G&#xd7;E analysis can be performed in the variable selection framework. Recently, <xref ref-type="bibr" rid="B54">Zhou et al. (2021a)</xref> surveyed the penalized variable selection methods for interaction analysis, revealing the pivotal role that the sparse group selection played in G&#xd7;E studies. Specifically, determining whether a genetic factor, such as the gene expression or SNP, is associated with the disease phenotype is equivalent to feature selection on the group level of main G and G&#xd7;E interactions with respect to that G factor. Further detection of the main and/or interaction effects demands selection within the group. Such bi-level variable selection methods have been extensively studies under continuous, binary, and survival outcomes in G&#xd7;E studies (<xref ref-type="bibr" rid="B44">Wu et al., 2018a</xref>; <xref ref-type="bibr" rid="B33">Ren et al., 2022a</xref>; <xref ref-type="bibr" rid="B32">Ren et al., 2022b</xref>; <xref ref-type="bibr" rid="B24">Liu et al., 2022</xref>).</p>
<p>
<xref ref-type="bibr" rid="B50">Zhou et al. (2022a)</xref> have further examined the sparse group variable selection for longitudinal studies where measurements on the subjects are repeatedly recorded over a sequence of units, such as time (<xref ref-type="bibr" rid="B38">Verbeke et al., 2014</xref>). In general, major competitors for the bi-level selection include LASSO and group LASSO types of regularization methods that only perform variable selection on the individual and group levels, respectively (<xref ref-type="bibr" rid="B46">Wu and Ma, 2015</xref>). <xref ref-type="bibr" rid="B50">Zhou et al. (2022a)</xref> have also incorporated two alternatives for comparison under the longitudinal response based on the quadratic inference functions (QIFs) (<xref ref-type="bibr" rid="B27">Qu et al., 2000</xref>). The sgQIF, gQIF, and iQIF, denoting the penalized QIF methods accommodating sparse group, group-, and individual-level selections, respectively, have been thoroughly examined with different working correlation structures modeling the relatedness among repeated measurements. All these methods have been implemented in R package <italic>springer</italic>.</p>
<p>In this article, we provide a detailed introduction of R package <italic>springer</italic>, which has implemented not only the proposed and alternative regularized QIF methods from <xref ref-type="bibr" rid="B50">Zhou et al. (2022a)</xref> but also their counterparts based on the generalized estimating equations (GEEs) (<xref ref-type="bibr" rid="B22">Liang and Zeger, 1986</xref>). The GEE, originally proposed by <xref ref-type="bibr" rid="B22">Liang and Zeger (1986)</xref>, captures the intra-correlation of repeated measurements using their marginal distributions and a working correlation matrix depending on certain nuisance parameters. The QIF has further improved upon GEE <italic>via</italic> bypassing the nuisance parameters, leading to consistent and optimal estimation of regression coefficients even when the working correlation is misspecified (<xref ref-type="bibr" rid="B27">Qu et al., 2000</xref>).</p>
<p>GEE and QIF have been the two major frameworks for developing high-dimensional penalization methods, especially under the main effect models. For example, <xref ref-type="bibr" rid="B41">Wang et al.</xref> (<xref ref-type="bibr" rid="B41">2012)</xref> have proposed a regularized GEE with the SCAD penalty. <xref ref-type="bibr" rid="B5">Cho and Qu (2013)</xref> have considered the penalized QIF with penalty functions including LASSO, adaptive LASSO, and SCAD. More recently, the high-dimensional longitudinal interaction models have been developed based on GEE and QIF (<xref ref-type="bibr" rid="B52">Zhou et al., 2019</xref>; <xref ref-type="bibr" rid="B50">Zhou et al., 2022a</xref>). In terms of statistical software, R package <italic>PGEE</italic>, developed by <xref ref-type="bibr" rid="B17">Inan and Wang (2017)</xref>, has implemented the penalized GEE methods from <xref ref-type="bibr" rid="B41">Wang et al. (2012)</xref>. The package <italic>interep</italic> features the mixture of individual- and group-level penalty under the GEE, where selection on the two levels does not overlap and thus is not a sparse group penalty (<xref ref-type="bibr" rid="B52">Zhou et al., 2019</xref>; <xref ref-type="bibr" rid="B53">Zhou et al., 2022b</xref>).</p>
<p>Package <italic>springer</italic> is among the first of statistical software to systematically implement bi-level, group-level, and individual-level regularization under both GEE and QIF. It focuses on the longitudinal interaction models where the linear G&#xd7;E interactions have been assumed (<xref ref-type="bibr" rid="B54">Zhou et al., 2021a</xref>). The non-linear G&#xd7;E interactions usually demand the varying coefficient models and their extensions (<xref ref-type="bibr" rid="B42">Wu and Cui, 2013</xref>; <xref ref-type="bibr" rid="B47">Wu et al., 2018b</xref>; <xref ref-type="bibr" rid="B31">Ren et al., 2020</xref>). In longitudinal studies, <xref ref-type="bibr" rid="B40">Wang et al. (2008)</xref> and <xref ref-type="bibr" rid="B37">Tang et al. (2013)</xref> have developed regularized variable selection based on varying coefficient (VC) models under the least squares and quantile check loss, respectively. They have assumed independence for repeated measurements, so the within-subject correlation has not been incorporated. <xref ref-type="bibr" rid="B6">Chu et al. (2016)</xref>, on the other hand, have considered the weighted least squares-based VC models, where the weights have been estimated from a marginal non-parametric model to account for intra-cluster interconnections. R package <italic>VariableScreening</italic> has provided the corresponding R codes and examples.</p>
<p>We have made R package <italic>springer</italic> publicly available on CRAN (<xref ref-type="bibr" rid="B51">Zhou et al., 2021b</xref>). The core modules of the package have been developed in C&#x2b;&#x2b; for fast computation. We organize the rest of the paper as follows. <xref ref-type="sec" rid="s2">Section 2</xref> provides a summary of bi-level penalization in longitudinal interaction studies. The main and supporting functions in package <italic>springer</italic> are introduced in <xref ref-type="sec" rid="s3">Section 3</xref>. To demonstrate the usage of the package, we present a simulated example in <xref ref-type="sec" rid="s4">Section 4</xref> and a case study in <xref ref-type="sec" rid="s5">Section 5</xref>. We conclude the article with discussions in <xref ref-type="sec" rid="s6">Section 6</xref>.</p>
</sec>
<sec sec-type="materials|methods" id="s2">
<title>2 Materials and methods</title>
<sec id="s2-1">
<title>2.1 The bi-level model for longitudinal G&#xd7;E studies</title>
<p>In a typical longitudinal setting with <italic>n</italic> subjects, the <italic>i</italic>th subject (1&#x2a7d;<italic>i</italic>&#x2a7d;<italic>n</italic>) is repeatedly measured over <italic>t</italic>
<sub>
<italic>i</italic>
</sub> time points, which naturally results in <italic>t</italic>
<sub>
<italic>i</italic>
</sub> repeated measurements that are correlated for the same subject and are assumed to be independent with the measurements taken from other subjects. Then, <italic>Y</italic>
<sub>
<italic>ij</italic>
</sub> denotes the phenotype measured for the <italic>i</italic>th subject at time point <italic>j</italic> (1&#x2a7d;<italic>j</italic>&#x2a7d;<italic>t</italic>
<sub>
<italic>i</italic>
</sub>). <inline-formula id="inf1">
<mml:math id="m1">
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ij1</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ijp</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> and <inline-formula id="inf2">
<mml:math id="m2">
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ij1</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ijq</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> represent the <italic>p</italic>-dimensional vector of genetic factors and the <italic>q</italic>-dimensional vector of environmental factors, respectively. The bi-level G&#xd7;E model associates the genetic and environmental main effects and their interactions with the repeatedly measured phenotypic response as follows:<disp-formula id="e1">
<mml:math id="m3">
<mml:mtable class="aligned">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:msub>
<mml:mrow>
<mml:mi>Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3f5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ijh</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ijk</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">nhk</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ijh</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ijk</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3f5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ijh</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">nhk</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ijh</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ijk</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3f5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ijh</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ijk</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3f5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(1)</label>
</disp-formula>where <italic>&#x3b1;</italic>
<sub>
<italic>n</italic>0</sub> is the intercept, and <italic>&#x3b1;</italic>
<sub>
<italic>nh</italic>
</sub>, <italic>&#x3b3;</italic>
<sub>
<italic>nk</italic>
</sub>, and <italic>u</italic>
<sub>
<italic>nhk</italic>
</sub> denote the regression coefficients of environmental and genetic main effects and their interactions, correspondingly. We also define <inline-formula id="inf3">
<mml:math id="m4">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n1k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">nqk</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>, and <inline-formula id="inf4">
<mml:math id="m5">
<mml:msub>
<mml:mrow>
<mml:mi>Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ijk</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ijk</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ij1</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ijk</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ijq</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ijk</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>. <italic>Z</italic>
<sub>
<italic>ijk</italic>
</sub> is a (<italic>q</italic> &#x2b; 1)-dimensional vector representing the main and interaction effects with respect to the <italic>k</italic>th genetic factor. For 1&#x2a7d;<italic>j</italic>&#x2a7d;<italic>t</italic>
<sub>
<italic>i</italic>
</sub>, the random error <italic>&#x3f5;</italic>
<sub>
<italic>ij</italic>
</sub> has mean zero and a finite variance. For convenience, the random error <italic>&#x3f5;</italic>
<sub>
<italic>i</italic>
</sub> is assumed to be multivariate normal as <inline-formula id="inf5">
<mml:math id="m6">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3f5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3f5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3f5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>&#x223c;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>, where &#x3a3;<sub>
<italic>i</italic>
</sub> is the covariance matrix corresponding to the <italic>i</italic>th subject. From now on, we let <italic>t</italic>
<sub>
<italic>i</italic>
</sub> &#x3d; <italic>t</italic>. Combined, we can write <inline-formula id="inf6">
<mml:math id="m7">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>, <inline-formula id="inf7">
<mml:math id="m8">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>, and <inline-formula id="inf8">
<mml:math id="m9">
<mml:msub>
<mml:mrow>
<mml:mi>Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ij1</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ijp</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>. The length of the coefficient vector <italic>&#x3b7;</italic>
<sub>
<italic>n</italic>
</sub> is <italic>p</italic> &#x2b; <italic>pq</italic>. Then, model (1) can be equivalently expressed as<disp-formula id="equ1">
<mml:math id="m10">
<mml:msub>
<mml:mrow>
<mml:mi>Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3f5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:math>
</disp-formula>The (1 &#x2b; <italic>q</italic> &#x2b; <italic>p</italic> &#x2b; <italic>pq</italic>)-dimensional vectors <inline-formula id="inf9">
<mml:math id="m11">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> and <inline-formula id="inf10">
<mml:math id="m12">
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> are denoted, and a concise form of model (1) is formed as follows:<disp-formula id="equ2">
<mml:math id="m13">
<mml:msub>
<mml:mrow>
<mml:mi>Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3f5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:math>
</disp-formula>The aforementioned model provides a general formulation under the longitudinal design in which both the response variable and predictors are repeatedly measured. Here, the predictors are G and E main effects and G&#xd7;E interactions. It still works when only one or neither of the G and E factors are repeatedly measured. In the real data analyzed in <xref ref-type="bibr" rid="B50">Zhou et al. (2022a)</xref>, both the G and E factors in the interaction study do not vary across time.</p>
</sec>
<sec id="s2-2">
<title>2.2 An overview of interaction studies based on GEE and QIF</title>
<p>R package <italic>springer</italic> (<xref ref-type="bibr" rid="B51">Zhou et al., 2021b</xref>) includes methods that account for repeated measurements based on the GEE and QIF, respectively. Here, we briefly review the two frameworks for longitudinal interaction studies.</p>
<p>The <bold>generalized estimating equation</bold> has been proposed by <xref ref-type="bibr" rid="B22">Liang and Zeger (1986)</xref> to account for intra-cluster correlations using a marginal model by specifying the conditional expectation and variance of each response, <italic>Y</italic>
<sub>
<italic>ij</italic>
</sub>, and the conditional pairwise within-subject association among the vector of repeatedly measured phenotypes. In the longitudinal interaction studies, the marginal expectation of the response is <inline-formula id="inf11">
<mml:math id="m14">
<mml:mtext>E</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>, and the conditional variance of <italic>Y</italic>
<sub>
<italic>ij</italic>
</sub> is Var(<italic>Y</italic>
<sub>
<italic>ij</italic>
</sub>) &#x3d; <italic>&#x3b4;</italic>(<italic>&#x3bc;</italic>
<sub>
<italic>ij</italic>
</sub>), where <italic>&#x3b4;</italic>(<italic>&#x3bc;</italic>
<sub>
<italic>ij</italic>
</sub>) is a known function of the mean <italic>&#x3bc;</italic>
<sub>
<italic>ij</italic>
</sub>. Then, the score equation for the longitudinal G&#xd7;E model is defined as<disp-formula id="equ3">
<mml:math id="m15">
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:msubsup>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
</mml:math>
</disp-formula>where <inline-formula id="inf12">
<mml:math id="m16">
<mml:msub>
<mml:mrow>
<mml:mi>Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> and the covariance matrix for the intra-subject association <italic>V</italic>
<sub>
<italic>i</italic>
</sub> is defined as <inline-formula id="inf13">
<mml:math id="m17">
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>&#x3bd;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>. Here, for the <italic>i</italic>th subject, the diagonal matrix <italic>A</italic>
<sub>
<italic>i</italic>
</sub> is defined as <italic>A</italic>
<sub>
<italic>i</italic>
</sub> &#x3d; diag{Var(<italic>Y</italic>
<sub>
<italic>i</italic>1</sub>), &#x2026;, Var(<italic>Y</italic>
<sub>
<italic>it</italic>
</sub>)}, and the &#x201c;working&#x201d; correlation matrix <italic>R</italic>
<sub>
<italic>i</italic>
</sub>(<italic>&#x3bd;</italic>) depends on a finite dimensional parameter vector <italic>&#x3bd;</italic>, characterizing the within-subject association. We have <inline-formula id="inf14">
<mml:math id="m18">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>. The ratio term in the aforementioned score equation is equivalent to <inline-formula id="inf15">
<mml:math id="m19">
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>. Then, the GEE estimator, <inline-formula id="inf16">
<mml:math id="m20">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, is the corresponding solution.</p>
<p>The term &#x201c;working&#x201d; correlation in GEE is adopted to distinguish <italic>R</italic>
<sub>
<italic>i</italic>
</sub>(<italic>&#x3bd;</italic>) from the true underlying correlation among intra-subject measurements. <xref ref-type="bibr" rid="B22">Liang and Zeger (1986)</xref> have shown that when <italic>&#x3bd;</italic> is consistently estimated, the GEE estimator is consistent even if the correlation structure is not correctly specified. However, there is a cost under such misspecification, that is, the GEE estimator is no longer efficient, and <italic>&#x3bd;</italic> cannot be consistently estimated.</p>
<p>The <bold>quadratic inference function</bold> overcomes the disadvantage of GEE by avoiding the direct estimation of <italic>&#x3bd;</italic> (<xref ref-type="bibr" rid="B27">Qu et al., 2000</xref>). It has also been shown that even when the correlation structure is misspecified, the QIF estimator is still optimal. With the bi-level modeling of G&#xd7;E interactions under the longitudinal response, the inverse of <italic>R</italic>(<italic>&#x3bd;</italic>) can be calculated by a linear combination of basis matrices within the QIF framework. Specifically, <inline-formula id="inf17">
<mml:math id="m21">
<mml:mtext>R</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>&#x3bd;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2248;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>, where <italic>B</italic>
<sub>1</sub> is an identity matrix and <italic>B</italic>
<sub>2</sub>, &#x2026; , <italic>B</italic>
<sub>
<italic>m</italic>
</sub> are symmetric basis matrices with unknown coefficients <italic>c</italic>
<sub>1</sub>, &#x2026; <italic>c</italic>
<sub>
<italic>m</italic>
</sub>. The specifications of these basis matrices are dependent on the types of working correlation (<xref ref-type="bibr" rid="B27">Qu et al., 2000</xref>). The score equations can be rewritten as<disp-formula id="e2">
<mml:math id="m22">
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msubsup>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:msubsup>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:msubsup>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:math>
<label>(2)</label>
</disp-formula>
</p>
<p>Accordingly, for the <italic>i</italic>th subject, we define the extended score vector, <italic>&#x3d5;</italic>
<sub>
<italic>i</italic>
</sub> (<italic>&#x3b2;</italic>
<sub>
<italic>n</italic>
</sub>), for the bi-level G&#xd7;E model as<disp-formula id="e3">
<mml:math id="m23">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msubsup>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:msubsup>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msubsup>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:msubsup>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:math>
<label>(3)</label>
</disp-formula>We then denote the extended score for all subjects as <inline-formula id="inf18">
<mml:math id="m24">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:msubsup>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>. The linear combination of all components in <inline-formula id="inf19">
<mml:math id="m25">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> directly leads to the estimation functions in Eq. <xref ref-type="disp-formula" rid="e2">2</xref>. The quadratic inference function based on the extended score <inline-formula id="inf20">
<mml:math id="m26">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> is defined as<disp-formula id="equ4">
<mml:math id="m27">
<mml:msub>
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
</disp-formula>where the sample covariance matrix of <italic>&#x3d5;</italic>
<sub>
<italic>i</italic>
</sub> (<italic>&#x3b2;</italic>
<sub>
<italic>n</italic>
</sub>) is <inline-formula id="inf21">
<mml:math id="m28">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:msubsup>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>. Minimizing the aforementioned quadratic inference function yields <inline-formula id="inf22">
<mml:math id="m29">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, i.e., <inline-formula id="inf23">
<mml:math id="m30">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>arg</mml:mtext>
<mml:munder>
<mml:mrow>
<mml:mtext>min</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munder>
<mml:msub>
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>. It should be noted that the minimization does not involve the coefficients <italic>c</italic>
<sub>1</sub>, &#x2026; <italic>c</italic>
<sub>
<italic>m</italic>
</sub> in Eq. <xref ref-type="disp-formula" rid="e2">2</xref>.</p>
</sec>
<sec id="s2-3">
<title>2.3 Penalized QIF for the bi-level longitudinal G&#xd7;E interaction studies</title>
<p>R package <italic>springer</italic> (<xref ref-type="bibr" rid="B51">Zhou et al., 2021b</xref>) can perform penalized sparse group variable selection based on both the GEE and QIF framework in order to identify an important subset of main and interaction effects that are associated with the longitudinal phenotype. As QIF is an extension of GEE, we focus on the penalized bi-level QIF in the main text and introduce GEE-based methods in the <xref ref-type="sec" rid="s11">Supplementary Appendix</xref>. The following regularized bi-level QIF has been proposed in <xref ref-type="bibr" rid="B50">Zhou et al. (2022a)</xref>:<disp-formula id="e4">
<mml:math id="m31">
<mml:mi>U</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>Q</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mi>&#x3c1;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:mi>&#x3c1;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">nkh</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mo>;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(4)</label>
</disp-formula>where the minimax concave penalty is <inline-formula id="inf24">
<mml:math id="m32">
<mml:mi>&#x3c1;</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>;</mml:mo>
<mml:mi>&#x3bb;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3bb;</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mo>&#x222b;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2b;</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>x</mml:mi>
</mml:math>
</inline-formula> on [0, <italic>&#x221e;</italic>) with the tuning parameter <italic>&#x3bb;</italic> and regularization parameter <italic>&#x3b3;</italic> (<xref ref-type="bibr" rid="B49">Zhang, 2010</xref>). The group-level penalty <inline-formula id="inf25">
<mml:math id="m33">
<mml:mi>&#x3c1;</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> is imposed on <inline-formula id="inf26">
<mml:math id="m34">
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>, which is the empirical norm of <italic>&#x3b7;</italic>
<sub>
<italic>nk</italic>
</sub>, to determine whether the <italic>k</italic>th SNP has any contribution to the variation in the repeatedly measured phenotype. We define the empirical norm as <inline-formula id="inf27">
<mml:math id="m35">
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>/</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> with <inline-formula id="inf28">
<mml:math id="m36">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msubsup>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>, where <italic>B</italic>
<sub>
<italic>k</italic>
</sub> is the subset of the design matrix corresponding to the interactions between the <italic>k</italic>th genetic factor and all the E factors. If <italic>&#x3b7;</italic>
<sub>
<italic>nk</italic>
</sub> is estimated as a zero vector, the <italic>k</italic>th SNP is not associated with the phenotypic response. Otherwise, the individual-level penalty <italic>&#x3c1;</italic>(&#x7c;<italic>&#x3b7;</italic>
<sub>
<italic>nkh</italic>
</sub>&#x7c;; <italic>&#x3bb;</italic>
<sub>2</sub>, <italic>&#x3b3;</italic>) further selects the main and interaction effects that are associated with the phenotype.</p>
<p>Our choice of the baseline penalty function is the MCP, and the corresponding first derivative function of MCP is defined as <inline-formula id="inf29">
<mml:math id="m37">
<mml:msup>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>;</mml:mo>
<mml:mi>&#x3bb;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>The penalized QIF in (4) is the extension of bi-level variable selection to longitudinal studies, which conducts selections of important groups and individual members within the group simultaneously. It is worth noting that the penalized GEE model proposed by <xref ref-type="bibr" rid="B52">Zhou et al. (2019)</xref> does not perform within-group selection. The shrinkage has been imposed on the individual level (G main effect) and group level (G&#xd7;E interactions) separately. Unlike the model in (4), the terms selected on the individual level in the study by <xref ref-type="bibr" rid="B52">Zhou et al. (2019)</xref> are not members of the group. Therefore, it is not the sparse group selection, although in a loose sense, it can be treated as a bi-level variable selection method.</p>
<p>A general form for the objective function of regularization methods is &#x201c;unpenalized objective function &#x2b; penalty function&#x201d; (<xref ref-type="bibr" rid="B46">Wu and Ma, 2015</xref>). QIF and GEE are widely adopted unregularized objective functions for repeated measurement studies. LASSO and SCAD have been considered the penalty functions in longitudinal studies, where selection of the main effects are of interest (<xref ref-type="bibr" rid="B41">Wang et al., 2012</xref>; <xref ref-type="bibr" rid="B5">Cho and Qu, 2013</xref>; <xref ref-type="bibr" rid="B26">Ma et al., 2013</xref>). To accommodate more complicated structured sparsity incurred by interaction effects, the shrinkage components in Eq. <xref ref-type="disp-formula" rid="e4">4</xref> adopts MCP as the baseline penalty to perform individual- and group-level penalization simultaneously. It is commonly recognized that the structure-specific regularization functions are needed to accommodate different sparsity patterns. For example, to account for strong correlations among predictors, network-based variable selection methods have been developed (<xref ref-type="bibr" rid="B29">Ren et al., 2019</xref>; <xref ref-type="bibr" rid="B16">Huang et al., 2021</xref>). The penalty functions have been implemented in a diversity of R packages. For example, under generalized linear models, the package <italic>glmnet</italic> has included LASSO and its extensions, such as the ridge penalty and elastic net (<xref ref-type="bibr" rid="B14">Friedman et al., 2010a</xref>). R package <italic>regnet</italic> has been developed for network-based penalization under continuous, binary, and survival responses with possible choices on robustness (<xref ref-type="bibr" rid="B30">Ren et al., 2017</xref>; <xref ref-type="bibr" rid="B29">Ren et al., 2019</xref>). With the longitudinal response, R package <italic>PGEE</italic> has adopted SCAD penalty for penalized GEE to select main effects (<xref ref-type="bibr" rid="B17">Inan and Wang, 2017</xref>), and package <italic>interep</italic> has been designed in interaction studies based on MCP (<xref ref-type="bibr" rid="B53">Zhou et al., 2022b</xref>).</p>
</sec>
<sec id="s2-4">
<title>2.4 The bi-level selection algorithm based on QIF</title>
<p>Optimization of the penalized QIF in (4) demands the Newton&#x2013;Raphson algorithm that can update <inline-formula id="inf30">
<mml:math id="m38">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> iteratively. Specifically, the estimated coefficient vector <inline-formula id="inf31">
<mml:math id="m39">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> can be obtained based on <inline-formula id="inf32">
<mml:math id="m40">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> at the <italic>g</italic>th iteration as follows:<disp-formula id="e5">
<mml:math id="m41">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>n</mml:mi>
<mml:mi>H</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>n</mml:mi>
<mml:mi>H</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(5)</label>
</disp-formula>where <inline-formula id="inf33">
<mml:math id="m42">
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf34">
<mml:math id="m43">
<mml:mi>V</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> can be obtained as<disp-formula id="equ5">
<mml:math id="m44">
<mml:mi>P</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mi>Q</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
</disp-formula>and<disp-formula id="equ6">
<mml:math id="m45">
<mml:mi>V</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi>Q</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22a4;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>.</mml:mo>
</mml:math>
</disp-formula>Moreover, <inline-formula id="inf35">
<mml:math id="m46">
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> is a diagonal matrix consisting of derivatives of both the individual-and group-level penalty functions, which is defined as<disp-formula id="equ7">
<mml:math id="m47">
<mml:mtable class="aligned">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mi>H</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>diag</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
</mml:mrow>
<mml:mfenced open="(" close="">
<mml:mrow>
<mml:mrow>
<mml:munder>
<mml:mrow>
<mml:munder accentunder="false">
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mo stretchy="true">&#x23df;</mml:mo>
</mml:munder>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:munder>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:munder>
<mml:mrow>
<mml:munder accentunder="false">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msqrt>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3f5;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msqrt>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3f5;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo stretchy="true">&#x23df;</mml:mo>
</mml:munder>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:mfenced open="" close=")">
<mml:mrow>
<mml:munder>
<mml:mrow>
<mml:munder accentunder="false">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msqrt>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3f5;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msqrt>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3f5;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo stretchy="true">&#x23df;</mml:mo>
</mml:munder>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:mtext>diag</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
</mml:mrow>
<mml:mfenced open="(" close="">
<mml:mrow>
<mml:munder>
<mml:mrow>
<mml:munder accentunder="false">
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mo stretchy="true">&#x23df;</mml:mo>
</mml:munder>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:mfenced open="" close=")">
<mml:mrow>
<mml:munder>
<mml:mrow>
<mml:munder accentunder="false">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n11</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mo>;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3f5;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n11</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">&#x7c;</mml:mo>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mn>1</mml:mn>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mo>;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3f5;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mn>1</mml:mn>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">&#x7c;</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo stretchy="true">&#x23df;</mml:mo>
</mml:munder>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:munder>
<mml:mrow>
<mml:munder accentunder="false">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">np1</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mo>;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3f5;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">np1</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">&#x7c;</mml:mo>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>p</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mo>;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3f5;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>p</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">&#x7c;</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo stretchy="true">&#x23df;</mml:mo>
</mml:munder>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:munder>
</mml:mrow>
</mml:mfenced>
<mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>where the small positive fraction <italic>&#x3f5;</italic> is set to 10<sup>&#x2013;6</sup> to guarantee the numerical stability when the denominator approaches zero. Since the intercept and the environmental factors are not subject to shrinkage selection, the first (1 &#x2b; <italic>q</italic>) entries on the main diagonal of the matrix are zero accordingly. With fixed tuning parameters, <inline-formula id="inf36">
<mml:math id="m48">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> is updated iteratively following Eq. <xref ref-type="disp-formula" rid="e5">5</xref>. The update stops when the convergence criterion has been reached, that is, the difference between the L<sub>1</sub> norm of <inline-formula id="inf37">
<mml:math id="m49">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> and <inline-formula id="inf38">
<mml:math id="m50">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> is less than a cutoff (e.g., 0.001). Numerical studies have shown that only a small to moderate number of iterations are required upon convergence (<xref ref-type="bibr" rid="B50">Zhou et al., 2022a</xref>).</p>
<p>The sparse group penalty (4) incorporates two tuning parameters, <italic>&#x3bb;</italic>
<sub>1</sub> and <italic>&#x3bb;</italic>
<sub>2</sub>, to determine the amount of shrinkage on the group and individual level, correspondingly. An additional regularization parameter <italic>&#x3b3;</italic> further balances the unbiasedness and convexity of MCP. The performance of the proposed regularized QIF is insensitive under different choices of <italic>&#x3b3;</italic> (<xref ref-type="bibr" rid="B50">Zhou et al., 2022a</xref>). The best pair of (<italic>&#x3bb;</italic>
<sub>1</sub>, <italic>&#x3bb;</italic>
<sub>2</sub>) can be searched over the two-dimensional grid through <italic>K</italic>-fold cross-validation. We first split the dataset into <italic>K</italic> non-overlapping portions of roughly the same size and held out the <italic>k</italic>th (<italic>k</italic> &#x3d; 1, &#x2026; ,<italic>K</italic>) fold as the testing dataset. The rest of the data are used as training data to fit a regularized QIF by giving a specific pair of (<italic>&#x3bb;</italic>
<sub>1</sub>, <italic>&#x3bb;</italic>
<sub>2</sub>). <italic>n</italic>
<sub>
<italic>k</italic>
</sub> and <italic>n</italic>
<sub>&#x2212;<italic>k</italic>
</sub> denote the index sets of subjects as training and testing samples, respectively. We can compute the prediction error on testing data as<disp-formula id="equ8">
<mml:math id="m51">
<mml:msub>
<mml:mrow>
<mml:mtext>PE</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">&#x7c;</mml:mo>
</mml:mrow>
</mml:mfrac>
<mml:munder>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munder>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>,</mml:mo>
</mml:math>
</disp-formula>where &#x7c;<italic>n</italic>
<sub>&#x2212;<italic>k</italic>
</sub>&#x7c; is the size of testing data, and <inline-formula id="inf39">
<mml:math id="m52">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> is the regularized coefficient obtained using the training data. The computation cycles through each of the <italic>K</italic> fold for <italic>k</italic> &#x3d; 1, 2. ., <italic>K</italic>, yielding the following cross-validation error:<disp-formula id="e6">
<mml:math id="m53">
<mml:mtext>CV</mml:mtext>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mtext>PE</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:math>
<label>(6)</label>
</disp-formula>The cross-validation value with respect to each pair of (<italic>&#x3bb;</italic>
<sub>1</sub>, <italic>&#x3bb;</italic>
<sub>2</sub>) can be retrieved across the entire two-dimensional grid. The optimal pair of tunings is corresponding to the smallest CV value. Details of the algorithm are given as follows:<list list-type="simple">
<list-item>
<p>1 The two-dimensional grid of (<italic>&#x3bb;</italic>
<sub>1</sub>, <italic>&#x3bb;</italic>
<sub>2</sub>) is provided with an appropriate range.</p>
</list-item>
<list-item>
<p>2 Under the fixed (<italic>&#x3bb;</italic>
<sub>1</sub>, <italic>&#x3bb;</italic>
<sub>2</sub>),</p>
</list-item>
<list-item>
<p>(a) <inline-formula id="inf40">
<mml:math id="m54">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> is initialized using LASSO</p>
</list-item>
<list-item>
<p>(b) at the (<italic>g</italic> &#x2b; 1)<sup>th</sup> iteration, <inline-formula id="inf41">
<mml:math id="m55">
<mml:mi>V</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> is computed and</p>
</list-item>
<list-item>
<p>(c) <inline-formula id="inf42">
<mml:math id="m56">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> is updated according to Eq. <xref ref-type="disp-formula" rid="e5">5</xref>.</p>
</list-item>
<list-item>
<p>(d) The cross-validation error is calculated using Eq. <xref ref-type="disp-formula" rid="e6">6</xref>.</p>
</list-item>
<list-item>
<p>3 Step 2 is repeated for each pair of (<italic>&#x3bb;</italic>
<sub>1</sub>, <italic>&#x3bb;</italic>
<sub>2</sub>) until convergence.</p>
</list-item>
<list-item>
<p>4 The optimal (<italic>&#x3bb;</italic>
<sub>1</sub>, <italic>&#x3bb;</italic>
<sub>2</sub>) is found under the smallest cross-validation error. The corresponding <inline-formula id="inf43">
<mml:math id="m57">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> is reported.</p>
</list-item>
</list>
</p>
<p>The validation approach is a popular alternative of tuning selection to bypass the computational intensity of cross-validation. When the data-generating model is available, the independent testing data with much larger size can be readily generated. Then, the prediction performance of the fitted sparse group PQIF model under (<italic>&#x3bb;</italic>
<sub>1</sub>, <italic>&#x3bb;</italic>
<sub>2</sub>) can be assessed on the testing data directly. On the contrary, in cross-validation, the prediction error can only be obtained after cycling through all the <italic>K</italic> folds as shown by Equation <xref ref-type="disp-formula" rid="e6">6</xref>.</p>
</sec>
</sec>
<sec id="s3">
<title>3 R package <italic>springer</italic>
</title>
<p>Package <italic>springer</italic> includes two core functions, namely, <monospace>springer</monospace> and <monospace>cv.springer</monospace>. The function <monospace>springer</monospace> can fit both GEE- and QIF-based penalization models under longitudinal responses in G&#xd7;E interaction studies. The function <monospace>cv.springer</monospace> computes the prediction error in cross-validation. Moreover, the package also includes supporting functions <monospace>reformat</monospace>, <monospace>penalty,</monospace> and <monospace>dmcp</monospace>, which have been developed by the authors. To speed up computation, we have implemented the Newton&#x2013;Raphson algorithms in C&#x2b;&#x2b;. The package is thus dependent on R packages <monospace>Rcpp</monospace> and <monospace>RcppArmadillo</monospace> (<xref ref-type="bibr" rid="B8">Eddelbuettel and Fran&#xe7;ois, 2011</xref>; <xref ref-type="bibr" rid="B10">Eddelbuettel, 2013</xref>; <xref ref-type="bibr" rid="B9">Eddelbuettel and Sanderson, 2014</xref>).</p>
<sec id="s3-1">
<title>3.1 The core functions</title>
<p>In package <italic>springer</italic>, the R function for computing the penalized estimates under fixed tuning parameters is</p>
<p>springer (clin &#x3d; NULL,e, g, y, beta0, func, corr, <bold>structure</bold>, lam1, lam2, maxits &#x3d; 30,tol &#x3d; 0.001).</p>
<p>The clinical covariates and environmental and genetic factors can be specified by the input arguments <monospace>clin</monospace>, <monospace>e</monospace>, and <monospace>g</monospace>, respectively. This is different from packages conducting feature selection for the main effects, such as <italic>glmnet</italic> and <italic>PGEE</italic>, where the entire design matrix should be used an input (<xref ref-type="bibr" rid="B14">Friedman et al., 2010a</xref>; <xref ref-type="bibr" rid="B17">Inan and Wang, 2017</xref>). In interaction studies, the design matrix has a much more complicated structure. Our package is user friendly in that users only need to provide the clinical, g, and e factors, and then the function <monospace>springer</monospace> will automatically formulate the design matrix tailored for interaction analysis. The clinical covariates are not involved in the interactions with G factors and are not subject to selection. The argument <monospace>beta0</monospace> denotes the initial value of <inline-formula id="inf44">
<mml:math id="m58">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>, which is used at the first iteration of the Newton&#x2013;Raphson algorithm. Typical choices of <monospace>beta0</monospace> include the LASSO or ridge estimates under the cross-sectional phenotype measured at one of the time points or the average of the within-subject phenotypic measurements.</p>
<p>The character string argument <monospace>func</monospace> specifies one of the two frameworks (GEE and QIF) to be used for regularized estimation. One of the three working correlations from AR-1, exchangeable, and independence can be called through the input argument <monospace>corr</monospace>. For example, <monospace>corr</monospace> &#x3d; &#x201c;<monospace>exchangeable,</monospace>&#x201d; <monospace>corr</monospace> &#x3d; &#x201c;<monospace>AR-1,</monospace>&#x201d; and <monospace>corr</monospace> &#x3d; &#x201c;<monospace>independence</monospace>&#x201d; denote exchangeable, AR-1, and independent correlation, respectively. In addition to the bi-level structure, this package has also included sparsity structures on the group and individual level, respectively. To use the bi-level PQIF under the exchangeable working correlation proposed by <xref ref-type="bibr" rid="B50">Zhou et al. (2022a)</xref>, we need to specify <monospace>func</monospace> &#x3d; &#x201d;<monospace>QIF,</monospace>&#x201d; <monospace>structure</monospace> &#x3d; &#x201d;<monospace>bi-level,</monospace>&#x201d; and <monospace>corr</monospace> &#x3d; &#x201d;<monospace>exchangeable</monospace>&#x201d; at the same time. It is worthwhile noting that the bi-level selection requires two tuning parameters to impose sparsity. When <monospace>structure</monospace> &#x3d; &#x201d;<monospace>group</monospace>&#x201d; or <monospace>structure</monospace> &#x3d; &#x201d;<monospace>individual,</monospace>&#x201d; only one of the two tuning parameters <monospace>lam1</monospace> and <monospace>lam2</monospace> is needed.</p>
<p>The Newton&#x2013;Raphson algorithms implemented in the package <italic>springer</italic> proceed in an iterative manner. The input argument <monospace>maxits</monospace> provides the maximum number of iterations determined by the users. We can supply the small positive fraction <italic>&#x3f5;</italic> that is used to ensure the stability of the algorithm through argument <monospace>tol</monospace>.</p>
<p>In package <italic>springer</italic>, function <monospace>cv.springer</monospace> performs cross-validation based on the regularized coefficients provided by <monospace>springer</monospace>. The R code is</p>
<p>cv.springer (clin &#x3d; NULL,e, g, y, beta0, lambda1, lambda2, nfolds, func, corr, <bold>structure</bold>, maxits &#x3d; 30,tol &#x3d; 0.001).</p>
<p>The function <monospace>cv.springer</monospace> calls <monospace>springer</monospace> to conduct cross-validation over a sequence of tuning parameters and report the corresponding cross-validation error. Therefore, it is not surprising to observe that the two functions share a common group of arguments involving the input of data and specifications on the penalization method used for estimation. Unlike the scalars of <monospace>lam2</monospace> and <monospace>lam2</monospace> in function <monospace>springer</monospace>, the arguments <monospace>lambda1</monospace> and <monospace>lambda2</monospace> are user-supplied sequences of tuning parameters. For bi-level selection, <monospace>cv.springer</monospace> calculates the prediction error across each pair of tunings determined by <monospace>lambda1</monospace> and <monospace>lambda2</monospace>. The number of folds used in cross-validation is specified by <monospace>nfolds</monospace>.</p>
</sec>
<sec id="s3-2">
<title>3.2 Additional supporting functions</title>
<p>Package <italic>springer</italic> also provides multiple supporting functions in addition to the core functions. As MCP is the baseline penalty adopted in all the penalized variable selection methods implemented in the package, the function <monospace>dmcp</monospace> denotes its first-order derivative function used in the formulation under the Newton&#x2013;Raphson algorithm. The function <monospace>penalty</monospace> determines the type of sparse structure (individual-, group-, or bi-level) imposed for variable selection. Both the group- and bi-level penalizations involve the empirical norm <inline-formula id="inf45">
<mml:math id="m59">
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>. In practice, the form of &#x3a3;<sub>
<italic>k</italic>
</sub> is not unique. For example, &#x3a3;<sub>
<italic>k</italic>
</sub> can be chosen as an identity matrix, and then <inline-formula id="inf46">
<mml:math id="m60">
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> reduces to an L<sub>2</sub> norm. While the alternatives might be equally applicable, the default choice of &#x3a3;<sub>
<italic>k</italic>
</sub> in package <italic>Springer</italic> is in the form discussed in <xref ref-type="sec" rid="s2-3">Section 2.3</xref>.</p>
<p>It is assumed that repeated measurements on the response are given in the wide format with the dimension of 100 by 5, where 100 is the sample size and 5 is the number of time points, then we can use function <monospace>reformat</monospace> to convert the wide format to long format with dimension 500 by 1. Similarly, the design matrix under sample size 100 and 50 main and interaction effects has a dimensionality of 100 by 50, if they do not vary across time. Then, <monospace>reformat</monospace> will return a 500 by 51 wide format matrix including the column of intercept. An &#x201c;id&#x201d; column will also be generated by <monospace>reformat</monospace> to show the time points corresponding to 500 columns. Moreover, a simulated dataset, <monospace>dat</monospace>, is provided to demonstrate the penalized selection in the proposed longitudinal study. We describe more details in the next section.</p>
</sec>
</sec>
<sec id="s4">
<title>4 Simulation example</title>
<p>In this section, we demonstrate the fit of bi-level selection using package <italic>Springer</italic> based on simulated datasets. Although model (1) is general in the sense that both the response and predictors are repeatedly measured, it can be reduced to the case where the predictors, consisting of the clinical covariates and environmental and genetic factors, are cross-sectional under the longitudinal response. Model (1) is flexible in which the predictors can have a mixture of cross-sectional and longitudinal measurements. For instance, the repeated measurements are only taken on E factors and not on clinical or G factors.</p>
<p>The motivating dataset for the sparse group variable selection developed in <xref ref-type="bibr" rid="B50">Zhou et al. (2022a)</xref> can be retrieved from the Childhood Asthma Management Program (CAMP) in our case study where the clinical, E, and G factors are not repeatedly measured (<xref ref-type="bibr" rid="B3">Childhood Asthma Management Program Research Group, 1999</xref>; <xref ref-type="bibr" rid="B4">Childhood Asthma Management Program Research Group Szefler et al., 2000</xref>; <xref ref-type="bibr" rid="B7">Covar et al., 2012</xref>). Therefore, the current version (version 0.1.7) of package <italic>springer</italic> only accounts for such a case. It is worth noting that technically it is not difficult to extend the package to repeatedly measured predictors because the only difference lies in using time-specific measurements rather than repeating the cross-sectional measurements across all the time points in the estimation procedure. We will discuss potential extensions of the package at the end of this section. In the following simulated example, the longitudinal responses are generated together with cross-sectional predictors. The data-generating function is provided as follows:</p>
<p>Data &#x3c;- <bold>function</bold> (n,p,k,<bold>q</bold>)</p>
<p>{</p>
<p>y &#x3d; <bold>matrix</bold> (<bold>rep</bold> (0,n&#x2a;k),n,k)</p>
<p>sig &#x3d; matrix (0,p,p)</p>
<p>
<bold>for</bold> (i in 1: p) {</p>
<p>
<bold>for</bold> (j in 1: p) { sig [i,j] &#x3d; 0.8&#x5e;<bold>abs</bold> (i-j) }</p>
<p>}</p>
<p>
<italic>&#x23; Generate genetic factors</italic>
</p>
<p>g &#x3d; mvrnorm (n,<bold>rep</bold> (0,p),sig)</p>
<p>sig0 &#x3d; <bold>matrix</bold> (0,<bold>q</bold>,<bold>q</bold>)</p>
<p>
<bold>for</bold> (i in 1: <bold>q</bold>) {</p>
<p>
<bold>for</bold> (j in 1: <bold>q</bold>) { sig0 [i,j] &#x3d; 0.8&#x5e;<bold>abs</bold> (i-j) }</p>
<p>}</p>
<p>
<italic>&#x23; Generate environmental factors</italic>
</p>
<p>e &#x3d; mvrnorm (n,<bold>rep</bold> (0,<bold>q</bold>),sig0)</p>
<p>E0 &#x3d; <bold>as.numeric</bold> (g [,1]&#x3c;&#x3d;0)</p>
<p>E0 &#x3d; E0&#x2b;1</p>
<p>e &#x3d; <bold>cbind</bold> (E0,e [,-1])</p>
<p>e.out &#x3d; e</p>
<p>e1 &#x3d; <bold>cbind</bold> (<bold>rep</bold> (1,<bold>dim</bold>(e)[1]),e)</p>
<p>
<bold>for</bold> (i in 1:p) { e &#x3d; <bold>cbind</bold> (e,g [,i]&#x2a;e1) }</p>
<p>x &#x3d; <bold>scale</bold>(e)</p>
<p>ll &#x3d; 0.3</p>
<p>ul &#x3d; 0.5</p>
<p>
<bold>coef</bold> &#x3d; <bold>runif</bold> (<bold>q</bold>&#x2b;25,ll,ul)</p>
<p>
<bold>mat</bold> &#x3d; x [,<bold>c</bold> (1:<bold>q</bold>, (<bold>q</bold>&#x2b;1), (<bold>q</bold>&#x2b;2), (<bold>q</bold>&#x2b;6), (<bold>q</bold>&#x2b;4), (2&#x2a;<bold>q</bold>&#x2b;2), (2&#x2a;<bold>q</bold>&#x2b;3), (2&#x2a;<bold>q</bold>&#x2b;7),</p>
<p>(2&#x2a;<bold>q</bold>&#x2b;5), (3&#x2a;<bold>q</bold>&#x2b;3), (3&#x2a;<bold>q</bold>&#x2b;4), (3&#x2a;<bold>q</bold>&#x2b;8), (3&#x2a;<bold>q</bold>&#x2b;6),</p>
<p>(4&#x2a;<bold>q</bold>&#x2b;4), (4&#x2a;<bold>q</bold>&#x2b;5), (4&#x2a;<bold>q</bold>&#x2b;9), (4&#x2a;<bold>q</bold>&#x2b;7), (5&#x2a;<bold>q</bold>&#x2b;5),</p>
<p>(5&#x2a;<bold>q</bold>&#x2b;6), (5&#x2a;<bold>q</bold>&#x2b;10), (5&#x2a;<bold>q</bold>&#x2b;8), (6&#x2a;<bold>q</bold>&#x2b;6), (6&#x2a;<bold>q</bold>&#x2b;7),</p>
<p>(6&#x2a;<bold>q</bold>&#x2b;11), (6&#x2a;<bold>q</bold>&#x2b;9), (7&#x2a;<bold>q</bold>&#x2b;7))]</p>
<p>
<bold>for</bold> (u in 1:k){ y [,u] &#x3d; 0.5 &#x2b; rowSums (<bold>coef&#x2a;mat</bold>) }</p>
<p>
<italic>&#x23;Exchangable correlation for repeated measurements</italic>
</p>
<p>sig1 &#x3d; <bold>matrix</bold> (0,k,k)</p>
<p>
<bold>diag</bold> (sig1) &#x3d; 1</p>
<p>
<bold>for</bold> (i in 1: k) {</p>
<p>
<bold>for</bold> (j in 1: k) { <bold>if</bold> (j <bold>!</bold>&#x3d; i){sig1 [i,j] &#x3d; 0.8} } }</p>
<p>error &#x3d; mvrnorm (n,<bold>rep</bold> (0,k),sig1)</p>
<p>y &#x3d; y &#x2b; error</p>
<p>dat &#x3d; <bold>list</bold> (y &#x3d; y,x &#x3d; x,e &#x3d; e.out, g &#x3d; g, <bold>coef</bold> &#x3d; c (0.5,<bold>coef</bold>))</p>
<p>
<bold>return</bold> (dat)</p>
<p>}</p>
<p>In the aforementioned codes, <italic>n</italic>, <italic>p</italic>, and <italic>q</italic> represent the sample size, dimension of the genetic factors, and environmental factors, respectively. The number of repeated measurements is <italic>k</italic>. Now, we simulate a dataset with 400 subjects, 100&#xa0;G factors, and 5&#xa0;E factors. The number of repeated measurements is set to 5. The correlation coefficient <italic>&#x3c1;</italic> of the compound symmetry working correlation assumed for longitudinal measurements is 0.8. In the data-generating function, <monospace>coef</monospace> represents the vector of non-zero coefficients, and <monospace>mat</monospace> is the part of design matrix corresponding to the main and interaction effects associated with non-zero coefficients. With (<italic>n</italic>, <italic>p</italic>, <italic>q</italic>) &#x3d; (400, 100, 5), <monospace>coef</monospace> is a vector of length 30, and <monospace>mat</monospace> is a 400-by-30 matrix. The R code <monospace>coef&#x2a;mat</monospace> denotes element-wise multiplication by multiplying the non-zero coefficient to the corresponding main or interaction effects. Therefore, <monospace>rowSums(coef&#x2a;mat)</monospace> returns a 400-by-1 vector. The code &#x201c;0.5 &#x2b; <monospace>rowSums(coef&#x2a;mat)</monospace>&#x201d; stand for the combined effects from those important main and interaction effects, and the intercept, with 0.5 being the coefficient multiplied to the intercept. We listed the R codes and output in the following section:</p>
<p>library (MASS)</p>
<p>library (glmnet)</p>
<p>library (springer)</p>
<p>set.seed (123)</p>
<p>n.train &#x3d; n &#x3d; 400</p>
<p>
<italic>p</italic> &#x3d; 100; k &#x3d; 5; q &#x3d; 5</p>
<p>dat.train &#x3d; Data(n.train,p,k,q)</p>
<p>y.train &#x3d; dat.train$y</p>
<p>x.train &#x3d; dat.train$x</p>
<p>e.train &#x3d; dat.train$e</p>
<p>g.train &#x3d; dat.train$g</p>
<p>&#x3e; dim(y.train)</p>
<p>[1] 400 5</p>
<p>&#x3e; dim(x.train)</p>
<p>[1] 400 605</p>
<p>&#x3e; dim(e.train)</p>
<p>[1] 400 5</p>
<p>&#x3e; dim(g.train)</p>
<p>[1] 400 100</p>
<p>In addition, the R codes <monospace>dat.train$coef</monospace> saves the non-zero coefficients used in the data-generating model. By setting the seed, we can reproduce the data generated through calling the <monospace>Data</monospace>. A total of 100 genetic factors and 5 environmental factors lead to a total of 605 main and interaction effects, excluding the intercept. We first obtain the initial value of the coefficient vector <inline-formula id="inf47">
<mml:math id="m61">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> by fitting ridge regression under the univariate response taken from a single time point. Other choices of initial values include fitting ridge regression or LASSO under the average of within-subject measurements, which accommodate the case of unbalanced data, where a proper single point might be difficult to determine. In general, the regularized estimates remain relatively insensitive to different choices of initial value <inline-formula id="inf48">
<mml:math id="m62">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, as long as <inline-formula id="inf49">
<mml:math id="m63">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> is reasonable, in other words, not extremely far away from the optimal solution.</p>
<p>x.train1 &#x3d; <bold>cbind</bold> (<bold>data</bold>.<bold>frame</bold> (<bold>rep</bold> (1,n)),x.train)</p>
<p>x.train1 &#x3d; <bold>data</bold>.<bold>matrix</bold> (x.train1)</p>
<p>lasso.cv &#x3d; cv.glmnet (x.train1,y.train [,1],alpha &#x3d; 0,nfolds &#x3d; 5)</p>
<p>alpha &#x3d; lasso.cv$lambda.<bold>min</bold>/2</p>
<p>lasso.fit &#x3d; glmnet (x.train1,y.train [,1],</p>
<p>
<bold>family</bold> &#x3d; "gaussian",alpha &#x3d; 0,nlambda &#x3d; 100)</p>
<p>beta0 &#x3d; <bold>as</bold>.<bold>matrix</bold> (<bold>as</bold>.<bold>vector</bold> (<bold>predict</bold> (lasso.fit,</p>
<p>s &#x3d; alpha, type &#x3d; "coefficients"))[-1])</p>
<p>With the initial value obtained previously, we call function <monospace>cv.springer</monospace> to calculate cross-validation errors corresponding to the pair of tuning parameters (<monospace>lambda1</monospace> and <monospace>lambda2</monospace>). The number of fold is 5 by setting <monospace>nfolds</monospace> to 5 in the following codes. Then, a penalized bi-level QIF model with an independence correlation has been fitted to the simulated data with the optimal tunings. The fitted regression coefficients are saved in <monospace>fit.beta</monospace>.</p>
<p>lambda1 &#x3d; <bold>seq</bold> (0.025,0.1,<bold>length</bold>.out &#x3d; 5)</p>
<p>lambda2 &#x3d; <bold>seq</bold> (1,1.5,<bold>length</bold>.out &#x3d; 3)</p>
<p>tunning &#x3d; cv.springer (clin &#x3d; NULL, e.train, g.train, y.train, beta0,</p>
<p>lambda1, lambda2, nfolds &#x3d; 5, func &#x3d; "QIF",</p>
<p>corr &#x3d; "independence",<bold>structure</bold> &#x3d; "bilevel",</p>
<p>maxits &#x3d; 30, tol &#x3d; 0.1)</p>
<p>lam1 &#x3d; tunning$lam1</p>
<p>lam2 &#x3d; tunning$lam2</p>
<p>&#x3e; lam1</p>
<p>[1] 0.0625</p>
<p>&#x3e; lam2</p>
<p>[1] 1</p>
<p>&#x3e; tunning$CV</p>
<p>[,1] [,2] [,3]</p>
<p>[1,] 14.873142 15.37916 16.02844</p>
<p>[2,] 12.282850 13.23239 13.81465</p>
<p>[3,] 9.663655 10.62635 11.96531</p>
<p>[4,] 10.133435 11.00219 12.25365</p>
<p>[5,] 11.237012 11.79566 13.17813</p>
<p>fit.<bold>beta</bold> &#x3d; springer (clin &#x3d; NULL, e.train, g.train, y.train, beta0,</p>
<p>func &#x3d; "QIF",corr &#x3d; "independence",</p>
<p>
<bold>structure</bold> &#x3d; "bilevel",lam1,lam2,maxits &#x3d; 30,tol &#x3d; 0.1)</p>
<p>To assess the model&#x2019;s performance, we will compare the fitted coefficient vector <monospace>fit.beta</monospace> with the true coefficient vector, which is used to simulate the response variable in <monospace>Data</monospace>. Since the codes <monospace>dat.train$coef</monospace> only report the true non-zero coefficient, the resulting vector has a length much less than <monospace>fit.beta,</monospace> which includes zero coefficient. Therefore, we first retrieve locations of non-zero effects in the coefficient vector used to generate the longitudinal response. In the following codes, <monospace>tp</monospace>, <monospace>tp.main</monospace>, and <monospace>tp.interaction</monospace> represent the locations for all the non-zero effects, that is, the column number of the corresponding effects in the design matrix. Although the coefficients are randomly generated from uniform distributions, the locations of the non-zero effects are fixed. In total, there are 30 non-zero effects, consisting of 5 environmental factors, 7 genetic factors, and 18 gene&#x2013;environment interactions.</p>
<p>&#x23;&#x23; non-zero effects without intercept</p>
<p>tp &#x3d; <bold>c</bold>(1:<bold>q</bold>, (<bold>q</bold>&#x2b;1), (<bold>q</bold>&#x2b;2), (<bold>q</bold>&#x2b;6), (<bold>q</bold>&#x2b;4), (2&#x2a;<bold>q</bold>&#x2b;2), (2&#x2a;<bold>q</bold>&#x2b;3), (2&#x2a;<bold>q</bold>&#x2b;7), (2&#x2a;<bold>q</bold>&#x2b;5),</p>
<p>(3&#x2a;<bold>q</bold>&#x2b;3), (3&#x2a;<bold>q</bold>&#x2b;4), (3&#x2a;<bold>q</bold>&#x2b;8), (3&#x2a;<bold>q</bold>&#x2b;6), (4&#x2a;<bold>q</bold>&#x2b;4), (4&#x2a;<bold>q</bold>&#x2b;5), (4&#x2a;<bold>q</bold>&#x2b;9), (4&#x2a;<bold>q</bold>&#x2b;7),</p>
<p>(5&#x2a;<bold>q</bold>&#x2b;5), (5&#x2a;<bold>q</bold>&#x2b;6), (5&#x2a;<bold>q</bold>&#x2b;10), (5&#x2a;<bold>q</bold>&#x2b;8), (6&#x2a;<bold>q</bold>&#x2b;6), (6&#x2a;<bold>q</bold>&#x2b;7), (6&#x2a;<bold>q</bold>&#x2b;11),</p>
<p>(6&#x2a;<bold>q</bold>&#x2b;9), (7&#x2a;<bold>q</bold>&#x2b;7))&#x2b;1</p>
<p>&#x23;&#x23; non-zero main effects</p>
<p>tp.main &#x3d; <bold>c</bold>((<bold>q</bold>&#x2b;2), (2&#x2a;<bold>q</bold>&#x2b;3), (3&#x2a;<bold>q</bold>&#x2b;4), (4&#x2a;<bold>q</bold>&#x2b;5), (5&#x2a;<bold>q</bold>&#x2b;6), (6&#x2a;<bold>q</bold>&#x2b;7), (7&#x2a;<bold>q</bold>&#x2b;8))</p>
<p>&#x23;&#x23; non-zero interaction effects</p>
<p>tp.interaction &#x3d; <bold>c</bold>((<bold>q</bold>&#x2b;2), (<bold>q</bold>&#x2b;6), (<bold>q</bold>&#x2b;4), (2&#x2a;<bold>q</bold>&#x2b;3), (2&#x2a;<bold>q</bold>&#x2b;7), (2&#x2a;<bold>q</bold>&#x2b;5),</p>
<p>(3&#x2a;<bold>q</bold>&#x2b;4), (3&#x2a;<bold>q</bold>&#x2b;8), (3&#x2a;<bold>q</bold>&#x2b;6), (4&#x2a;<bold>q</bold>&#x2b;5), (4&#x2a;<bold>q</bold>&#x2b;9), (4&#x2a;<bold>q</bold>&#x2b;7), (5&#x2a;<bold>q</bold>&#x2b;6), (5&#x2a;<bold>q</bold>&#x2b;10),</p>
<p>(5&#x2a;<bold>q</bold>&#x2b;8), (6&#x2a;<bold>q</bold>&#x2b;7), (6&#x2a;<bold>q</bold>&#x2b;11), (6&#x2a;<bold>q</bold>&#x2b;9))&#x2b;1</p>
<p>We run the codes in R console to evaluate the accuracy in parameter estimation. The precision in estimating the regression coefficients has been assessed based on <monospace>TMSE</monospace>, <monospace>MSE</monospace>, and <monospace>NMSE</monospace>, respectively. The mean squared error of the fitted coefficient vector <monospace>fit.beta</monospace> with respect to the true one, denoted as <monospace>TMSE</monospace>, is defined as<disp-formula id="equ9">
<mml:math id="m64">
<mml:mtext>TMSE</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>p</mml:mi>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:mo>,</mml:mo>
</mml:math>
</disp-formula>where <inline-formula id="inf50">
<mml:math id="m65">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> corresponds to <monospace>fit.beta</monospace> and <italic>&#x3b2;</italic>
<sub>
<italic>n</italic>
</sub> is the true regression coefficient vector used to generate the response in the data-generating function. In this simulation example, there are 100 genetic factors (<italic>p</italic> &#x3d; 100) and 5 environmental factors (<italic>q</italic> &#x3d; 5), resulting in a coefficient vector of length 606, including the intercept. To observe the estimation accuracy on a finer scale, we further dissect <italic>&#x3b2;</italic>
<sub>
<italic>n</italic>
</sub> into the component corresponding to <monospace>tp</monospace> and calculate the mean square error with respect to the counterpart from <monospace>fit.beta</monospace>, denoted as <monospace>MSE</monospace>. The mean square error is computed based on the rest of <monospace>fit.beta</monospace>, and <italic>&#x3b2;</italic>
<sub>
<italic>n</italic>
</sub> is defined as <monospace>NMSE</monospace>. The R codes and output are listed as follows:</p>
<p>coeff &#x3d; <bold>matrix</bold> (fit.<bold>beta</bold>, <bold>length</bold> (fit.<bold>beta</bold>),1)</p>
<p>coeff.train &#x3d; <bold>rep</bold> (0,<bold>length</bold> (coeff))</p>
<p>coeff.train [tp] &#x3d; dat.train$<bold>coef</bold>[-1]</p>
<p>TMSE &#x3d; <bold>mean</bold> ((coeff-coeff.train)&#x5e;2)</p>
<p>MSE &#x3d; <bold>mean</bold> ((coeff [tp]-coeff.train [tp])&#x5e;2)</p>
<p>NMSE &#x3d; <bold>mean</bold> ((coeff [-tp]-coeff.train [-tp])&#x5e;2)</p>
<p>&#x3e; TMSE</p>
<p>[1] 0.003455488</p>
<p>&#x3e; MSE</p>
<p>[1] 0.06563788</p>
<p>&#x3e; NMSE</p>
<p>[1] 0.0002168221</p>
<p>The <monospace>dat.train$coef</monospace> only consists of the non-zero coefficients used to generate longitudinal responses in the data-generating model; therefore, its dimension is not the same as <monospace>fit.beta</monospace> as the estimated regression coefficient vector is sparse and includes zero coefficient, thus having a much larger dimension. In regularized variable selection, the non-zero coefficients from <monospace>fit.beta</monospace> will not be identical to those in <monospace>dat.train$coef</monospace> due to the shrinkage estimation in order to achieve variable selection. The aforementioned output shows the estimation errors in terms of <monospace>TMSE</monospace>, <monospace>MSE</monospace>, and <monospace>NMSE</monospace>, respectively. The <monospace>NMSE</monospace> is much smaller than the <monospace>MSE</monospace> since it computes the MSE with respect to zero coefficients.</p>
<p>In addition to evaluating the accuracy in parameter estimation, we also examine the performance in identification in terms of number of true- and false-positive effects. Specifically, by comparing the locations of the non-zero components in <monospace>fit.beta</monospace> and the true coefficient vector used in the data-generating model, we can report the total number of true- and false-positive effects, such as <monospace>TP</monospace> and <monospace>FP</monospace>. The identification results have also been summarized for the main genetic effects (<monospace>TP1</monospace> and <monospace>FP1</monospace>) and G&#xd7;E interactions (<monospace>TP2</monospace> and <monospace>FP2</monospace>). The locations of important effects saved in <monospace>tp</monospace> obtained from the chunk of R codes previously also include the environmental main effects that are not subject to selection. When calculating the number of true and false positives in the next section, we only count the effects that are under selection, corresponding to the 7&#xa0;G factors and 18&#xa0;G&#xd7;E interactions. The output is provided in the following section.</p>
<p>coeff [<bold>abs</bold> (coeff) &#x3c; 0.1] &#x3d; 0</p>
<p>coeff [1: (1 &#x2b; <bold>q</bold>)] &#x3d; 0</p>
<p>ids &#x3d; <bold>which</bold> (coeff !&#x3d; 0)</p>
<p>TP &#x3d; <bold>length</bold> (<bold>intersect</bold> (tp,ids))</p>
<p>res &#x3d; ids [<bold>is</bold>.<bold>na</bold> (<bold>pmatch</bold> (ids,tp))]</p>
<p>FP &#x3d; <bold>length</bold> (res)</p>
<p>coeff1 &#x3d; <bold>rep</bold> (0,<bold>length</bold> (coeff))</p>
<p>coeff1 [1: (1 &#x2b; <bold>q</bold>)] &#x3d; coeff [1: (1 &#x2b; q)]</p>
<p>for (i in (<bold>q</bold>&#x2b;2):<bold>length</bold> (coeff)) {</p>
<p>
<monospace>
<bold>if</bold> ( i%%(<bold>q</bold>&#x2b;1)&#x3d;&#x3d;1) coeff1 [i]&#x3d; coeff[i]</monospace>
</p>
<p>}</p>
<p>ids1 &#x3d; <bold>which</bold> (coeff1 !&#x3d; 0)</p>
<p>TP1 &#x3d; <bold>length</bold> (intersect (tp.main,ids1))</p>
<p>res1 &#x3d; ids1 [<bold>is</bold>.<bold>na</bold> (<bold>pmatch</bold> (ids1,tp.main))]</p>
<p>FP1 &#x3d; <bold>length</bold> (res1)</p>
<p>coeff2 &#x3d; coeff</p>
<p>coeff2 [1: (1 &#x2b; q)] &#x3d; 0</p>
<p>
<bold>for</bold> (i in (<bold>q</bold>&#x2b;2):<bold>length</bold> (coeff)) {</p>
<p>
<monospace>
<bold>if</bold> ( i%%(<bold>q</bold>&#x2b;1)&#x3d;&#x3d;1) coeff2[i] &#x3d; 0</monospace>
</p>
<p>}</p>
<p>ids2 &#x3d; <bold>which</bold> (coeff2 !&#x3d; 0)</p>
<p>TP2 &#x3d; <bold>length</bold> (<bold>intersect</bold> (tp.<bold>interaction</bold>,ids2))</p>
<p>res2 &#x3d; ids2 [<bold>is</bold>.<bold>na</bold> (<bold>pmatch</bold> (ids2,tp.<bold>interaction</bold>))]</p>
<p>FP2 &#x3d; <bold>length</bold> (res2)</p>
<p>&#x3e; TP</p>
<p>[1] 21</p>
<p>&#x3e; FP</p>
<p>[1] 3</p>
<p>&#x3e; TP1</p>
<p>[1] 6</p>
<p>&#x3e; FP1</p>
<p>[1] 0</p>
<p>&#x3e; TP2</p>
<p>[1] 15</p>
<p>&#x3e; FP2</p>
<p>[1] 3</p>
<p>Results on true and false positives indicate that six out of the seven important main effects have been identified, and 15 out of the 18 interactions used in the data-generating model have been detected. The number of identified false-positive effects is three.</p>
<p>In addition to extensive simulation studies that demonstrate the merit of the proposed sparse group variable selection in longitudinal studies, <xref ref-type="bibr" rid="B50">Zhou et al. (2022a)</xref> have also considered scenarios in the presence of missing measurements (<xref ref-type="bibr" rid="B34">Rubin, 1976</xref>; <xref ref-type="bibr" rid="B23">Little and Rubin, 2019</xref>). Under the pattern of missing completely at random (MCAR), the penalized QIF procedure can still be implemented by using a transformation matrix to accommodate missingness. Such a data-transformation procedure will be incorporated in the release of package <italic>springer</italic> in the near future.</p>
<p>The current version of package <italic>springer</italic> (version 0.1.7) has implemented three working correlation matrices, independence, AR-1, and exchangeable, for individual-, group-, and bi-level variable selection under continuous longitudinal responses in both the GEE and QIF frameworks. The future improvement includes incorporating other working correlations, such as the unstructured working correlation. A question worth exploring is the computational feasibility of unstructured working correlation under QIF as the large number of covariance parameters will potentially lead to much more complicated extended score vectors, incurring prohibitively heavy computational cost for high-dimensional data. We will also consider extensions to discrete responses such as binary, count, and multinomial responses, and longitudinally measured clinical, environmental, and genetic factors, especially after these data are available.</p>
</sec>
<sec id="s5">
<title>5 Case study</title>
<p>We adopt package <italic>springer</italic> to analyze the high-dimensional longitudinal data from the Childhood Asthma Management Program (<xref ref-type="bibr" rid="B3">Childhood Asthma Management Program Research Group, 1999</xref>; <xref ref-type="bibr" rid="B4">Childhood Asthma Management Program Research Group Szefler et al., 2000</xref>; <xref ref-type="bibr" rid="B7">Covar et al., 2012</xref>). Children with age between 5 and 12&#xa0;years, who are diagnosed with chronic asthma have been included in the study and monitored through follow-up visits over 4&#xa0;years. The response variable is the forced expiratory volume in one second (FEV1), which indicates the amount of air one can expel from the lungs in one second. We focus on FEV1 that has been repeatedly measured during the 12 visits after the application of treatment ( budesonide, nedocromil, and Control). For our gene&#x2013;environment interaction analysis, the G factors are the single nucleotide polymorphisms, and E factors consist of treatment, age, and gender. For the demonstration purpose, we target SNPs based on the genes from chromosome 6 and the Wnt signaling pathway at the same time, resulting in a total of 203 SNPs. Following the NIH guideline, we cannot share the data publicly or disclose them in the R output. The data can be applied from dbGap through the accession number phs000166.v2.p1.</p>
<p>&#x23; the longitudinal FEV1</p>
<p>&#x3e; <bold>dim</bold>(ylong)</p>
<p>[1] 438 12</p>
<p>&#x23; environmental factors (treatment, age, gender)</p>
<p>&#x3e; <bold>dim</bold>(e)</p>
<p>[1] 438 3</p>
<p>&#x23; genetic factos (SNP)</p>
<p>&#x3e; <bold>dim</bold>(X)</p>
<p>[1] 438 203</p>
<p>Both the environmental and genetic factors are cross-sectional. For example, as shown previously, each of the three E factors is a 438-by-1-column vector, forming a 438-by-3 matrix. We obtained the optimal tuning parameters using function <monospace>cv.springer</monospace>. One can start the process by defining a grid interval for each tuning parameter. We applied the <monospace>cv.springer</monospace> function with estimating function type <monospace>func &#x3d; &#x201d;QIF&#x201d;</monospace> and working correlation matrix type <monospace>corr &#x3d; &#x201d;exchangeable&#x201d;</monospace> as follows:</p>
<p>&#x3e; <bold>library</bold> (springer)</p>
<p>&#x3e; <italic>&#x23;define input arguments</italic>
</p>
<p>&#x3e; lambda1 &#x3d; <bold>seq</bold> (0.5,1,<bold>length</bold>.out &#x3d; 5)</p>
<p>&#x3e; lambda2 &#x3d; <bold>seq</bold> (3,3.5,<bold>length</bold>.out &#x3d; 5)</p>
<p>&#x3e; <italic>&#x23;run cross-validation</italic>
</p>
<p>&#x3e; tunning &#x3d; cv.springer (clin &#x3d; NULL, e, X, ylong, beta0, lambda1,</p>
<p>&#x2b; lambda2, nfolds &#x3d; 5, func &#x3d; "QIF&#x201d;, corr &#x3d; "exchangeable",</p>
<p>&#x2b; <bold>structure</bold> &#x3d; "bilevel&#x201d;, maxits &#x3d; 30, tol &#x3d; 0.001)</p>
<p>&#x3e; <italic>&#x23;print the results</italic>
</p>
<p>&#x3e; <bold>print</bold> (tuning)</p>
<p>$lam1</p>
<p>[1] 0.5</p>
<p>$lam2</p>
<p>[1] 3</p>
<p>$CV</p>
<p>[,1] [,2] [,3] [,4] [,5]</p>
<p>[1,] 0.2827513 0.2838438 0.2846629 0.2855799 0.2865723</p>
<p>[2,] 0.2858653 0.2867847 0.2877162 0.2885925 0.2894861</p>
<p>[3,] 0.2884425 0.2897974 0.2906588 0.2916546 0.2925146</p>
<p>[4,] 0.2919309 0.2927759 0.2936686 0.2945191 0.2954699</p>
<p>[5,] 0.2948042 0.2954983 0.2962844 0.2971886 0.2979241</p>
<p>The optimal tuning parameters within the range have been selected as 0.5 and 3 for lambda1 and lambda2, respectively. We have then applied the <monospace>springer</monospace> function to the dataset using the optimal tuning parameters as follows:</p>
<p>&#x3e; &#x23;fit the bi-level selection model</p>
<p>&#x3e; <bold>beta</bold> &#x3d; springer (clin &#x3d; NULL, e, X, ylong, beta0, func &#x3d; "QIF",</p>
<p>&#x2b; corr &#x3d; "exchangeable&#x201d;, <bold>structure</bold> &#x3d; "bilevel&#x201d;, lam1, lam2,</p>
<p>&#x2b; maxits &#x3d; 30, tol &#x3d; 0.001)</p>
<p>The <monospace>springer</monospace> function returns the estimated coefficients for the intercept, environmental factors, genetic factors, and G&#xd7;E interactions. We organized the output to show the identified genetic main effects and G&#xd7;E interactions in <xref ref-type="table" rid="T1">Table 1</xref>. The selected SNPs and the corresponding genes are listed in the first two columns. The last four columns contain the estimated coefficients of the main effects for each SNP and the corresponding interactions between the SNPs and environmental factors .</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Identified main and interaction effects based on the genes from the Wnt signaling pathway on chromosome 6.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">SNP</th>
<th align="center">Gene</th>
<th align="left"/>
<th align="center">Treatment</th>
<th align="center">Age</th>
<th align="center">Gender</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">rs10948011</td>
<td align="center">TAF8</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">&#x2212;0.020</td>
</tr>
<tr>
<td align="center">rs33954419</td>
<td align="center">USP49</td>
<td align="center">&#x2212;0.012</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs12194513</td>
<td align="center">TAF8</td>
<td align="center">0.005</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs205339</td>
<td align="center">MAP3K7</td>
<td align="center">0.016</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs11970772</td>
<td align="center">CCND3</td>
<td align="center">0</td>
<td align="center">0.102</td>
<td align="center">0</td>
<td align="center">0.069</td>
</tr>
<tr>
<td align="center">rs1018155</td>
<td align="center">DAAM2</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">&#x2212;0.169</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs913574</td>
<td align="center">DAAM2</td>
<td align="center">0</td>
<td align="center">&#x2212;0.020</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs13191407</td>
<td align="center">MAP3K7</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">&#x2212;0.009</td>
<td align="center">&#x2212;0.023</td>
</tr>
<tr>
<td align="center">rs2475802</td>
<td align="center">MOCS1</td>
<td align="center">0.095</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs805300</td>
<td align="center">BAG6</td>
<td align="center">&#x2212;0.110</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs1475114</td>
<td align="center">MOCS1</td>
<td align="center">&#x2212;0.047</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs1018156</td>
<td align="center">DAAM2</td>
<td align="center">&#x2212;0.045</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs4607417</td>
<td align="center">CCND3</td>
<td align="center">0</td>
<td align="center">&#x2212;0.108</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs284513</td>
<td align="center">MAP3K7</td>
<td align="center">0</td>
<td align="center">0.040</td>
<td align="center">0.075</td>
<td align="center">0.011</td>
</tr>
<tr>
<td align="center">rs17812916</td>
<td align="center">RSPO3</td>
<td align="center">0</td>
<td align="center">0.021</td>
<td align="center">0</td>
<td align="center">0.208</td>
</tr>
<tr>
<td align="center">rs2077102</td>
<td align="center">BAG6</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">&#x2212;0.266</td>
<td align="center">&#x2212;0.016</td>
</tr>
<tr>
<td align="center">rs3218100</td>
<td align="center">CCND3</td>
<td align="center">0.003</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs2242655</td>
<td align="center">C6orf47</td>
<td align="center">&#x2212;0.046</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs2493835</td>
<td align="center">TAF8</td>
<td align="center">0.056</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs9491700</td>
<td align="center">RSPO3</td>
<td align="center">0.009</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs3008819</td>
<td align="center">MOCS1</td>
<td align="center">&#x2212;0.021</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs2255741</td>
<td align="center">PRRC2A</td>
<td align="center">0.066</td>
<td align="center">&#x2212;0.021</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs3003931</td>
<td align="center">DAAM2</td>
<td align="center">0.004</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs791048</td>
<td align="center">MAP3K7</td>
<td align="center">0</td>
<td align="center">0.080</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs9285458</td>
<td align="center">RSPO3</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">&#x2212;0.049</td>
<td align="center">&#x2212;0.078</td>
</tr>
<tr>
<td align="center">rs3008801</td>
<td align="center">DAAM2</td>
<td align="center">&#x2212;0.072</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs9462082</td>
<td align="center">PPARD</td>
<td align="center">0.026</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs166920</td>
<td align="center">MAP3K7</td>
<td align="center">&#x2212;0.009</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs1144159</td>
<td align="center">MAP3K7</td>
<td align="center">0.091</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs284512</td>
<td align="center">MAP3K7</td>
<td align="center">0</td>
<td align="center">&#x2212;0.101</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs719726</td>
<td align="center">RSPO3</td>
<td align="center">0</td>
<td align="center">&#x2212;0.028</td>
<td align="center">0.020</td>
<td align="center">0.130</td>
</tr>
<tr>
<td align="center">rs6916203</td>
<td align="center">DAAM2</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0.010</td>
</tr>
<tr>
<td align="center">rs2504097</td>
<td align="center">DAAM2</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">&#x2212;0.034</td>
</tr>
<tr>
<td align="center">rs4713858</td>
<td align="center">FANCE</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">&#x2212;0.139</td>
<td align="center">0.157</td>
</tr>
<tr>
<td align="center">rs1936789</td>
<td align="center">RSPO3</td>
<td align="center">0</td>
<td align="center">&#x2212;0.030</td>
<td align="center">&#x2212;0.044</td>
<td align="center">0.072</td>
</tr>
<tr>
<td align="center">rs1923084</td>
<td align="center">MAP3K7</td>
<td align="center">0</td>
<td align="center">&#x2212;0.163</td>
<td align="center">0</td>
<td align="center">0.315</td>
</tr>
<tr>
<td align="center">rs9462769</td>
<td align="center">C6orf132</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">&#x2212;0.094</td>
<td align="center">&#x2212;0.138</td>
</tr>
<tr>
<td align="center">rs11759168</td>
<td align="center">DAAM2</td>
<td align="center">0.173</td>
<td align="center">0.027</td>
<td align="center">0</td>
<td align="center">&#x2212;0.174</td>
</tr>
<tr>
<td align="center">rs707917</td>
<td align="center">ABHD16A</td>
<td align="center">&#x2212;0.096</td>
<td align="center">0</td>
<td align="center">0.196</td>
<td align="center">0.001</td>
</tr>
<tr>
<td align="center">rs9267531</td>
<td align="center">CSNK2B</td>
<td align="center">&#x2212;0.141</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs9394630</td>
<td align="center">DAAM2</td>
<td align="center">0.116</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs2504790</td>
<td align="center">DAAM2</td>
<td align="center">&#x2212;0.133</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs2750456</td>
<td align="center">MAP3K7</td>
<td align="center">&#x2212;0.052</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs3003933</td>
<td align="center">DAAM2</td>
<td align="center">&#x2212;0.073</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs2984659</td>
<td align="center">MOCS1</td>
<td align="center">0.004</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs282065</td>
<td align="center">MAP3K7</td>
<td align="center">0.076</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">rs2504805</td>
<td align="center">DAAM2</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0.122</td>
</tr>
<tr>
<td align="center">rs1046080</td>
<td align="center">PRRC2A</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">&#x2212;0.184</td>
<td align="center">0</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec sec-type="discussion" id="s6">
<title>6 Discussion</title>
<p>Before the formulation of the bi-level (or sparse group) selection in high-dimensional statistics (<xref ref-type="bibr" rid="B13">Friedman et al., 2010b</xref>), the relevant statistical models have already been extensively studied in genetic association studies (<xref ref-type="bibr" rid="B20">Lewis, 2002</xref>; <xref ref-type="bibr" rid="B45">Wu et al., 2012</xref>), which involve the simultaneous selection of important pathways (or gene sets) and corresponding genes within the pathways (or gene sets) (<xref ref-type="bibr" rid="B35">Schaid et al., 2012</xref>; <xref ref-type="bibr" rid="B43">Wu and Cui, 2014</xref>; <xref ref-type="bibr" rid="B19">Jiang et al., 2017</xref>). For G&#xd7;E interaction studies, the bi-level selection has served as the umbrella model and led to a wide array of extensions (<xref ref-type="bibr" rid="B54">Zhou et al., 2021a</xref>).</p>
<p>Package <italic>springer</italic> cannot be applied directly on the ultra-high-dimensional data (<xref ref-type="bibr" rid="B11">Fan and Lv, 2008</xref>), which is essentially due to the limitation of regularization methods. A more viable path is to conduct marginal screening first and then apply regularization methods on a smaller set of features suitable for penalized selection (<xref ref-type="bibr" rid="B18">Jiang et al., 2015</xref>; <xref ref-type="bibr" rid="B21">Li et al., 2015</xref>; <xref ref-type="bibr" rid="B48">Wu et al., 2019</xref>). In fact, such an idea on screening has motivated the migration of joint analyses to marginal penalization in recent G&#xd7;E studies (<xref ref-type="bibr" rid="B1">Chai et al., 2017</xref>; <xref ref-type="bibr" rid="B25">Lu et al., 2021</xref>; <xref ref-type="bibr" rid="B39">Wang et al., 2022</xref>). It is marginal in the sense that only the main and interaction effects with respect to the same G factor are considered in the model. Thus, marginal penalization is of a parallel nature and suitable for handling the ultra-high-dimensional data. To use our R package conducting marginal regularization on the ultra-high-dimensional longitudinal data, we just need to set the argument <monospace>g</monospace> in function <monospace>springer</monospace> to one genetic factor at a time, which will return the regression coefficients for all the clinical and environmental factors and main G and G&#xd7;E interactions with respect to that G factor. The magnitude of the coefficients corresponding to the effects subject to the selection will be used as the measure for ranking and selecting important effects.</p>
<p>Robust penalization methods have drawn increasing attention in recent years (<xref ref-type="bibr" rid="B12">Freue et al., 2019</xref>; <xref ref-type="bibr" rid="B15">Hu et al., 2021</xref>; <xref ref-type="bibr" rid="B2">Chen et al., 2022</xref>; <xref ref-type="bibr" rid="B36">Sun et al., 2022</xref>). In high-dimensional longitudinal studies, incorporation of robustness is more challenging. The corresponding variable selection methods are expected to be insensitive to not only the outliers and data contaminations but also to misspecification of working correlation structure capturing the correlations among repeated measurements. It has been widely recognized that GEE is vulnerable to long-tailed distributions in the response variable, even though it yields consistent estimates when working correlations are misspecified (<xref ref-type="bibr" rid="B28">Qu and Song, 2004</xref>). Therefore, the more robust QIF emerges as a powerful alternative for developing variable selection methods. Our R package <italic>springer</italic> can facilitate further understanding of robustness in bi-level selection models.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s7">
<title>Data availability statement</title>
<p>The original contributions presented in the study are included in the article/<xref ref-type="sec" rid="s11">Supplementary Material</xref>; further inquiries can be directed to the corresponding author. Authorized access should be granted before accessing the data analyzed in the case study. Request to access the data should be sent to Database of Genotype and Phenotype (dbGaP) at <ext-link ext-link-type="uri" xlink:href="https://www.ncbi.nlm.nih.gov/projects/gap/cgi-bin/study.cgi?study_id=phs000166.v2.p1">https://www.ncbi.nlm.nih.gov/projects/gap/cgi-bin/study.cgi?study_id&#x3d;phs000166.v2.p1</ext-link> through accession number phs000166.v2.p1.</p>
</sec>
<sec id="s8">
<title>Author contributions</title>
<p>Conceptualization: FZ, JR, and CW; resources: WW and CW; methodology: FZ, YL, JR, and CW; writing&#x2014;original draft preparation: FZ, YL, and CW; software: FZ, YL, JR, and CW; data analysis: YL, FZ, and CW; writing&#x2014;review and editing: all authors; supervision: CW; project administration: CW; funding acquisition: CW and WW.</p>
</sec>
<ack>
<p>The authors thank the editor and reviewer for their careful review and insightful comments, leading to a significant improvement of this article. This work was partially supported by an Innovative Research Award from the Johnson Cancer Research Center at Kansas State University.</p>
</ack>
<sec sec-type="COI-statement" id="s9">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s10">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors, and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<sec id="s11">
<title>Supplementary material</title>
<p>The Supplementary Material for this article can be found online at: <ext-link ext-link-type="uri" xlink:href="https://www.frontiersin.org/articles/10.3389/fgene.2023.1088223/full#supplementary-material">https://www.frontiersin.org/articles/10.3389/fgene.2023.1088223/full&#x23;supplementary-material</ext-link>
<ext-link ext-link-type="uri" xlink:href="https://www.frontiersin.org/articles/10.3389/fgene.2023.1088223/full#supplementary-material"/>
</p>
<supplementary-material xlink:href="DataSheet1.pdf" id="SM1" mimetype="application/pdf" xmlns:xlink="http://www.w3.org/1999/xlink"/>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chai</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Jiang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Ahmed</surname>
<given-names>S. E.</given-names>
</name>
<etal/>
</person-group> (<year>2017</year>). <article-title>Identifying gene-environment interactions for prognosis using a robust approach</article-title>. <source>Econ. statistics</source> <volume>4</volume>, <fpage>105</fpage>&#x2013;<lpage>120</lpage>. <pub-id pub-id-type="doi">10.1016/j.ecosta.2016.10.004</pub-id>
</citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Bie</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Qin</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Lq-based robust analytics on ultrahigh and high dimensional data</article-title>. <source>Statistics Med.</source> <volume>41</volume>, <fpage>5220</fpage>. <pub-id pub-id-type="doi">10.1002/sim.9563</pub-id>
</citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<collab>Childhood Asthma Management Program Research Group</collab> (<year>1999</year>). <article-title>The childhood asthma management program (CAMP): Design, rationale, and methods. Childhood asthma management program research group</article-title>. <source>Control. Clin. trials</source> <volume>20</volume> (<issue>1</issue>), <fpage>91</fpage>&#x2013;<lpage>120</lpage>.</citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<collab>Childhood Asthma Management Program Research Group</collab>
<person-group person-group-type="author">
<name>
<surname>Szefler</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Weiss</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Tonascia</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Adkinson</surname>
<given-names>N. F.</given-names>
</name>
<name>
<surname>Bender</surname>
<given-names>B.</given-names>
</name>
<etal/>
</person-group> (<year>2000</year>). <article-title>Long-term effects of budesonide or nedocromil in children with asthma</article-title>. <source>N. Engl. J. Med.</source> <volume>343</volume> (<issue>15</issue>), <fpage>1054</fpage>&#x2013;<lpage>1063</lpage>. <pub-id pub-id-type="doi">10.1056/NEJM200010123431501</pub-id>
</citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Cho</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Qu</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Model selection for correlated data with diverging number of parameters</article-title>. <source>Stat. Sin.</source> <volume>23</volume> (<issue>2</issue>), <fpage>901</fpage>&#x2013;<lpage>927</lpage>. <pub-id pub-id-type="doi">10.5705/ss.2011.058</pub-id>
</citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Reimherr</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Feature screening for time-varying coefficient models with ultrahigh dimensional longitudinal data</article-title>. <source>Ann. Appl. statistics</source> <volume>10</volume> (<issue>2</issue>), <fpage>596</fpage>&#x2013;<lpage>617</lpage>. <pub-id pub-id-type="doi">10.1214/16-AOAS912</pub-id>
</citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Covar</surname>
<given-names>R. A.</given-names>
</name>
<name>
<surname>Fuhlbrigge</surname>
<given-names>A. L.</given-names>
</name>
<name>
<surname>Williams</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Kelly</surname>
<given-names>H. W.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>The childhood asthma management program (camp): Contributions to the understanding of therapy and the natural history of childhood asthma</article-title>. <source>Curr. Respir. Care Rep.</source> <volume>1</volume> (<issue>4</issue>), <fpage>243</fpage>&#x2013;<lpage>250</lpage>. <pub-id pub-id-type="doi">10.1007/s13665-012-0026-9</pub-id>
</citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Eddelbuettel</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Fran&#xe7;ois</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2011</year>). <article-title>Rcpp: Seamless R and C&#x2b;&#x2b; integration</article-title>. <source>J. Stat. Softw.</source> <volume>40</volume>, <fpage>1</fpage>&#x2013;<lpage>18</lpage>. <pub-id pub-id-type="doi">10.18637/jss.v040.i08</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Eddelbuettel</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Sanderson</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Rcpparmadillo: Accelerating r with high-performance C&#x2b;&#x2b; linear algebra</article-title>. <source>Comput. Statistics Data Analysis</source> <volume>71</volume>, <fpage>1054</fpage>&#x2013;<lpage>1063</lpage>. <pub-id pub-id-type="doi">10.1016/j.csda.2013.02.005</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Eddelbuettel</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2013</year>). <source>Seamless R and C&#x2b;&#x2b; integration with Rcpp</source>. <publisher-loc>Berlin, Germany</publisher-loc>: <publisher-name>Springer</publisher-name>.</citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Fan</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Lv</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2008</year>). <article-title>Sure independence screening for ultrahigh dimensional feature space</article-title>. <source>J. R. Stat. Soc. Ser. B Stat. Methodol.</source> <volume>70</volume> (<issue>5</issue>), <fpage>849</fpage>&#x2013;<lpage>911</lpage>. <pub-id pub-id-type="doi">10.1111/j.1467-9868.2008.00674.x</pub-id>
</citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Freue</surname>
<given-names>G. V. C.</given-names>
</name>
<name>
<surname>Kepplinger</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Salibi&#xe1;n-Barrera</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Smucler</surname>
<given-names>E.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Robust elastic net estimators for variable selection and identification of proteomic biomarkers</article-title>. <source>Ann. Appl. Statistics</source> <volume>13</volume> (<issue>4</issue>), <fpage>2065</fpage>&#x2013;<lpage>2090</lpage>. <pub-id pub-id-type="doi">10.1214/19-AOAS1269</pub-id>
</citation>
</ref>
<ref id="B13">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Friedman</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Hastie</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Tibshirani</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2010</year>). <source>A note on the group lasso and a sparse group lasso</source>. <comment>
<italic>arXiv preprint arXiv:1001.0736</italic>
</comment>.</citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Friedman</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Hastie</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Tibshirani</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2010</year>). <article-title>Regularization paths for generalized linear models via coordinate descent</article-title>. <source>J. Stat. Softw.</source> <volume>33</volume> (<issue>1</issue>), <fpage>1</fpage>&#x2013;<lpage>22</lpage>. <pub-id pub-id-type="doi">10.18637/jss.v033.i01</pub-id>
</citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Tong</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Meta-analyzing multiple omics data with robust variable selection</article-title>. <source>Front. Genet.</source> <volume>1029</volume>, <fpage>656826</fpage>. <pub-id pub-id-type="doi">10.3389/fgene.2021.656826</pub-id>
</citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Huang</surname>
<given-names>H. H.</given-names>
</name>
<name>
<surname>Peng</surname>
<given-names>X. D.</given-names>
</name>
<name>
<surname>Liang</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Splsn: An efficient tool for survival analysis and biomarker selection</article-title>. <source>Int. J. Intelligent Syst.</source> <volume>36</volume> (<issue>10</issue>), <fpage>5845</fpage>&#x2013;<lpage>5865</lpage>. <pub-id pub-id-type="doi">10.1002/int.22532</pub-id>
</citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Inan</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Pgee: An r package for analysis of longitudinal data with high-dimensional covariates</article-title>. <source>R J.</source> <volume>9</volume> (<issue>1</issue>), <fpage>393</fpage>. <pub-id pub-id-type="doi">10.32614/rj-2017-030</pub-id>
</citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jiang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Ye</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Lacaze</surname>
<given-names>X.</given-names>
</name>
<etal/>
</person-group> (<year>2015</year>). <article-title>2HiGWAS: A unifying high-dimensional platform to infer the global genetic architecture of trait development</article-title>. <source>Briefings Bioinforma.</source> <volume>16</volume> (<issue>6</issue>), <fpage>905</fpage>&#x2013;<lpage>911</lpage>. <pub-id pub-id-type="doi">10.1093/bib/bbv002</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jiang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Du</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Ren</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>S.</given-names>
</name>
<etal/>
</person-group> (<year>2017</year>). <article-title>Identification of prognostic genes and pathways in lung adenocarcinoma using a bayesian approach</article-title>. <source>Cancer Inf.</source> <volume>16</volume>, <fpage>1176935116684825</fpage>. <pub-id pub-id-type="doi">10.1177/1176935116684825</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lewis</surname>
<given-names>C. M.</given-names>
</name>
</person-group> (<year>2002</year>). <article-title>Genetic association studies: Design, analysis and interpretation</article-title>. <source>Briefings Bioinforma.</source> <volume>3</volume> (<issue>2</issue>), <fpage>146</fpage>&#x2013;<lpage>153</lpage>. <pub-id pub-id-type="doi">10.1093/bib/3.2.146</pub-id>
</citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Bayesian group lasso for nonparametric varying-coefficient models with application to functional genome-wide association studies</article-title>. <source>Ann. Appl. statistics</source> <volume>9</volume> (<issue>2</issue>), <fpage>640</fpage>&#x2013;<lpage>664</lpage>. <pub-id pub-id-type="doi">10.1214/15-AOAS808</pub-id>
</citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liang</surname>
<given-names>K.-Y.</given-names>
</name>
<name>
<surname>Zeger</surname>
<given-names>S. L.</given-names>
</name>
</person-group> (<year>1986</year>). <article-title>Longitudinal data analysis using generalized linear models</article-title>. <source>Biometrika</source> <volume>73</volume> (<issue>1</issue>), <fpage>13</fpage>&#x2013;<lpage>22</lpage>. <pub-id pub-id-type="doi">10.1093/biomet/73.1.13</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Little</surname>
<given-names>R. J.</given-names>
</name>
<name>
<surname>Rubin</surname>
<given-names>D. B.</given-names>
</name>
</person-group> (<year>2019</year>). <source>Statistical analysis with missing data, vol. 793</source>. <publisher-loc>New York, NY, USA</publisher-loc>: <publisher-name>John Wiley &#x26; Sons</publisher-name>.</citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>A tree-based gene&#x2013;environment interaction analysis with rare features</article-title>. <source>Stat. Analysis Data Min. ASA Data Sci. J.</source> <volume>15</volume>, <fpage>648</fpage>&#x2013;<lpage>674</lpage>. <pub-id pub-id-type="doi">10.1002/sam.11578</pub-id>
</citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Fan</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Ren</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Identifying gene-environment interactions with robust marginal bayesian variable selection</article-title>. <source>Front. Genet.</source> <volume>12</volume>, <fpage>667074</fpage>. <pub-id pub-id-type="doi">10.3389/fgene.2021.667074</pub-id>
</citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ma</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Simultaneous variable selection and estimation in semiparametric modeling of longitudinal/clustered data</article-title>. <source>Bernoulli</source> <volume>19</volume> (<issue>1</issue>), <fpage>252</fpage>&#x2013;<lpage>274</lpage>. <pub-id pub-id-type="doi">10.3150/11-bej386</pub-id>
</citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Qu</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Lindsay</surname>
<given-names>B. G.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2000</year>). <article-title>Improving generalised estimating equations using quadratic inference functions</article-title>. <source>Biometrika</source> <volume>87</volume> (<issue>4</issue>), <fpage>823</fpage>&#x2013;<lpage>836</lpage>. <pub-id pub-id-type="doi">10.1093/biomet/87.4.823</pub-id>
</citation>
</ref>
<ref id="B28">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Qu</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>P. X.-K.</given-names>
</name>
</person-group> (<year>2004</year>). <article-title>Assessing robustness of generalised estimating equations and quadratic inference functions</article-title>. <source>Biometrika</source> <volume>91</volume> (<issue>2</issue>), <fpage>447</fpage>&#x2013;<lpage>459</lpage>. <pub-id pub-id-type="doi">10.1093/biomet/91.2.447</pub-id>
</citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ren</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Du</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Jiang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Robust network-based regularization and variable selection for high-dimensional genomic data in cancer prognosis</article-title>. <source>Genet. Epidemiol.</source> <volume>43</volume> (<issue>3</issue>), <fpage>276</fpage>&#x2013;<lpage>291</lpage>. <pub-id pub-id-type="doi">10.1002/gepi.22194</pub-id>
</citation>
</ref>
<ref id="B30">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ren</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Du</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Jiang</surname>
<given-names>Y.</given-names>
</name>
<etal/>
</person-group> (<year>2017</year>). <article-title>Network-based regularization for high dimensional snp data in the case&#x2013;control study of type 2 diabetes</article-title>. <source>BMC Genet.</source> <volume>18</volume> (<issue>1</issue>), <fpage>44</fpage>&#x2013;<lpage>12</lpage>. <pub-id pub-id-type="doi">10.1186/s12863-017-0495-5</pub-id>
</citation>
</ref>
<ref id="B31">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ren</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>S.</given-names>
</name>
<etal/>
</person-group> (<year>2020</year>). <article-title>Semiparametric bayesian variable selection for gene-environment interactions</article-title>. <source>Statistics Med.</source> <volume>39</volume> (<issue>5</issue>), <fpage>617</fpage>&#x2013;<lpage>638</lpage>. <pub-id pub-id-type="doi">10.1002/sim.8434</pub-id>
</citation>
</ref>
<ref id="B32">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ren</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Jiang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Robust bayesian variable selection for gene&#x2013;environment interactions</article-title>. <source>Biometrics</source>. <pub-id pub-id-type="doi">10.1111/biom.13670</pub-id>
</citation>
</ref>
<ref id="B33">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ren</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Q.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Gene&#x2013;environment interaction identification via penalized robust divergence</article-title>. <source>Biometrical J.</source> <volume>64</volume> (<issue>3</issue>), <fpage>461</fpage>&#x2013;<lpage>480</lpage>. <pub-id pub-id-type="doi">10.1002/bimj.202000157</pub-id>
</citation>
</ref>
<ref id="B34">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Rubin</surname>
<given-names>D. B.</given-names>
</name>
</person-group> (<year>1976</year>). <article-title>Inference and missing data</article-title>. <source>Biometrika</source> <volume>63</volume> (<issue>3</issue>), <fpage>581</fpage>&#x2013;<lpage>592</lpage>. <pub-id pub-id-type="doi">10.1093/biomet/63.3.581</pub-id>
</citation>
</ref>
<ref id="B35">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Schaid</surname>
<given-names>D. J.</given-names>
</name>
<name>
<surname>Sinnwell</surname>
<given-names>J. P.</given-names>
</name>
<name>
<surname>Jenkins</surname>
<given-names>G. D.</given-names>
</name>
<name>
<surname>McDonnell</surname>
<given-names>S. K.</given-names>
</name>
<name>
<surname>Ingle</surname>
<given-names>J. N.</given-names>
</name>
<name>
<surname>Kubo</surname>
<given-names>M.</given-names>
</name>
<etal/>
</person-group> (<year>2012</year>). <article-title>Using the gene ontology to scan multilevel gene sets for associations in genome wide association studies</article-title>. <source>Genet. Epidemiol.</source> <volume>36</volume> (<issue>1</issue>), <fpage>3</fpage>&#x2013;<lpage>16</lpage>. <pub-id pub-id-type="doi">10.1002/gepi.20632</pub-id>
</citation>
</ref>
<ref id="B36">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sun</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Luo</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Fan</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Robust structured heterogeneity analysis approach for high-dimensional data</article-title>. <source>Statistics Med.</source> <volume>41</volume>, <fpage>3229</fpage>. <pub-id pub-id-type="doi">10.1002/sim.9414</pub-id>
</citation>
</ref>
<ref id="B37">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>H. J.</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Variable selection in quantile varying coefficient models with longitudinal data</article-title>. <source>Comput. Statistics Data Analysis</source> <volume>57</volume> (<issue>1</issue>), <fpage>435</fpage>&#x2013;<lpage>449</lpage>. <pub-id pub-id-type="doi">10.1016/j.csda.2012.07.015</pub-id>
</citation>
</ref>
<ref id="B38">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Verbeke</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Fieuws</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Molenberghs</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Davidian</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>The analysis of multivariate longitudinal data: A review</article-title>. <source>Stat. methods Med. Res.</source> <volume>23</volume> (<issue>1</issue>), <fpage>42</fpage>&#x2013;<lpage>59</lpage>. <pub-id pub-id-type="doi">10.1177/0962280212445834</pub-id>
</citation>
</ref>
<ref id="B39">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>J. H.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>K. H.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>Y. H.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Overlapping group screening for detection of gene-environment interactions with application to tcga high-dimensional survival genomic data</article-title>. <source>BMC Bioinforma.</source> <volume>23</volume> (<issue>1</issue>), <fpage>202</fpage>&#x2013;<lpage>219</lpage>. <pub-id pub-id-type="doi">10.1186/s12859-022-04750-7</pub-id>
</citation>
</ref>
<ref id="B40">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>J. Z.</given-names>
</name>
</person-group> (<year>2008</year>). <article-title>Variable selection in nonparametric varying-coefficient models for analysis of repeated measurements</article-title>. <source>J. Am. Stat. Assoc.</source> <volume>103</volume> (<issue>484</issue>), <fpage>1556</fpage>&#x2013;<lpage>1569</lpage>. <pub-id pub-id-type="doi">10.1198/016214508000000788</pub-id>
</citation>
</ref>
<ref id="B41">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Qu</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>Penalized generalized estimating equations for high-dimensional longitudinal data analysis</article-title>. <source>Biometrics</source> <volume>68</volume> (<issue>2</issue>), <fpage>353</fpage>&#x2013;<lpage>360</lpage>. <pub-id pub-id-type="doi">10.1111/j.1541-0420.2011.01678.x</pub-id>
</citation>
</ref>
<ref id="B42">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Cui</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>A novel method for identifying nonlinear gene&#x2013;environment interactions in case&#x2013;control association studies</article-title>. <source>Hum. Genet.</source> <volume>132</volume> (<issue>12</issue>), <fpage>1413</fpage>&#x2013;<lpage>1425</lpage>. <pub-id pub-id-type="doi">10.1007/s00439-013-1350-z</pub-id>
</citation>
</ref>
<ref id="B43">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Cui</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Boosting signals in gene-based association studies via efficient snp selection</article-title>. <source>Briefings Bioinforma.</source> <volume>15</volume> (<issue>2</issue>), <fpage>279</fpage>&#x2013;<lpage>291</lpage>. <pub-id pub-id-type="doi">10.1093/bib/bbs087</pub-id>
</citation>
</ref>
<ref id="B44">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Jiang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Ren</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Cui</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Dissecting gene-environment interactions: A penalized robust approach accounting for hierarchical structures</article-title>. <source>Statistics Med.</source> <volume>37</volume> (<issue>3</issue>), <fpage>437</fpage>&#x2013;<lpage>456</lpage>. <pub-id pub-id-type="doi">10.1002/sim.7518</pub-id>
</citation>
</ref>
<ref id="B45">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Cui</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>Genetic association studies: An information content perspective</article-title>. <source>Curr. genomics</source> <volume>13</volume> (<issue>7</issue>), <fpage>566</fpage>&#x2013;<lpage>573</lpage>. <pub-id pub-id-type="doi">10.2174/138920212803251382</pub-id>
</citation>
</ref>
<ref id="B46">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>A selective review of robust variable selection with applications in bioinformatics</article-title>. <source>Briefings Bioinforma.</source> <volume>16</volume> (<issue>5</issue>), <fpage>873</fpage>&#x2013;<lpage>883</lpage>. <pub-id pub-id-type="doi">10.1093/bib/bbu046</pub-id>
</citation>
</ref>
<ref id="B47">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Zhong</surname>
<given-names>P.-S.</given-names>
</name>
<name>
<surname>Cui</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Additive varying-coefficient model for nonlinear gene-environment interactions</article-title>. <source>Stat. Appl. Genet. Mol. Biol.</source> <volume>17</volume> (<issue>2</issue>). <pub-id pub-id-type="doi">10.1515/sagmb-2017-0008</pub-id>
</citation>
</ref>
<ref id="B48">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Ren</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Jiang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>A selective review of multi-level omics data integration using variable selection</article-title>. <source>High-throughput</source> <volume>8</volume> (<issue>1</issue>), <fpage>4</fpage>. <pub-id pub-id-type="doi">10.3390/ht8010004</pub-id>
</citation>
</ref>
<ref id="B49">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>C. H.</given-names>
</name>
</person-group> (<year>2010</year>). <article-title>Nearly unbiased variable selection under minimax concave penalty</article-title>. <source>Ann. Statistics</source> <volume>38</volume> (<issue>2</issue>), <fpage>894</fpage>&#x2013;<lpage>942</lpage>. <pub-id pub-id-type="doi">10.1214/09-aos729</pub-id>
</citation>
</ref>
<ref id="B50">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Ren</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Fan</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Sparse group variable selection for gene&#x2013;environment interactions in the longitudinal study</article-title>. <source>Genet. Epidemiol.</source> <volume>46</volume> (<issue>5-6</issue>), <fpage>317</fpage>&#x2013;<lpage>340</lpage>. <pub-id pub-id-type="doi">10.1002/gepi.22461</pub-id>
</citation>
</ref>
<ref id="B51">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Ren</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2021</year>). <source>Package &#x2018;springer&#x2019;: Sparse group variable selection for gene-environment interactions in the longitudinal study</source>. <comment>R package version 0.1.2</comment>.</citation>
</ref>
<ref id="B52">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Ren</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Jiang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>W.</given-names>
</name>
<etal/>
</person-group> (<year>2019</year>). <article-title>Penalized variable selection for lipid&#x2013;environment interactions in a longitudinal lipidomics study</article-title>. <source>Genes.</source> <volume>10</volume> (<issue>12</issue>), <fpage>1002</fpage>. <pub-id pub-id-type="doi">10.3390/genes10121002</pub-id>
</citation>
</ref>
<ref id="B53">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Ren</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Interep: An r package for high-dimensional interaction analysis of the repeated measurement data</article-title>. <source>Genes.</source> <volume>13</volume> (<issue>3</issue>), <fpage>544</fpage>. <pub-id pub-id-type="doi">10.3390/genes13030544</pub-id>
</citation>
</ref>
<ref id="B54">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Ren</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Gene&#x2013;environment interaction: A variable selection perspective</article-title>. <source>Methods Mol. Biol.</source> <volume>2212</volume>, <fpage>191</fpage>&#x2013;<lpage>223</lpage>. <pub-id pub-id-type="doi">10.1007/978-1-0716-0947-7_13</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>