32 Pages
Downloading requires you to have access to the YouScribe library
Learn all about the services we offer


Downloading requires you to have access to the YouScribe library
Learn all about the services we offer
32 Pages


Analyzing Organizational Structure withmetamatrixCarter T. ButtsKathleen M. CarleyDavid KrackhardtYuquing RenCarnegie Mellon UniversityJuly 2, 20011 IntroductionThis tutorial attempts to serve as an introduction to the analysis of organiza-tional data under the metamatrix approach, using the metamatrix softwarepackage. Though the reader will certainly bene t from prior knowledge ofsocial networks and/or organizational analysis, no more than a passing fa-miliarity with these eld should be required to get the gist of things. Whileit is assumed that the reader is comfortable using a computer, knowledgeof programming (and the S language, in particular) is not needed: the sup-plied code will do all of the heavy lifting, leaving the reader free to worryabout interpreting the results (a more di cult task, in any case!). A briefintroduction to the R computing environment and the S language will begiven, as well, to facilitate experimentation by the more adventurous.1.1 The Metamatrix Approach to Organizational AnalysisThe metamatrix approach (Krackhardt and Carley, 1998; Carley and Krack-hardt, 1999; Carley et al., 2000; Carley 1999, 2001a,b; Carley and Hill, 2001;Carley and Ren, 2001) provides a representational framework and family ofmethods for the analysis of organizational data. Stemming from work byKathleen Carley, David Krackhardt, Yuquing Ren, and others, this approachbuilds heavily on recent network-oriented treatments of organizational ...



Published by
Reads 20
Language English


