Application Center - Maplesoft

App Preview:

IndependenceModel package

You can switch back to the summary page by clicking here.

Learn about Maple
Download Application




The IndependenceModel Package

 

 

Valentina Triolo

 

Università degli Studi di Torino

Dipartimento di Matematica Giuseppe Peano

 

Italy

 

valentina.triolo@gmail.com

Introduction

 

 

• 

The main purpose of this work was to write a procedure to implement an algorithm based on the Diaconis Sturmfels algorithm to compute the Monte Carlo p-value of the model considered, but we  present a package containing also some preliminary commands that can be useful to everyone studying an independence model.

 

• 

The fact that independence models are algebraic toric models allows us to write general procedures to compute, for example, the parametric equations or the maximum likelihood estimation of the model, without knowing the set of random variables in advance.

 

• 

The following commands are available in the package:

 

  TableT                                          LabelT                                       NumberOfValues                          

  ListOfValues                                TableLabel                               PossibleObs             

  Freq                                               Parametric                                 Equatn           

  ModelMatrix                                 MaxLikeEst                              PearsonCoeff                            

  DiaconisSturmfels                   

 

• 

Data can be imported direcly from an Excel file, as explained in the TableT command instructions.

 

 

Description of commands

 

TableT

 

Calling Sequence

 

TableT("file.xls",sheet);

 

Parameters

 

file -  the name of the Excel file which contains the data to be imported.

sheet -  (optional) the name or index of the sheet containing the data (default: 1).

 

 

Description

 

The TableT command imports an Excel file using the ExcelTools package and converts it in the form needed for the use of other commands of the IndependenceModel package, i.e. a list of lists in which every list corresponds to one row of the Excel table.

 

The Excel table must be constructed in this form: every row corresponds to one variable and contains the name of such variable in the first column followed by all the observations. In this way, every column corresponds to one of the subjects considered in the analysis.

If data is stored with names of the variables on the first row and respective values on the column, use the TableT command followed by the command

ListTools[Transpose](T).

 

The Excel table cannot have empty cells, because Maple would read them as zeros. So, when the value of an observation is unknown, fill the cell with the value nc.

 

 

 

Example

 

with(IndependenceModel):

 

T:=TableT("exemfile.xls");

 

  T := [["Var 1", 0., 1.0, 0., "nc", 0., 0., 1.0, 1.0, 1.0, 0., 0.,

 

        0., 1.0, 1.0, 1.0, 0., 0., 0., 1.0, 1.0], ["Var 2", "x", "y",

 

        "y", "x", "y", "y", "y", "x", "x", "x", "y", "y", "y", "y",

 

        "x", "y", "x", "x", "x", "y"], ["Var 3", 0., 2.0, 2.0, 2.0,

 

        0., 0., 2.0, 0., 2.0, 2.0, 2.0, 0., 0., 2.0, 2.0, 0., 0., 2.0,

 

        0., "nc"], ["Var 4", 1.0, 1.0, 0., 1.0, 0., 0., 1.0, 0., 0.,

 

        1.0, 1.0, 1.0, 1.0, 1.0, 0., 0., 1.0, 0., 1.0, 1.0], [

 

        "Var 5", 0., 2.0, 1.0, 1.0, 1.0, 2.0, 2.0, 0., 2.0, 2.0, 0.,

 

        0., 1.0, 1.0, 0., 0., 2.0, 0., 1.0, 2.0], ["Var 6", "A", "A",

 

        "B", "A", "B", "A", "B", "A", "B", "B", "A", "B", "B", "B",

 

        "A", "A", "A", "B", "B", "A"], ["Var 7", 0., 0., 0., 0., 1.0,

 

        1.0, 0., 0., 1.0, 1.0, 1.0, 1.0, 0., 0., 0., 0., 1.0, 1.0,

 

        1.0, 0.], ["Var 8", 1.0, 1.0, 0., 1.0, 1.0, 0., 0., 0., 1.0,

 

        0., 0., 0., "nc", 1.0, 1.0, 1.0, 0., 0., 1.0, 0.], ["Var 9",

 

        "B", "B", "A", "B", "A", "A", "A", "B", "A", "B", "B", "B",

 

        "A", "A", "B", "A", "A", "B", "B", "B"], ["Var 10", 0., 2.0,

 

        1.0, 1.0, 1.0, 2.0, 2.0, 0., 2.0, 2.0, 0., 0., 1.0, 1.0, 0.,

 

        0., 2.0, 0., 1.0, 2.0]]

 

 

 

 

 

 

 

 

 

