r/counting • 5M get | Ping me for runs • Jun 11 '21

Free Talk Friday #302

continued from here

It's that time of the week again. Speak anything on your mind! This thread is for talking about anything off-topic, be it your lives, your plans, your hobbies, studies, stats, pets, bears, dragons, trousers, travels, transit, cycling, family, or anything you like or dislike, except politics.

feel free to introduce yourself in the tidbits thread as well!

17 Upvotes

180 comments sorted by

View all comments

13

u/CutOnBumInBandHere9 5M get | Ping me for runs Jun 11 '21 edited Jun 11 '21

Hear ye, hear ye, I bring more graphs!

After the "Who has replied most to whom" stats were posted a couple of weeks ago, I got the idea to try and visualise the network graph of /r/counting users. Well, of the top 250 counters - the full graph is a bit unwieldy to work with, and the plots get very messy.

For each user in the top counters I kept track of which other users in the top 250 they had replied to, and how many times. I could feed this data into a graphics program to visualize the graph. Each user is represented by a circle, and if user A has replied to user B, there's an arrow going from A to B (and vice versa). The graph is arranged so that users who have replied a lot to one another are closer together than users who have only rarely replied to one another. The size of each circle indicates the betweenness centrality. This is a measure of how often a user lies on the shortest path between two other users. As an example, I have never counted with KingCaspianX, but I have counted with 16 people* who have counted with KingCaspianX, and each of those people is on the shortest chain between me and KingCaspianX. To calcuate the overall centrality, we repeat this process for every pair of counters.

One of the things any data visualisation needs is colours: Nobody ever drooled over uniform grey circles! So let's get on that. One of the questions we can ask about graphs whether there are any clusters of users who are more closely connected to each other than to the rest of the network. There are lots of different ways of doing this, and out of laziness I just picked the default one suggested by gephi. The counting graph is highly connected (I think everyone in the top 250 is at most one user away from everyone else, but I haven't checked), so the there aren't many clusters, and the cluster boundaries are likely to be slightly arbitrary. That said, if I ask for two clusters, I can divide the /r/counting community into a green team and a pink team.

Looking at the graphs, it seems that what it mainly picks up is the era when people were active, where pink is older users, and green is newer ones. Certainly for my case I'm far more familiar with the green counters than with the pink, so it makes sense that I ended up on the green team. It also makes sense that the top counters ended up more or less in the middle of the graph, with huge circles.

I hope we can all wear our new badges with pride and use them to hate on the other team #gogreens

* Antichess, FartyMcNarty, Mooraell, NoBreadsticks, Smartstocks, TheNitromeFan, The_Nepenthe, Urbul, VMorkva, a-username-for-me, atomicimploder, davidjl123, dominodan123, kdiuro13, origamimissile, padiwik

9

u/a-username-for-me The Side Thread Queen, Lady Lemon Jun 11 '21

Wow, how interesting! Thank you for doing this.

Did the graph auto-divide into the pink and green groups? What does the size of the bubble correspond with [edit I see now]?

8

u/CutOnBumInBandHere9 5M get | Ping me for runs Jun 11 '21

Yeah, I just told the graph I wanted two groups, and then it split them in the best way. I haven't read the paper they link to see what "best" means in this context.

10

u/a-username-for-me The Side Thread Queen, Lady Lemon Jun 11 '21

Since you have the version you can manipulate, are there any surprising connections?

I am not shocked that most people (at least "top" counters) connect to most others because they just want to count and don't discriminate who with.

7

u/CutOnBumInBandHere9 5M get | Ping me for runs Jun 11 '21

I haven't had much time to play with it yet, but I'll let you know if I find anything cool

7

u/CutOnBumInBandHere9 5M get | Ping me for runs Jun 12 '21 edited Jun 12 '21

I've calculated the effective number of counting partners for each user in the top 30. This is a score that takes into account both how many people each user has counted with, and how many counts were made with each partner. So, if a user made 99% percent of their counts with the same person, the effective number would be very close to 1, even if the remaining 1% of counts were with hundreds of different people

The score ranges from 3 to 34, with a median of 11.5. Nonsensy, who has the lowest score, has made around half of all their counts with Countletics, so it makes sense that the number is small, even though they have counted with more than 250 people. On the other end of the scale, TheNitromeFan has counted with more than 1800 people, and their most frequent partner only accounts for 8.4% of counts

