[statnet_help] Assistance with Calculating Degree Centrality in
Directed and Valued Networks Using the sna Package in R
Carter T. Butts via statnet_help
statnet_help at u.washington.edu
Fri Aug 30 00:59:25 PDT 2024
Hi, Chuding -
Glad that fixed it. With respect to edgelists vs. adjacency matrices,
they will give you equivalent results. If you seem to be getting
different results, check the two objects: somewhere in your code, you've
presumably made them non-equivalent....
Best,
-Carter
On 8/26/24 5:59 AM, CHU-DING LING wrote:
>
> Carter,
>
>
> Thank you for your suggestions! The problem has been resolved.
>
> Initially, I imported a matrix from a CSV file and stored it as a
> matrix class object. I then converted it into a network class object
> since many functions in *sna* require objects to be of the network
> class. However, I noticed that the edge weights were lost during the
> conversion from the matrix object to the network object, which caused
> the results from the degree() function not to account for edge weights.
>
> Actually, the degree() function can directly handle the matrix object.
> I also used as.sociomatrix.sna() to convert the original matrix object
> into another matrix object with a different name. Both approaches
> produced the same degree centrality results for the directed and
> valued network.
>
> I also experimented with the as.edgelist.sna() function to convert the
> original matrix object into an edgelist object. However, when I
> calculated the degree centrality of this object, it produced incorrect
> results, with a greater number of elements than the number of nodes in
> my network. I appreciate if you can give some insights on this issue.
>
> Thanks in advance!
>
> Chuding
>
>
> Carter T. Butts via statnet_help <statnet_help at u.washington.edu>
> 于2024年8月25日周日 05:15写道:
>
> H, Chuding -
>
> The degree() function already exploits edge values; this is its
> default behavior. If you wish to /ignore/ edge values, you need
> to set the "ignore.eval" argument to TRUE.
>
> If you are not getting valued degree calculations from degree()
> using the defaults, then you are not passing it valued data. This
> may be due to a preprocessing error (so check your inputs).
> Another possible failure mode is that you are passing it a network
> object that has value information stored as an edge attribute, and
> are expecting degree() to use those edge values. Since a network
> object can have any number of edge attributes (or none at all),
> and they can be of any data type (i.e., not necessarily numeric),
> degree() can't automagically know what is intended in that case,
> and will therefore treat the data as unvalued. An easy way to use
> edge attribute information is to wrap your object in a call like
> as.edgelist.sna(<mynet>,attrname=<whateveredgeattributeIwanttouse>),
> which will extract from the object the specific valued network
> that you want to analyze. That's especially handy if you have
> several different edge values you want to store in the same
> network object. Of course, you can also use that same trick to
> make a "working" edgelist at the top of your script that you reuse
> for multiple calculations. (The same can be done with adjacency
> matrices rather than edgelists, if one prefers. See e.g.
> ?as.sociomatrix.sna.)
>
> Hope that helps,
>
> -Carter
>
> On 8/23/24 9:07 PM, CHU-DING LING via statnet_help wrote:
>>
>> Dear all,
>>
>> I hope this message finds you well. I am currently working on a
>> project that involves social network analysis using the *sna*
>> package in R. I am reaching out to seek your expertise on a
>> particular issue I have encountered regarding the calculation of
>> degree centrality in directed and valued networks.
>>
>> I am working with a directed network where edges have associated
>> weights. My goal is to accurately calculate both the in-degree
>> and out-degree centrality of nodes while considering the edge
>> weights. I attempted to calculate the degree centrality using the
>> degree function in the *sna* package. While this function works
>> well for unweighted networks, I realized that it does not account
>> for edge weights.
>>
>> Could you please advise on the best method or function within the
>> *sna* package to accurately calculate the degree centrality in
>> this context? Though I can make it with *igraph* or other
>> packages, I am particularly interested in whether *sna* could
>> directly handle weighted edges in directed networks.
>>
>> Your guidance would be invaluable, and I would greatly appreciate
>> any suggestions or resources you might be able to provide. Thank
>> you for your time and consideration. I look forward to your insights.
>>
>> Best,
>>
>> Chuding
>>
>>
>> _______________________________________________
>> statnet_help mailing list
>> statnet_help at u.washington.edu
>> https://urldefense.com/v3/__http://mailman13.u.washington.edu/mailman/listinfo/statnet_help__;!!CzAuKJ42GuquVTTmVmPViYEvSg!Npw4CFqLg3mWAfPesSBtoa6UjvVqK_t7JYrixPsjqKAxzUTjhOvoeAxG6tO4iWruplppJ7ZQGd8FOLXV8VLxBP8-nfnt$
> _______________________________________________
> statnet_help mailing list
> statnet_help at u.washington.edu
> http://mailman13.u.washington.edu/mailman/listinfo/statnet_help
> <https://urldefense.com/v3/__http://mailman13.u.washington.edu/mailman/listinfo/statnet_help__;!!CzAuKJ42GuquVTTmVmPViYEvSg!K6AnX5T7ncI4niN0TJ-TlovKAm3m3t5-Q3ZLpsyePCkGVbHm5aIUd8RF7svulqI3hJGWibMjch4bTC5nxZg$>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman13.u.washington.edu/pipermail/statnet_help/attachments/20240830/da7b94aa/attachment.html>
More information about the statnet_help
mailing list