LabelT

 

Calling Sequence

 

LabelT(table);

 

 

Parameters

 

table - the list of lists containing all the data.

 

 

Description

 

The LabelT command builds a list with the names of the variables, reading them from the table considered. This list corresponds to the first column (or the first row) of the Excel table.

 

The parameter 'table' can be obtained from an Excel file using the TableT command. If  the table is written directly in Maple by the user, please read the TableT instructions to write it in the correct form.

 

 

Example

 

T:=TableT("exemfile.xls"):

 

["Var 1", "Var 2", "Var 3", "Var 4", "Var 5", "Var 6", "Var 7", "Var 8", "Var 9", "Var 10"]

 

 

 

 

NumberOfValues

 

Calling Sequence

 

NumberOfValues("var", table);

 

 

Parameters

 

var -  the name of the variable considered

table -  the list of lists containing all the data.

 

 

Description

 

The NumberOfValues command tells how many different values of the variable 'var' occur in the table considered.

 

The parameter 'table' can be obtained from an Excel file using the TableT command. If  the table is written directly in Maple by the user, please read the TableT instructions to write it in the correct form.

 

 

Example

 

T:=TableT("exemfile.xls"):

 

NumberOfValues("Var 3",T);

                                                                        2

 

 

 

 

ListOfValues

 

Calling Sequence

 

ListOfValues("var", table);

 

 

Parameters

 

var -  the name of the variable considered

table -  the list of lists containing all the data.

 

 

 

Description

 

The ListOfValues command returns the list of the values that the variable 'var' can take, reading them from the table considered.

 

The parameter 'table' can be obtained from an Excel file using the TableT command. If  the table is written directly in Maple by the user, please read the TableT instructions to write it in the correct form

 

 

 

Example

 

T:=TableT("exemfile.xls"):

 

ListOfValues("Var 3",T);

                                                             [0., 2.0]

 

 

 

 

 

TableLabel

 

Calling Sequence

 

TableLabel (table , list);

 

 

Parameters

 

table - the list of lists containing all the data.

list - the list ["var 1", ... , "var n"] with the names of the variables involved in the independence model.

 

 

Description

 

The TableLable command extracts from the table considered the rows corresponding the variables var1, ..., var n of the list. Thus, the output is still a list of lists but contains only n lists.

 

The parameter 'table' can be obtained from an Excel file using the TableT command. If  the table is written directly in Maple by the user, please read the TableT instructions to write it in the correct form

 

 

 

Example

 

T:=TableT("exemfile.xls"):

 

L:=["Var 2","Var 3","Var 6"]

 

TT:=TableLabel(T,L);

 

  TT := [["Var 2", "x", "y", "y", "x", "y", "y", "y", "x", "x", "x",

 

        "y", "y", "y", "y", "x", "y", "x", "x", "x", "y"],

            

           ["Var 3", 0., 2.0, 2.0, 2.0, 0., 0., 2.0, 0., 2.0, 2.0, 2.0, 0., 0.,

 

        2.0, 2.0, 0., 0., 2.0, 0., "nc"],

 

            ["Var 6", "A", "A", "B", "A", "B", "A", "B", "A", "B", "B", "A", "B", "B", "B", "A",

 

        "A", "A", "B", "B", "A"]]

 

 

 

PossibleObs

 

Calling Sequence

 

PossibleObs(table, list);

 

 

Parameters

 

table -  the list of lists containing all the data.