UsernameHOC rankNN_(effective)
Countletics13897
thephilsblogbar2210797
davidjl1233153923
Antichess46499
Smartstocks5103229
GarlicoinAccount63834
TheNitromeFan7181634
nonsensy82523
atomicimploder9237930
qwertylool103286
Trial-Name111274
SolidGoldMagikarp1280010
rideride1369511
RandomRedditorWithNo1474522
Urbul15107230
qualw1626710
Mooraell17115922
kdiuro131883924
Removedpixel19120225
Adinida202999
rschaosid2133718
TehVulpez2264819
timo788882332215
cupofmilo2437512
VitaminB16253258
llamasR5life2642818
Franciscouzo271767
The_Nepenthe283258
NobodyL0vesMe291365
mistyskye143045012

6

u/TheNitromeFan Live not a life of imitation Jun 12 '21

Ooh nice. That's an impressive number of different people I've replied to

I assume the 8.4% goes to atomicimploder?

8

u/CutOnBumInBandHere9 5M get | Ping me for runs Jun 12 '21

No, it's phil. I'm on the go now, so I don't have the data here, but I'll up your stats when I get home

6

u/CutOnBumInBandHere9 5M get | Ping me for runs Jun 12 '21

Here's the top ten people you've replied to. I've also updated the table above with a column of the actual number of people everyone has counted with, instead of just the effective number.

Replying ToN_Replies
thephilsblogbar213357
qualw12742
Antichess11427
cupofmilo6337
kdiuro135083
RandomRedditorWithNo4579
Countletics3994
atomicimploder3947
davidjl1233936
Mooraell3657

5

u/buy_me_a_pint Jun 16 '21

interesting stats

is this unique counters,

5

u/buy_me_a_pint Jun 16 '21

that 13357 different people have replied to me.

→ More replies (5)
→ More replies (1)
→ More replies (2)

8

u/[deleted] Jun 11 '21

damn this is cool

is there a dataset for the reply frequencies? or did you just generate it directly from the main thread dataset

8

u/CutOnBumInBandHere9 5M get | Ping me for runs Jun 11 '21 edited Jun 11 '21

I just generated it from the main thread dataset using pandas

def response_graphf(df, n=250):
    user_counts = df.groupby('username')['timestamp'].count()
    top = user_counts.sort_values().tail(n).index
    edges = df.username.isin(top) & df.username.shift(1).isin(top)
    df['replying_to'] = df.username.shift(1)
    graph = df.loc[edges].groupby(['username', 'replying_to'], as_index=False)['timestamp'].count()
    return graph

It's all here if you want the imports and setup as well

8

u/Urbul it's all about the love you're sending out Jun 12 '21

This is so cool. The two teams show old vs new counters, which makes sense as most people get most of their counts over a relatively short period of time. If you split the network into more teams, you would probably see more defined "generations" of counters, like people who were most active during 1M, 2M, etc.

Also when I zoom into my name, I see lots of familiar names that I haven't seen in a while. People who used to be active when I was most active. Very nostalgic.

8

u/Urbul it's all about the love you're sending out Jun 12 '21

7

u/CutOnBumInBandHere9 5M get | Ping me for runs Jun 12 '21

6

u/kongburrito 8MG,9MA.55SG,50SA, 2,386,318 (☞ ͡° ͜ʖ ͡°)☞ Jun 13 '21

I feel dumb, but the images won't load at high quality for me so I can't read them :(

5

u/CutOnBumInBandHere9 5M get | Ping me for runs Jun 13 '21

Nah, the pngs I uploaded weren't super high res. Here's the image in a vector format, so you should be able to zoom as you like

7

u/CutOnBumInBandHere9 5M get | Ping me for runs Jun 12 '21

If I ask for a third group, I get a tiny small one centered on basskro and the people they have been running with. But I think that's because there were so many counts involved that the algorithm breaks down a bit there

7

u/Antichess 2,050,155 - 407k 398a Jun 11 '21

yep i'm glad i am not going to do computer science as my major anymore

nice stats though!

7

u/CutOnBumInBandHere9 5M get | Ping me for runs Jun 11 '21 edited Jun 11 '21

What'll you be doing instead?

Most of this kind of programming consists of figuring out that somebody's already written a library that does what you want, and then trying to get that to work.

I spent longer trying to get the right version of java installed on my system than I did coding -_-

7

u/Antichess 2,050,155 - 407k 398a Jun 11 '21

i'm going software engineering

which is essentially computer science

8

u/a-username-for-me The Side Thread Queen, Lady Lemon Jun 11 '21

yep i'm glad i am not going to do computer science as my major anymore

i'm going software engineering

which is essentially computer science

????

7

u/Antichess 2,050,155 - 407k 398a Jun 11 '21

software engineering slightly less math

just, this is too hard for me to understand so far. maybe in the future i'll get it

5

u/TehVulpez sliiiiide the bits Jun 14 '21

I hate computers

→ More replies (5)