[R] identify non-recursive models
Duncan Murdoch
murdoch.duncan at gmail.com
Tue Jan 29 17:21:15 CET 2013
On 29/01/2013 11:12 AM, Dustin Fife wrote:
> Hi,
>
> I'm working on a project that will generate RAM matrices at random. What I
> want to do is to be able to automatically identify if the model is
> non-recursive. For example, the following RAM matrix has a non-recursive
> loop (going from A to B to C to A):
I'm not familiar with your terms, but your description sounds like you
want a test for a simple graph. I believe the igraph package has that
in the "is.simple" function (and a lot of other tests of graph
properties in case that's not the one you want).
Duncan Murdoch
>
> n.recursive <- data.frame(matrix(c("A", "B", 1,
> "B", "C", 1,
> "C", "A", 1,
> "B", "D", 1), nrow=4, byrow=TRUE))
> names(n.recursive) <- c("From", "To", "Arrows")
>
> What I want to be able to do is have a function that automatically checks
> whether there is a non-recursive path. Here's what I've thought of so far:
>
> 1. Find all variables that both send and receive an arrow. (in this case, A
> and B both fit that criteria).
>
> vars <- LETTERS[1:5]
> double.arrow.vars <- vars[which(vars %in% n.recursive$From & vars %in%
> n.recursive$To)]
>
> 2. For all variables found in #1, follow all paths exiting that variable to
> other variables, then follow all paths exiting that next variable variable,
> etc. and continue tracing the path.
>
> ##### insert complicated code here
>
> 3. If a variable is repeated, identify it as non-recursive.
>
> The problem with #2 is that, for large models, the number of paths to be
> traced could be really large. (Also, I'm having trouble thinking of how to
> code it so it's not really awkward).
>
> So, my question is this: is there a better way to approach the problem? Is
> there a more efficient way?
>
> I know that I could probably identify which models are non-recursive after
> estimation (via convergence failures or negative parameter estimates). But
> I want to be able to identify them before estimation. Any help would be
> appreciated.
>
> Dustin
>
>
>
>
More information about the R-help
mailing list