pull down to refresh

Research in Public #05: Does btc price affect SN behavior? Experiment failure!
Note 1. Quick update from last time. I checked whether the territory owner matters, and it turns out that it does! This implies that some of the relationship between territory cost and post zaps is due to the generosity of the owner. Including territory owner in the regression changes the estimates, but the basic result is still the same: higher posting costs leads to fewer posts, but higher quality posts. I won't bother showing these results here (they can be seen on github), but they'll probably make it into the actual paper
Note 2. The stuff in today's post is highly technical and there aren't any charts. People not interested in econometrics can skip to the last section.

Introduction

In #1243188 I suggested to @k00b that we engage in a research project using SN data. The idea would be to use this data to study: A) how micropayments with real money affects internet discourse; and B) barriers to the adoption of self-custody. I also promised @Undisciplined that I'd carry out the research in public, since many people might not know what economics research looks like, and may be curious as to how the process plays out. You can follow all of the updates here.

Recap thus far

So far, I've demonstrated that users are indeed responsive to posting fees:
  • The quantity of posts goes down when territory posting costs go up (#1253062)
  • The quality of posts, as measured by zaps and comments in the first 48 hours, goes up when territory posting costs go up (#1255322)
  • These results are identified from changes to territory posting costs and comparison of responses across territories. They are not driven by spurious correlations coming from global time trends or peculiarities about individual territories.
The next thing I wanted to ask is: Does the fact that it's real money matter?
This is non-trivial. It's possible, however unlikely, that SN users primarily treat zaps like a scoreboard, and that their behavior wouldn't change whether zapping was based on fake tokens or on real money. We need some test to rule out that possibility.

Some technical mumbo jumbo

The first thing I thought of is to add bitcoin price to the regression models. Unfortunately, this is not straightforward to do, due to a technical issue with how the model is set up.
To see why, let's consider the regression of quantity of posts on territory posting cost. The original model was:
\log Q_{it} = \beta \log C_{it} + \mu_i + \delta_t + \epsilon_{it} ~ ~ ~ ~ (1)
where i indexes a territory and t indexes a week, and:
  • Q_{it} is the number of posts in territory i in week t
  • C_{it} is the posting cost (in sats) in territory i in week t
  • \mu_i is a territory fixed effect that captures baseline differences across territories
  • \delta_t is a week fixed effect that captures an arbitrary time effect
  • \epsilon_{it} is the error term.
That was the estimated model. Suppose that in the true model, people don't respond just to the posting cost in sats, they respond to the dollar value of the posting cost. The true model would be:
\log Q_{it} = \beta \log P_{t} C_{it} + \mu_i + \delta_t + \epsilon_{it} ~ ~ ~ ~ (2)
where P_{t} is the dollar price of a sat in week t. Here's the problem. We can rewrite equation (2) as follows:
\begin{align}
\log Q_{it} &= \beta \log C_{it} + \beta \log P_{t} + \mu_i + \delta_t + \epsilon_{it} \\
&= \beta \log C_{it} + \mu_i + \tilde{\delta}_{t} + \epsilon_{it} ~ ~ ~ ~ ~ ~ ~ ~ (3)
\end{align}
where we've simply grouped terms so that:
\tilde{\delta}_{t} = \beta \log P_{t} + \delta_t ~ ~ ~ ~ (4)
Thus, equation (2) is equivalent to equation (1), with a redefinition of the fixed effects. Since the regression method will estimate arbitrary fixed effects for each time period t, running regressions using equation (1) or equation (2) would yield the exact same results for \beta.
Thus, we won't be able to learn anything new simply by re-doing the regressions with the dollar cost of the posting fees in the regressions. We'll have to think of some other approach.

Experimental failure!

One thought I had was to run the regression like in (1) / (3) [they're the same], assuming (2) is the true model. Then, after the regression recovers the values for \tilde{\delta}_{t}, I can regress that on \log P_{t} as in equation (4). Would the coefficient of that regression yield \beta?
Here are the results of those ill-advised regression:
============================================================
                                    Dependent variable:     
                               -----------------------------
                                      week fixed effect		
                                  (1)        (2)       (3)  
------------------------------------------------------------
log_price                      -1.120***  -0.171***  0.029* 
                                (0.115)    (0.066)   (0.015)
                                                            
Constant                       18.117***   4.492***  0.379**
                                (1.239)    (0.705)   (0.159)
                                                            
------------------------------------------------------------
Observations                      226        226       226  
R2                               0.296      0.030     0.016 
Adjusted R2                      0.292      0.025     0.012 
Residual Std. Error (df = 224)   0.985      0.560     0.126 
F Statistic (df = 1; 224)      93.989***   6.813***  3.741* 
============================================================
Note:                            *p<0.1; **p<0.05; ***p<0.01
(1): Week fixed effects from post quantity regression; beta=-0.244
(2): Week fixed effects from post quality (zaps) regression; beta=0.187
(3): Week fixed effects from post quality (comments) regression; beta=0.033
So the answer is, no, we don't recover the same values for \beta. But that wasn't necessarily unexpected. We'd only expect to recover the same \beta's if both the following were true:
  • Bitcoin price only affects user behavior through the dollar-value of posting costs
    • Unfortunately, this is unlikely since higher bitcoin price may directly affect interest levels on SN, irrespective of posting costs.
  • There are no residual time effects correlated with bitcoin price
    • Unfortunately, this also seems quite unlikely. Many things were changing with regard to SN's operation and incentive structure during this time, and these changes may just happen to correlate with bitcoin price movements, even if they're not causally related.
Since the above two points are unlikely to be true, the coefficients in these regressions don't tell us much. So, this approach was a bit unenlightening, and can be considered a failed attempt at deriving insights from the data. Yes, that happens frequently in empirical research!

How SHOULD bitcoin price affect behavior on SN?

To find a way forward, it might help to think of all the different ways bitcoin price might affect behavior on SN, and see if we can test that in such a way that the effect of bitcoin price can be isolated from other things going on at the same time.
Here are some possibilities:
  • Higher bitcoin price attracts more users and posts. Seems like we won't be able to separate that from time trends in SN's growth though.
  • Higher bitcoin price discourages unprofitable posts and encourages profitable posts. This seems promising, since a higher bitcoin price will amplify both profits and losses on SN. Thus, we should see a divergence in the number of profitable posts and unprofitable posts when bitcoin price is higher, even while controlling for arbitrary time trends in the total number of posts.
  • Another possibility is to keep the current framework, but impose stricter functional form assumptions on the arbitrary time trend, such that the time effects don't absorb the entire effect of bitcoin price.
  • Anything else? I am hereby asking SN users to help me think of ways to disentangle the effect of bitcoin price from general time trends in SN popularity and usage patterns.
Anyway that's all I have for today. Anyone who wants to vet the code can go to https://github.com/ed-kung/sn-research. I'll keep posting any time I spend a day doing substantial work on this project.
Well explained and I'm glad stackers get to witness a snag in the process.
Some random thoughts:
  1. Interactive fixed effects: If you assume BTC price affects users and/or territories differently, then you can interact the BTC price with the other fixed effects. That should keep the time FE from eating all the variation in BTC prices.
  2. The rewards system is relative to what other stackers are doing, so there are incentives for zapping and posting that are disconnected from purchasing power of the sats spent. It makes more sense to have stackers maximizing their net rewards than only being price sensitive to the input costs. Do you see the rewards earned by stackers? I'm not sure what the right way to include that information would be, but there might be something there.
  3. Can you aggregate the value of the sats on a finer timescale? If you convert the sats to their dollar value at the time of posting, then the within week variation in bitcoin price would keep the time FE from absorbing the price information.
reply
interactive fixed effects
Did you have any hypotheses about which users or territories might be more sensitive to price?
rewards system
I think I can back out some info about rewards. But more to the point, this reminds me that I need a model of zapping behavior. LIke, why do people even choose to zap?
finer timescale
One thought I had was not to bring the timescale lower (I think i would lose too much data), but to coarsen the fixed effects. Like, either use quarter fixed effects, or use a polynomial time trend, to allow weekly bitcoin price fluctuations to matter. This might be the most straightforward approach.
I'm also not a good time series econometrician (never took a class). So working with only time variation is not my forte.
reply
Did you have any hypotheses about which users or territories might be more sensitive to price?
I could come up with some ad hoc, but it shouldn't really matter. As a general hypothesis, I'd expect those who have been more active for a longer time to be less price sensitive and bitcoin related territories to be less price sensitive.
why do people even choose to zap?
That's partially answered in this post, at least in a way that no economist would doubt. From what I could tell, for most stackers, zapping more has earned them a net positive return. That's why I was on such a campaign to get stackers to zap more.
lose too much data
Why would you lose data converting to real-time dollar values? The fixed effects would still be weekly and granular btc price data must be available.
The difference should just be that you're averaging the dollar value of posting fees paid per territory, rather than multiplying the average bitcoin price for the week by the territory fee.
As I'm typing, I realize it wouldn't be easy to back out the direct impact of bitcoin price. You could still compare the sensitivity of posting behavior to bitcoin vs fiat denominated costs.
I'm not a time-series expert either and it was probably the part of econometrics I struggled with the most.
reply
Why would you lose data converting to real-time dollar values? The fixed effects would still be weekly and granular btc price data must be available.
You're right. I was thinking about it wrongly for a second there. I would be really surprised if daily fluctuations mattered even after controlling for week fixed effects. I should probably try it, but if that were to happen I'd probably think it was bot related.
That's partially answered in this post
This is why it's so tricky. If zapping actually leads to positive ROI denominated in sats, then higher bitcoin price should incentivize more zapping, not less. I do think there's some variation to be exploited regarding the return function between reward amount and zap amount.
Another tricky thing about this is that the reward system has changed multiple times throughout SN's life, which means I'd have to try and back out those periods.
reply
There was one month when the rewards were entirely based on zapping and another when they were entirely based on posting/commenting.
Maybe looking at those two months separately could tell us something about responsiveness to rewards for zapping.
reply
Good idea. I need to dig through k00b's announcements on reward changes and construct a history of regime switches.
reply
Can’t back it with stats, but feels normal that higher BTC prices mean smaller zaps and more friction posting where it’s pricey.
reply
Feels normal as in, "it would make sense", or "I did notice a pattern"?
reply
"it would make sense"
I’ve been on SN for like two years, and honestly, I zap pretty much the same as always. Maybe at the start I zapped less and with smaller amounts.
Might be interesting to throw up a poll about how zap habits change with Bitcoin price.
reply
Perhaps relevant to this discussion: #221151 and #287074
reply
Don’t remember seeing those posts, I’ll check them out! Thanks!
reply
Looks like they're from slightly before your time. I was obsessed with the rewards system early on. It's absolutely amazing applied mechanism design.
reply
Hahaha! You just made me realize I hit 2 years on SN last Saturday (Oct 11). Happy anniversary to me!
reply
Yeah, anecdotally my zapping or posting behavior doesn't change too much with bitcoin price fluctuations. But on a longer time scale / price scale it might.
Might be interesting to throw up a poll about how zap habits change with Bitcoin price.
Good idea
reply
I know SN isn't a "post to earn", even though you earn when you post ... but:
Which stackers do the best ROI on their investment in post fees? Same for comments, I guess.
reply
Which stackers do the best ROI on their investment in post fees?
The question is answerable from the data, but only in an anonymized way since I only have anonymous user ids and not their nyms.
reply
30 sats \ 2 replies \ @Sandman 3h
possibly maybe BTC price can affect the behavior of people because the higher the price, the lower the Sat people zap, though it may carry the same intended value.
reply
the higher the price, the lower the Sat people zap
Yes, I'm thinking I should direclty model zapping behavior next
reply
0 sats \ 0 replies \ @Sandman 2h
Okay then that would be thoughtful
reply