list - the list ["var 1", ... , "var n"] with the names of the variables involved in the independence model.

 

 

Description

 

The PossibleObs command builds a list of lists containing the possible observation of the variables considered in the parameter 'list'.

For example, considering two different variables with values a or b for the first one and c or d for the second one, the possible observations are (a,c), (a,d), (b,c) and (b,d).

 

The parameter 'table' can be obtained from an Excel file using the TableT command. If  the table is written directly in Maple by the user, please read the TableT instructions to write it in the correct form

 

 

 

Example

 

T:=TableT("exemfile.xls"):

 

PossibleObs(T, L)

 

OBS := PossibleObs(T, L); OBS := [["x", 0., "A"], ["x", 0., "B"], ["x", 2.0, "A"], ["x", 2.0, "B"], ["y", 0., "A"], ["y", 0., "B"], ["y", 2.0, "A"], ["y", 2.0, "B"]]

 

 

 

 

 

Freq

 

Calling Sequence

 

Freq(table, list);

 

 

Parameters

 

table - the list of lists containing all the data.

list - the list ["var 1", ... , "var n"] with the names of the variables involved in the independence model.

 

 

Description

 

The Freq command tells how many times each of the possible observations occurs in the table. The output is a 2-column matrix containing a possible observation in the first column and its frequency in the second one.

 

The parameter 'table' can be obtained from an Excel file using the TableT command. If  the table is written directly in Maple by the user, please read the TableT instructions to write it in the correct form.

 

 

 

Example

 

T:=TableT("exemfile.xls"):

 

L:=["Var 2","Var 3","Var 6"]:

 

Freq(T,L);

                        [["x", 0., "A"]     3]

                       

                        [["x", 0., "B"]     1]

                       

                        [["x", 2.0, "A"]    2]

                        

                        [["x", 2.0, "B"]    3]

                       

                        [["y", 0., "A"]     2]

                       

                        [["y", 0., "B"]     3]

                       

                        [["y", 2.0, "A"]    2]

                        

                        [["y", 2.0, "B"]    3]

 

``

 

 

 

Parametric

 

Calling Sequence

 

Parametric(table, list, sigma);

 

 

Parameters

 

table -  the list of lists containing all the data.

list -  the list ["var 1", ... , "var n"] with the names of the variables involved in the independence model.

sigma - the list of lists  [ ["var 1" , ... , "var h"] , ... , ["var k" , ... , "var n"] ] containing the groups of variables of which the user wants to study the independence.

 

 

Description

 

The Parametric command gives the parametric equations of the indipendence model considerd.

 

The independence model is expressed by the parameters 'list' and 'sigma'.

For example, if we want to study the independence of two variables from a third one, the parameters would be:

list:=["var1" , "var2" , "var3"];  sigma:=[ ["var1", "var2"] , ["var3"] ];.

 

The parameter 'table' can be obtained from an Excel file using the TableT command. If  the table is written directly in Maple by the user, please read the TableT instructions to write it in the correct form.

 

 

Example

 

T:=TableT("exemfile.xls"):

 

L:=["Var 2","Var 3","Var 6"]:

 

S:=[["Var 2","Var 3"], ["Var 6"] ];

 

                                                            S := [["Var 2", "Var 3"], ["Var 6"]]

 

> Parametric(T,L,S);

 

  <p[0, 0, 0] - t[1, 2, 0, 0] t[3, 0],

 

        p[0, 0, 1] - t[1, 2, 0, 0] t[3, 1],

 

        p[0, 1, 0] - t[1, 2, 0, 1] t[3, 0],

 

        p[0, 1, 1] - t[1, 2, 0, 1] t[3, 1],

 

        p[1, 0, 0] - t[1, 2, 1, 0] t[3, 0],

 

        p[1, 0, 1] - t[1, 2, 1, 0] t[3, 1],

 

        p[1, 1, 0] - t[1, 2, 1, 1] t[3, 0],

 

        p[1, 1, 1] - t[1, 2, 1, 1] t[3, 1]>

 

 

 

 

 