Analyzing Organizational Structure with metamatrix Carter T. Butts Kathleen M. Carley David Krackhardt Yuquing Ren Carnegie Mellon University July 2, 2001
1 Introduction This tutorial attempts to serve as an introduction to the analysis of organiza-tional data under the metamatrix approach, using themetamatrixsoftware package. Though the reader will certainly benefit from prior knowledge of social networks and/or organizational analysis, no more than a passing fa-miliarity with these field should be required to get the gist of things. While it is assumed that the reader is comfortable using a computer, knowledge of programming (and the S language, in particular) is not needed: the sup-plied code will do all of the heavy lifting, leaving the reader free to worry about interpreting the results (a more difficult task, in any case!). A brief introduction to theRenvironment and the S language will becomputing given, as well, to facilitate experimentation by the more adventurous. 1.1 The Metamatrix Approach to Organizational Analysis The metamatrix approach (Krackhardt and Carley, 1998; Carley and Krack-hardt, 1999; Carley et al., 2000; Carley 1999, 2001a,b; Carley and Hill, 2001; Carley and Ren, 2001) provides a representational framework and family of methods for the analysis of organizational data. Stemming from work by Kathleen Carley, David Krackhardt, Yuquing Ren, and others, this approach builds heavily on recent network-oriented treatments of organizational struc-ture, as well as ideas from the information processing school of organizational
theory (March and Simon, 1958; Simon, 1973; Galbraith, 1977) and oper-ations research. Under this model, organizations are conceived of as being composed of a set ofelements, each of which belongs to one of five classes: Personnelwithin the organization (human or otherwise)Individual agents which are capable of contributing labor to task performance and which form a locus for knowledge (procedural or declarative), social contacts, task assignments, and/or control of resources KnowledgeFunctionally coherent elements of procedural or declarative in-formation (generally pertaining to organizationally relevant task per-formance) to which agents may have access (often synonymous with human capital) Resourceselements of organizational structure which act as inputsPassive to task performance and which may be controlled by agents (often synonymous with physical capital) TasksOrganizational objectives which must be met by a specified agent performance (usually involving resources and/or knowledge) OrganizationsOrganizational entities beyond the entity under immediate study (i.e., other organizations within the environment)1 The organization is then defined by the set of elements,together with the dyadic relationships among these elements.It is the analysis of these dyadic relationships which lies at the heart of the metamatrix approach. The term “organizational metamatrix” itself derives from a useful con-ceptualization of the inter-element relationships described above. By taking each of the five element types and using them to define the rows and columns of a matrix, we arrive at something like Table 1. Note that each cell of this matrix can be interpreted as a particular organizational substructure. Thus, the “PP” cell can be thought of as reflecting Personnel x Personnel relations, the “RT” cell can be seen as containing Resource x Task relationships, and so forth. Since each of these relations can in turn be expressed via an adja-cency matrix (a matrix in which theijth cell is 1 if elementisends a tie to elementj), the larger structure can be thought of as a matrix of matrices, or a “metamatrix.” Since each cell of the metamatrix tends to carry a distinct 1These are not properly elements of the focal organization, of course, but interactions with them are nonetheless relevant to the structure of the focal organization. It should be understood that it is properly theinterfaceswith these organizations which are part of the metamatrix framework, not the entities in and of themselves.
Personnel Knowledge Resources Tasks Organizations Personnel PP PK PR PT PO Knowledge KP KK KR KT KO Resources RP RK RR RT RO Tasks TP TK TR TT TO Organizations OP OK OR OT OO Table 1: The Organizational Metamatrix
substantive meaning (e.g., the PT cell provides the assignment of Person-nel to Tasks), it is often useful to treat the total organizational structure in metamatrix form. On the other hand, the above table suggests another useful duality: each cell of the metamatrix corresponds to asubmatrixof the combined organizational structure formed by the union of all elements and relations. Thus, we can where useful move between the metamatrix and combined (or “full”) adjacency matrix representations of the organization without loss of generality. Given the above representational framework, the metamatrix approach to organizational analysis proceeds by examining the ways in which the requirements of the organization (e.g., its tasks and their relationships to inputs and each other) match (or fail to match) its capabilities (as embodied by relations among personnel, knowledge, resources, and external organiza-tions). As one might expect, this leaves room for a wide variety of methods, many of which may depend on the context of the analysis itself. Since covering the full range of metamatrix techniques is not possible here, we instead attempt a more humble goal: to introduce you, the reader, to some of the basic methods of metamatrix analysis via a sample example. If what you learn here serves to whet your appetite for more, then the papers cited here should provide avenues for further learning regarding this developing approach to the study of organizations. 1.2 TheRStatistical Computing Environment The software used here (themetamatrixpackage) has been implemented for theR best summation of Thestatistical computing environment.R(Ihaka and Gentleman, 1996) is perhaps that offered by Kurt Hornik in theRFAQ: Ris a system for statistical computation and graphics. It con-sists of a language plus a run-time environment with graphics, a
debugger, access to certain system functions, and the ability to run programs stored in script files. The design ofRhas been heavily influenced by two existing lan-guages: Becker, Chambers and Wilks’ S and Sussman’s Scheme ( Whereas the resulting language is very similar in appearance to S, the un-derlying implementation and semantics are derived from Scheme. BecauseRis really an implementation of the S language, its use should be familiar to anyone who has used environments like the original S engine, or S-PLUS (a widely-used commercial variant). While there are some user-level differences between the S of S-PLUS and the S ofR, the distinctions are fairly minor: much code from one environment will execute directly in the other, and porting the remainder rarely requires extensive changes. A major advantage of developing inR, however, is that it is freely available2 for all major platforms. Thus, code developed inRcan be used by virtually anyone, even those (such as students) who may be unable or unwilling to purchase a commercial S implementation. 1.3 ThesnaandmetamatrixPackages While the “core”Rsoftware provides a wide range of functionality, support for special-purpose applications is provided via the use of add-on packages (also known aslibraries of these packages are freely distributed). Many through a network of web and FTP sites known collectively as the Compre-hensiveRArchive Network (or CRAN). Among the many add-ons provided by members of theRcommunity3are thesnaandmetamatrixpackages (both written by the author).snaprovides a library of functions for social network analysis, including node and graph-level indices, structural distance and covariance methods, structural equivalence detection,pmodeling, and network visualization.metamatrixbuilds onsna, providing special-purpose tools for the analysis of organizational data using the metamatrix approach. Althoughmetamatrixrequiressnafor much of its functionality, the two are distributed as separate packages; this distinction will not be of great impor-tance for this tutorial, however, and we will not dwell on the distinctions here. In practice, users can seamlessly integrate functionality fromsna, 2Ris part of the GNU project, and is distributed under the GNU Public License. 3In addition to the core development team, work onRtools is distributed among a wide community of users and developers. Users with statistical and programming expertise who benefit from the use ofRare encouraged to contribute to the project.
metamatrix, or any of a range of other add-on packages to meet the needs of their particular analyses. In addition to themetamatrixpackage (used here), similar functionality has been implemented in a C-based library of data analysis routines known asNetStat( AlthoughNetStathas been designed primarily to facilitate development of software for organiza-tional and network analysis, the library package does include several sample applications as well. In particular, theMetaMatrixuser-level application can be used to compute many of the measures shown here (as well as a few which are not described within the tutorial), and interested users are invited to compare the functionality ofmetamatrixwith that ofMetaMa-trixwhen deciding which software best suits their needs. 1.4 A Note on Exercises Throughout this tutorial, you will find sections marked with the eponym “Exercises.” These sections are included for your benefit, and it is strongly suggested that you complete all of them (even those which might appear trivial at first). Many of the exercises will ask you to try variations on the demonstrations in the main sections, and/or to contemplate the implica-tions of what you have seen. To get the most out of these questions, it is suggested that you jot down your answers before continuing; later exercises will often give you a chance to check your initial impressions against more formal analyses, feedback which is essential for training your structural intu-ition. You should also feel free to go beyond the problems as stated, trying variations on the suggested commands and using alternative approaches as they occur to you. As with physical exercise, you will get out of this what you put into it4. 2 Getting Started Before moving to the analysis itself, it seems prudent to provide a bit of orientation. This section of the tutorial will introduce some conventions and helpfulRcommands, describe how to runRitself, and provide a walk-through of the procedures needed to loadmetamatrix you be. Should tempted to skip this section, resist! The subsequent examples assume that you have loaded the required libraries, as described below. 4quite so clear that one manages to break even.Though, with the former, it seems not It is hoped thattheseexercises will prove more salutary in this regard.
2.1 Conventions and Helpful Commands To facilitate a more comprehensible presentation, a variety of typesetting conventions are followed within this document. Text set in “code” format (i.e.,code) should be interpreted asRsource code, and always refers directly toRcode will be given by itself onobjects and/or functions. sample  Often, a line, e.g., #This is sample code x<-3 #Set x to 3 x+4 #Return x+4 This signifies code which can be entered verbatim at theRprompt. Often, this code will include comments; these are present for your benefit, and will be ignored byRyou will be given explicit code for this. Although tutorial, it may be helpful to be aware of a few elements of the S language (as implemented inR). These are as follows: ?commandGets help oncommand a<-bCopiesbintoa(creating a new object and/or overwritingaas needed) #blahDenotes a comment (everything after the#is ignored) object$nameReturns the attribute callednameofobjectif it exists, oth-erwiseNULL; this is often used when selecting elements from lists and data frames array[i,j,k]Selects theijkth cell of a three-dimensional array; this can be generalized to arrays having any number of dimensions, and the parameters may contain lists of array indices (in which case all of the indicated elements are selected) i:jReturns (in vector form) a sequence fromitoj A%*%BComputes the inner product of matricesAandB apropos("boo")Returns functions or objects whose name includes the string “boo” c(1,2,3)Returns a vector concatenating the elements 1, 2, and 3 help.start()Starts the HTML help engine (highly recommended for be-ginning users)
q()ExitsR Note that executinghelp.start()will also give you access to a variety of additional documentation regarding theRsystem. Interested users are encouraged to peruse these documents (including and especially the user’s manuals and FAQ) for additional information regardingR. 2.2 RunningR RunningR UNIX (presuming thatitself is quite trivial. UnderRis in your path), simply type “R” at the command prompt to begin. Under Windows, there should be an entry forRin your start menu (assuming a default installation). Simply run the program from the menu, and you should be ready to proceed. (Alternately, you can run Rgui.exe from the command line, if you prefer.) OnceRis running, you should be presented with a command prompt (this will be marked with the “>” symbol). Commands are entered here (see below for examples) promptingRto do something in response (hopefully the thing you had in mind). Text output and error messages are also displayed here, while graphics will be shown in a separate window which pops up automagically when needed. Essentially, that’s all there is to it: now it’s time to actually use the system. 2.3 Loading the Required Libraries In order to useRanalyses, we must first load theto perform structural libraries which provide this functionality. This can be done quite easily on the command line, via the following instructions: library(mva) #Load the mva library library(sna) #Load the sna library library(metamatrix) #Load the metamatrix library Thelibrarycommand transparently loads the requested library, and activates its associated online documentation. To get a list of all (doc-umented) user-level functions within a given library, use the command library(help=libname), e.g. library(help=metamatrix) #List all documented user-level functions #in metamatrix
As we noted earlier, you can then get help on a particular function by preceding the command name with a question mark (e.g.,?redundancy). If you’ve invokedhelp.start()(suggested but not required), then the re-quested documentation will appear in your help browser; otherwise, a text version of the command documentation will be provided via the terminal interface. If ever in doubt as to a command name, try usingapropos(see above), the full list of library commands (via thelibrary’shelpoption), or the hypertext help list (accessed viahelp.start()). Note that you must load a library in order to access its documentation via the?command or apropos, but not via hypertext help orlibrary. Returning to the libraries loaded above, each provides the following func-tionality:mvaprovides a variety of routines for multivariate analysis;sna provides tools for social network analysis; andmetamatrixprovides spe-cialized functions and data structures for organizational analysis using the metamatrix framework. For the analyses which follow, we assume that all three of these libraries have been loaded, the reader is encouraged to peruse online the documentation for each function when performing the included exercises. 2.3.1 Exercises 1. View the function lists for each of the three add-on packages, first usinglibraryand then using the hypertext help. What functionality does each provide? 2. What happens if you executelibrary()with no arguments selected? 3. Get help for thedegreefunction. In which library does it reside? 4. Find a function to compute betweenness. Use the online help to find and execute an example of the command. 3 An Organizational Analysis To demonstrate the use of themetamatrixlibrary, we will perform a simple analysis of a fictitious organization, “Allied Empirics.”5Allied Empirics is a small start-up which provides specialized organizational analysis to various corporate clients; unfortunately, things are not going well at AE, and now the analysts could use a bit of their own medicine. 5Any resemblance between this organization and any real organization, living or dead, is entirely coincidental. 8
As was indicated in the introduction, this analysis will only scratch the surface of what can be done usingR,sna, andmetamatrix; it should be considered neither canonical nor exhaustive. Nevertheless, these demonstra-tions (and the associated exercises) should teach you how to use some basic tools, and should give you some ideas for applying these techniques to your own problems. As always, what you put into learning these methods will have a substantial impact on what you get out of them. 3.1 Loading the Data In order to analyze the Allied Empirics data, we must first import it intoR. To do this, we use the functionsscan,read.nos, andrtamatemson.xid.ear to read the organizational element labels, full organizational adjacency ma-trix, and organizational metamatrix (respectively). The code to perform these functions is below; note that you may have to change the file names to include your data path (if you startedRin a directory other than the one in which the data files reside)! ae.lab<-scan("allied.empirics.lab",what=character()) #Read the #element labels ae.full<-read.nos("allied.empirics.nos")[1,,] #Read the full matrix dimnames(ae.full)<-list(ae.lab,ae.lab) #Label the vertices ae<-read.metamatrix.nos("allied.empirics.nos",p.lab=ae.lab[1:7], k.lab=ae.lab[8:27],r.lab=ae.lab[28:32],t.lab=ae.lab[33:42], o.lab=ae.lab[43:45]) #Read the metamatrix If all goes well, the above should have generated no errors. (Otherwise, make sure that you are using the correct data path.) You can also verify that the organizational metamatrix was loaded correctly by entering its name on the command line, like so: ae #Print some summary info This should produce a list of the number of elements by type, as well as a table showing which metamatrix elements are present (all should be listed asTRUE). If you donotget this output, something is wrong; ensure that your files are in the right place and then try again. For the remainder of this tutorial, it is assumed that all of the above objects have been created successfully.
3.1.1 Exercises 1. Entering the name of an object by itself invokes the relevantprint method, which tries to display the object in a reasonably intelligent fashion. Verify this by comparingprint(ae.lab)andae.lab. 2. Try printing the full Allied Empirics adjacency matrix. Using the, plot the same data as a grid of cells. Can anything be inferred from the resulting pattern? (You now know why direct inspection of adjacency matrices is rarely fruitful.) 3. Print the Allied Empiricsmetamatrixobject (ae). Relate the number of organizational elements to the number of rows and columns in the full adjacency matrix. 4. The commandnamescan be used to get a list of elements contained in a complex object (called adata.framein S). Usenames(ae)to get a list of the elements ofae the help for the. Usingmetamatrix command, can you infer something about how the metamatrix data is stored? 5. Using a text editor, examine the file “allied.empirics.nos.” Using the help forread.nosandae.dematrosmatrix.n, relate the contents of the data file to the imported data. Consider how you could use the same data format to encode another organization. (Advanced students might want to contemplate how much storage could be saved by means of an edge list format. For a sparse structure, full matrix encoding is highly inefficient; thus, the author would prefer if said students didn’t spendtoo . . .)much time contemplating this. 3.2 Examining Overall Structure Before getting into details, it is sometimes useful to get an overview of the en-tire organizational structure. As the above exercises with the full adjacency matrix might suggest, it can be difficult to grasp an entire organizational form (even for such a small organization as this). Nevertheless, we start with a series of general qualitative overviews which will serve to orient us for the more specific analyses which follow. When exploring conventional data, it is typical to begin with a series of scatterplots (like those produced by thepairs can accom-command). We plish something like this vis a vis the Allied Empirics organizational struc-ture using the plot method associated with themetamatrixobject class. 10
While this may sound complicated to the novice, in fact this is quite trivial; in fact, we can plot the organizational submatrices with one command: plot(ae) #Plot the Allied Empirics organization metamatrix (You may need to rescale your plot window to make the graphs legible; we’re packing a lot of information into a small space.) While it is difficult to make out details at this level of resolution, we can clearly get a feel for the density and degree of differentiation within each substructure. By default,plotirxmatam.te(the function which was implicitly invoked when we tried to plot ametamatrixobject) uses a multidimensional scaling (MDS) algorithm to place vertices based on the (euclidean) distance between their patterns of edges; thus, vertices which have similar patterns of edges should tend to be close to each other in the resulting plot. The above considers each cell of the metamatrix individually, but we can apply the same logic to the full adjacency matrix among all organiza-tional elements (the union of all metamatrix substructures). To plot the full matrix, we use ansnafunction calledgplot: gplot(ae.full,label=ae.lab) #Plot the joint organizational structure The perceptive will correctly guess thatgplotis used byp.tolatemrtamxi to do its dirty work (an impression confirmed by the help pages); even the im (Legibil-realize that this graph is pretty hard to take in!perceptive will ity can be improved by using)=3ol.cge.eal,bdel,balea=(ae.fullgplot to get a more eye-friendly display.) The aggregate structure is clearly well-connected, suggesting a high degree of interdependence among organiza-tional elements (people, knowledge, tasks, resources, and organizations). While there do seem to be groups of elements which “hang together” (in terms of structural similarity), these elements are of markedly mixed types; thus, one is given the impression that the structural roles played by different elements do not correspond directly to differences in substantive content. We can follow up on this initial impression a bit more formally by per-forming some structural equivalence analyses on the full organizational net-work. Informally, two vertices are said to be structurally equivalent if and only it they are tied to precisely the same alters (and, in the directed case, exactly the same alters are tied to them)6 this is a very rare circum-. While stance (save in degenerate cases such as isolates), measuring theextentto 6More formally,viis structurally equivalent tovjiffN+(vi) =N+(vj) andN(vi) = N(vj). See Lorrain and White (1971) or Wasserman and Faust (1994) for details.