Equatn

 

Calling Sequence

 

Equatn(table, list, sigma);

 

 

Parameters

 

table -  the list of lists containing all the data.

list -   the list ["var 1", ... , "var n"] with the names of the variables involved in the independence model.

sigma-  the list of lists  [ ["var 1" , ... , "var h"] , ... , ["var k" , ... , "var n"] ] containing the groups of variables of which the user wants to study the independence.

 

 

 

Description

 

The Equatn command gives the equation of the independence model, using the EliminationIdeal command on the parametric equation of the model built with the Parametric command.

 

 

The independence model is expressed by the parameters 'list' and 'sigma'.

For example, if we want to study the independence of two variables from a third one, the parameters would be:

list:=["var1" , "var2" , "var3"];  sigma:=[ ["var1", "var2"] , ["var3"] ];.

 

 

The parameter 'table' can be obtained from an Excel file using the command 'TableT'. If  the table is written directly in Maple by the user, please read the TableT instructions to write it in the correct form.

 

 

 

Example

 

T:=TableT("exemfile.xls"):

 

L:=["Var 2","Var 3","Var 6"]:

 

S:=[["Var 2","Var 3"], ["Var 6"] ]:

 

Equatn(T,L,S);

 

<p[0,1,0]*p[0,0,1]-p[0,1,1]*p[0,0,0], p[0,1,1]*p[1,0,0]-p[1,0,1]*p[0,1,0], p[1,0,0]*p[0,0,1]-p[1,0,1]*p[0,0,0], p[1,1,0]*p[0,0,1]-p[1,1,1]*p[0,0,0], p[1,1,0]*p[0,1,1]-p[1,1,1]*p[0,1,0], p[1,1,0]*p[1,0,1]-p[1,1,1]*p[1,0,0]>

 

 

ModelMatrix

 

Calling Sequence

 

ModelMatrix(table, list, sigma);

 

 

Parameters

 

table -  the list of lists containing all the data.

list -  the list ["var 1", ... , "var n"] with the names of the variables involved in the independence model.

sigma-  the list of lists  [ ["var 1" , ... , "var h"] , ... , ["var k" , ... , "var n"] ] containing the groups of variables of which the user wants to study the indipendence.

 

 

 

Description

 

The ModelMatrix command builds the matrix of the independence model considered.

 

The independence model is expressed by the parameters list and sigma.

For example, if we want to study the independence of two variables from a third one, the parameters would be:

list:=["var1" , "var2" , "var3"];  sigma:=[ ["var1", "var2"] , ["var3"] ];.

 

 

The parameter 'table' can be obtained from an Excel file using the command 'TableT'. If  the table is written directly in Maple from the user, please read the TableT instructions to write it in the correct form.

 

 

 

Example

 

T:=TableT("exemfile.xls"):

 

L:=["Var 2","Var 3","Var 6"]:

 

S:=[["Var 2","Var 3"], ["Var 6"] ]:

 

ModelMatrix(T,L,S);

 

                [1    1    0    0    0    0    0    0]

                                               

                 [0    0    1    1    0    0    0    0]

              

                [0    0    0    0    1    1    0    0]

             

                [0    0    0    0    0    0    1    1]

              

                [1    0    1    0    1    0    1    0]

             

                [0    1    0    1    0    1    0    1]

 

 

 

 

 

MaxLikeEst

 

Calling Sequence

 

MaxLikeEst(table,list,sigma);

 

 

Parameters

 

table -  the list of lists containing all the data.

list -  the list ["var 1", ... , "var n"] with the names of the variables involved in the independence model.

sigma-the list of lists  [ ["var 1" , ... , "var h"] , ... , ["var k" , ... , "var n"] ] containing the groups of variables of which the user wants to study the independence.

 

 

 

Description

 

The MaxLikeEst command computes the Maximum Likelihood Estimation of the indipendence model considered.

 

The independence model is expressed by the parameters 'list' and 'sigma'.

For example, if we want to study the independence of two variables from a third one, the parameters would be:

list:=["var1" , "var2" , "var3"];  sigma:=[ ["var1", "var2"] , ["var3"] ];.

 

The parameter 'table' can be obtained from an Excel file using the command 'TableT'. If  the table is written directly in Maple by the user, please read the TableT instructions to write it in the correct form.

 

 

 

Example

 

T:=TableT("exemfile.xls"):

 

L:=["Var 2","Var 3","Var 6"]:

 

S:=[["Var 2","Var 3"], ["Var 6"] ]:

 

MaxLikeEst(T,L,S);

 

{p[0,0,0] = 36/361, p[0,0,1] = 40/361, p[0,1,0] = 45/361, p[0,1,1] = 50/361, p[1,0,0] = 45/361, p[1,0,1] = 50/361, p[1,1,0] = 45/361, p[1,1,1] = 50/361}

 

 

 

 

 

PearsonCoeff

 

Calling Sequence

 

PearsonCoeff(p,K);

 

 

Parameters

 

p - maximum likelihood extimation, expressed as a list

K - the list of frequencies

 

 

Description

 

The PearsonCoeff command computes the Pearson coefficient with vector of frequencies K and MLE p.

 

 

 

 

Example

 

p:=[36/361, 40/361, 45/361,  50/361,  45/361,  50/361,  45/361,  50/361}]:

 

k:=[3,1,2,3,2,3,2,3]:

 

PearsonCoeff(p,k);

                                                            931/600

 

 

DiaconisSturmfels

 

Calling Sequence

 

DiaconisSturmfels(table,list,sigma, n);

 

 

Parameters

 

table -  the list of lists containing all the data.

list -  the list ["var 1", ... , "var n"] with the names of the variables involved in the independence model.

sigma -  the list of lists  [ ["var 1" , ... , "var h"] , ... , ["var k" , ... , "var n"] ] containing the groups of variables of which the user wants to study the independence.

n - the number of iterations

 

 

Description

 

This command applies the Diaconis-Sturmels algorithm on the independence model considered to compute an estimation of the p-value, called the Monte Carlo

p-value.

 

The indipendence model is expressed by the parameters 'list' and 'sigma'.

For example, if we want to study the independence of two variables from a third one, the parameters would be:

list:=["var1" , "var2" , "var3"];  sigma:=[ ["var1", "var2"] , ["var3"] ];.

 

The parameter 'table' can be obtained from an Excel file using the command 'TableT'. If  the table is written directly in Maple from the user, please read the TableT instructions to write it in the correct form

 

 

 

Example

 

T:=TableT("exemfile.xls"):

 

L:=["Var 2","Var 3","Var 6"]:

 

S:=[["Var 2","Var 3"], ["Var 6"] ]:

 

DiaconisSturmfels(T,L,S,10000);

                             0.8096000000

 

 

 

References

 

      -P. Diaconis, B.Sturmfels

       Algebraic algorithms for sampling from conditional distributions

       The Annals of Statistics, Vol. 26, No. 1, 1998, p. 363-397

 

      -L. Patcher, B. Sturmfels

       Algebraic Statistics for computational biology

       Cambridge University Press, 2005

 

      -F. Ricceri, C. Fassino, G. Matullo, M. Roggero, M.L. Torrente, P. Vineis, L. Terracini

       Algebraic methods for studying interaction between epidemiological variables

       Math. Model. Nat. Phenom., Vol. 7, No. 3, 2012, p. 227-252

 

      -B. Sturmfels

       Algebra and geometry of statistical models

       John von Neumann Lectures, Technical University, Munchen, 2003

 

 

 

      

Disclaimer

Legal Notice: © Maplesoft, a division of Waterloo Maple Inc. 2009. Maplesoft and Maple are trademarks of Waterloo Maple Inc. Neither Maplesoft nor the authors are responsible for any errors contained within and are not liable for any damages resulting from the use of this material.  This application is intended for non-commercial, non-profit use only. Contact the authors for permission if you wish to use this application in for-profit activities.