Compare commits
6 Commits
83cd0c438e
...
f8a4f11d02
Author | SHA1 | Date |
---|---|---|
Nuno Sempere | f8a4f11d02 | 1 year ago |
Nuno Sempere | 62837cac47 | 1 year ago |
Nuno Sempere | 7ce3ae9819 | 1 year ago |
Nuno Sempere | 6ffef9d8cf | 1 year ago |
Nuno Sempere | 1bff211429 | 1 year ago |
Nuno Sempere | 99bab90f4c | 1 year ago |
@ -0,0 +1,11 @@
|
||||
## Why I need subscribers' names
|
||||
|
||||
This took me a while to figure out:
|
||||
|
||||
- People wanting to overflow someone's inbox can subscribe them to a lot of newsletters.
|
||||
- Because I'm using relatively standard software, I've been getting large numbers of spurious signups.
|
||||
- Sending a confirmation email doesn't fix this, because then the victim is just overflowed with confirmation emails
|
||||
|
||||
So that's why I'll only accept subscriptions for which the person gives a real-sounding name. Apparently substack has also been experiencing problems with this.
|
||||
|
||||
Anyways, if you don't want to give a real name, you can just input "Testy McTestFace" or similar.
|
@ -0,0 +1,40 @@
|
||||
Impact markets as a mechanism for not loosing your edge
|
||||
========================================================
|
||||
|
||||
Here is a story I like about how to use impact markets to produce value:
|
||||
|
||||
- You are Open Philanthropy and you think that something is not worth funding because it doesn't meet your bar
|
||||
- You agree that if you later change your mind and *in hindsight*, after the project is completed, come to think you should have funded it, you'll buy the impact shares, in *n* years. That is, if the project needs $X to be completed, you promise you'll spend $X plus some buffer buying its impact shares.
|
||||
- The market decides whether you are wrong. If the market is confident that you are wrong, it can invest in a project, make it happen, and then later be paid once you realize you were wrong
|
||||
|
||||
The reverse variant is a normal prediction market:
|
||||
|
||||
- You are Open Philanthropy, and you decide that something is worth funding
|
||||
- Someone disagrees, and creates a prediction market on whether you will change your mind in *n* years
|
||||
- You've previously committed to betting some fraction of a grant on such markets
|
||||
- When the future arrives, if you were right you get more money, if you were wrong you give your money to people who were better at predicting your future evaluations than you, and they will be more able to shift said prediction markets in the future.
|
||||
|
||||
So in this story, you create these impact markets and prediction markets because you appreciate having early indicators that something is not a good idea, and you don't want to throw good money after that. You also anticipate being more right if you give the market an incentive to prove you wrong. In this story, you also don't want to lose money, so to keep your edge, you punish yourself for being wrong, and in particular you don't mind giving your money to people who have better models of the future than you do, because, for instance, you could choose to only bet against people you think are altruistic.
|
||||
|
||||
A variant of this that I also like is:
|
||||
|
||||
- You are the Survival and Flourishing Fund. You think that your methodology is much better, and that OpenPhilanthropy's longtermist branch is being too risk averse
|
||||
- You agree on some evaluation criteria, and you bet $50M money that your next $50M will have a higher impact than their next $50M
|
||||
- At the end, the philanthropic institution which has done better gets $50M from the other.
|
||||
|
||||
In that story, you make this bet because you think that replacing yourself with a better alternative would be a positive.
|
||||
|
||||
Contrast this with the idea of impact markets which I've seen in the water supply, which is something like "impact certificates are like NFTs, and people will want to have them". I don't like that story, because it's missing a lot of steps, and purchasers of impact certificates are taking some very fuzzy risks that people will want to buy the impact-NFTs.
|
||||
|
||||
Some notes:
|
||||
|
||||
- Although in the end this kind of setup could move large amounts of money, I'd probably recommend starting very small, to train the markets and test and refine the evaluation systems.
|
||||
- Note that for some bets, Open Philanthropy doesn't need to believe that they are more than 50% likely to succeed, it just has to believe that it's overall worth it. E.g., it could have a 20% chance of succeeding but have a large payoff. That's fine, you could offere a market which takes those odds into account.
|
||||
|
||||
<p>
|
||||
<section id='isso-thread'>
|
||||
<noscript>Javascript needs to be activated to view comments.</noscript>
|
||||
</section>
|
||||
</p>
|
||||
|
||||
|
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 71 KiB |
@ -0,0 +1,73 @@
|
||||
<h1>Inflation-proof assets</h1>
|
||||
|
||||
<p>Can you have an asset whose value isn’t subject to inflation? I review a few examples, and ultimatly conclude that probably not. I’ve been thinking about this in the context of prediction markets—where a stable asset would be useful—and in the context of my own financial strategy, which I want to be robust. But these thoughts are fairly unsophisticated.</p>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th> Asset </th>
|
||||
<th> Resistant to inflation </th>
|
||||
<th> Upsides </th>
|
||||
<th> Downsides </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td> Government currencies </td>
|
||||
<td> No </td>
|
||||
<td> Easy to use in the day-to-day </td>
|
||||
<td> At 3% inflation, value halves every 25 years. </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Cryptocurrencies </td>
|
||||
<td> A bit </td>
|
||||
<td> Not completely correlated with currencies </td>
|
||||
<td> <ul><li>Depends on continued community interest</li><li>More volatile</li>Hard to interface with mainstream financial system</li><li>Normally not private</li></ul> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Stock market </td>
|
||||
<td> Mediumly </td>
|
||||
<td> <ul><li> Easy to interface with the mainstream financial system </li><li> Somewhat resistant to inflation</ul> </td>
|
||||
<td> <ul><li> <em>Nominal</em> increases in value are taxed (!) </li><li> Not resistant to civilizational catastrophe </ul> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Noble metals </td>
|
||||
<td> Fairly </td>
|
||||
<td> <ul><li> Can be melted and recast, making it in theory untraceable </li><li> Has historically kept its value</ul> </td>
|
||||
<td> <ul><li> Depends on continued societal interest </li><li> Aluminium previously went down in value due to increased availability. This could also happen with other noble metals e.g., in the case of meteorite mining.</ul> </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<p>Some other asset classes I looked into:</p>
|
||||
|
||||
<ul>
|
||||
<li>Government bonds</li>
|
||||
<li>Real state assets</li>
|
||||
<li>Various financial instruments</li>
|
||||
<li>Venture capitalist investments</li>
|
||||
<li>A clan or family</li>
|
||||
<li>Some other engine of value</li>
|
||||
<li>Prestige</li>
|
||||
<li>…</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>General argument</h2>
|
||||
|
||||
<p>Large levels of wealth correspond to claims on the labor of other people, and in the longer term, over the labor of people who don’t yet exist. But future generations can always renegue on the promises made by their predecessors, for instance by inflating their currency. Therefore, a general inflation-proof asset doesn’t exist.</p>
|
||||
|
||||
<p>Overall I’d be more optimistic about inflation avoidance strategies if they directly addressed that argument.</p>
|
||||
|
||||
<h2>Caveats to the general argument</h2>
|
||||
|
||||
<p>Even if you can’t get a generic inflation-proof asset, you can probably get partial protection through stocks & other instruments. Probably an optimal strategy would be to:</p>
|
||||
|
||||
<ol>
|
||||
<li>Use stocks/bonds/mainstream financial instruments to counteract run-of-the-mill inflation</li>
|
||||
<li>Have some amount of gold/silver/cryptocurrencies which could be useful in the case of various catastrophes.</li>
|
||||
</ol>
|
||||
|
||||
|
||||
<p>Overall, though, I view the second step as pretty much optional and a bit paranoid. It’s not clear what the level is at which I’d actually implement it, but it’s definitely higher than my current net worth.</p>
|
@ -0,0 +1,44 @@
|
||||
Inflation-proof assets
|
||||
======================
|
||||
|
||||
Can you have an asset whose value isn't subject to inflation? I review a few examples, and ultimatly conclude that probably not. I've been thinking about this in the context of prediction markets—where a stable asset would be useful—and in the context of my own financial strategy, which I want to be robust. But these thoughts are fairly unsophisticated, so comments, corrections and expansions are welcome.
|
||||
|
||||
| Asset | Resists inflation? | Upsides | Downsides |
|
||||
|-----------------------|------------------------|-----------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| Government currencies | No | Easy to use in the day-to-day | <ul><li>At 3% inflation, value halves every 25 years.</li></ul> |
|
||||
| Cryptocurrencies | A bit | Not completely correlated with currencies | <ul><li>Depends on continued community interest</li><li>More volatile</li>Hard to interface with mainstream financial system</li><li>Normally not private</li></ul> |
|
||||
| Stock market | Mediumly | <ul><li> Easy to interface with the mainstream financial system </li><li> Somewhat resistant to inflation</ul> | <ul><li> *Nominal* increases in value are taxed (!) </li><li> Not resistant to civilizational catastrophe <li>Past returns don't guarantee future returns, and American growth may be slowing down.</li></ul> |
|
||||
| Noble metals | Fairly | <ul><li> Can be melted and recast, making it in theory untraceable </li><li> Has historically kept its value</ul> | <ul><li> Depends on continued societal interest </li><li> Aluminium previously went down in value due to increased availability. This could also happen with other noble metals e.g., in the case of meteorite mining.</ul> |
|
||||
|
||||
Some other asset classes I looked into:
|
||||
|
||||
- Government bonds
|
||||
- Real state assets
|
||||
- Various financial instruments
|
||||
- [Inflation protected bonds](https://www.bankofcanada.ca/markets/government-securities-auctions/calls-for-tenders-and-results/real-return-bonds/real-return-bonds-index-ratio/) (uncommon)
|
||||
- [Inflation prediction markets](https://kalshi.com/forecasts/inflation) (restricted in volume)
|
||||
- Venture capitalist investments
|
||||
- A clan or family
|
||||
- Some other engine of value
|
||||
- Prestige
|
||||
- ...
|
||||
|
||||
## General argument
|
||||
|
||||
Large levels of wealth correspond to claims on the labor of other people, and in the longer term, over the labor of people who don't yet exist. But future generations can always renegue on the promises made by their predecessors, for instance by inflating their currency. Therefore, a general inflation-proof asset doesn't exist.
|
||||
|
||||
Overall I'd be more optimistic about inflation avoidance strategies if they directly addressed that argument.
|
||||
|
||||
## Caveats to the general argument
|
||||
|
||||
Even if you can't get a generic inflation-proof asset, you can probably get partial protection through stocks & other instruments. Probably an optimal strategy would be to:
|
||||
|
||||
1. Use stocks/bonds/mainstream financial instruments to counteract run-of-the-mill inflation
|
||||
2. Have some amount of gold/silver/cryptocurrencies which could be useful in the case of various catastrophes.
|
||||
3. Have some asset which produces value across a wide range of civilizational outcomes—e.g., allies, energy production infrastructure, personal skills, etc.
|
||||
|
||||
Overall, though, I view the second step as pretty much optional and a bit paranoid. It's not clear what the level is at which I'd actually implement it, but it's definitely higher than my current net worth.
|
||||
|
||||
<p><section id='isso-thread'>
|
||||
<noscript>Javascript needs to be activated to view comments.</noscript>
|
||||
</section></p>
|
After Width: | Height: | Size: 77 KiB |
@ -0,0 +1,231 @@
|
||||
## Packages
|
||||
|
||||
library(ggplot2)
|
||||
library(ggthemes)
|
||||
|
||||
## Build the prior
|
||||
|
||||
min_95_ci = 1/5000
|
||||
max_95_ci = 1/100
|
||||
|
||||
magic_constant = 1.6448536269514722
|
||||
mean_lognormal = (log(min_95_ci) + log(max_95_ci))/2
|
||||
sigma_lognormal = (log(max_95_ci) - log(min_95_ci))/
|
||||
( 2 * magic_constant)
|
||||
|
||||
num_points = 50000 ## 100000
|
||||
|
||||
xs = c(0:num_points)/num_points
|
||||
ys = dlnorm(xs, meanlog = mean_lognormal, sdlog = sigma_lognormal)
|
||||
ys = ys / sum(ys)
|
||||
ys[1] = 2/3 ## so that it ends as 40% after normalization: 2/3 / (2/3 + 1) = 0.4
|
||||
ys = ys / sum(ys)
|
||||
cat("Checking that sum(ys) = 1")
|
||||
cat(c("sum(ys) =", sum(ys)))
|
||||
|
||||
chicken_v_human = list()
|
||||
chicken_v_human$xs = xs
|
||||
chicken_v_human$ys = ys
|
||||
chicken_v_human$color = c("red", rep("blue", num_points ))
|
||||
chicken_v_human = as.data.frame(chicken_v_human)
|
||||
|
||||
## Plot the prior
|
||||
title_text = "Prior over human vs chicken relative values"
|
||||
subtitle_text=""
|
||||
label_x_axis = "xs"
|
||||
label_y_axis = "P(x)"
|
||||
|
||||
### Plot the prior over the whole x domain
|
||||
ggplot(data=chicken_v_human, aes(x=xs, y=ys, color=color))+
|
||||
geom_point(size=0.5, aes(colour=color), show.legend = FALSE)+
|
||||
labs(
|
||||
title=title_text,
|
||||
subtitle=subtitle_text,
|
||||
x=label_x_axis,
|
||||
y=label_y_axis
|
||||
) +
|
||||
theme_tufte() +
|
||||
theme(
|
||||
legend.title = element_blank(),
|
||||
plot.title = element_text(hjust = 0.5),
|
||||
plot.subtitle = element_text(hjust = 0.5),
|
||||
legend.position="bottom",
|
||||
legend.box="vertical",
|
||||
axis.text.x=element_text(angle=60, hjust=1),
|
||||
plot.background=element_rect(fill = "white",colour = NA)
|
||||
)+
|
||||
scale_colour_manual(values = c("navyblue", "red"))
|
||||
|
||||
getwd() ## Working directory on which the file will be saved. Can be changed with setwd("/your/directory")
|
||||
height = 5
|
||||
width = floor(height*(1+sqrt(5))/2)
|
||||
ggsave("prior.png", width=width, height=height)
|
||||
|
||||
### Plot the prior over only part of the x domain
|
||||
subtitle_text="(zoomed in)"
|
||||
ggplot(data=chicken_v_human, aes(x=xs, y=ys))+
|
||||
geom_point(color="navyblue", size=0.05)+
|
||||
labs(
|
||||
title=title_text,
|
||||
subtitle=subtitle_text,
|
||||
x=label_x_axis,
|
||||
y=label_y_axis
|
||||
) +
|
||||
theme_tufte() +
|
||||
theme(
|
||||
legend.title = element_blank(),
|
||||
plot.title = element_text(hjust = 0.5),
|
||||
plot.subtitle = element_text(hjust = 0.5),
|
||||
legend.position="bottom",
|
||||
legend.box="vertical",
|
||||
axis.text.x=element_text(angle=60, hjust=1),
|
||||
plot.background=element_rect(fill = "white",colour = NA)
|
||||
)+
|
||||
scale_x_continuous(limits = c(0, 0.05))+
|
||||
scale_y_continuous(limits = c(0, 0.005))
|
||||
|
||||
ggsave("prior-zoomed-in.png", width=width, height=height)
|
||||
|
||||
## Construct p(h|x)
|
||||
|
||||
p_w = 0.5
|
||||
rp_estimate = 0.332
|
||||
|
||||
### Construct p(h|xW)
|
||||
|
||||
chicken_v_human$p_h_cond_x_W = rep(1/num_points, num_points+1)
|
||||
|
||||
### Construct p(h|x(not W))
|
||||
are_within_one_order_of_magnitude = function(p1, p2){
|
||||
return(abs(log(p1/p2)/log(10)) <= 1)
|
||||
}
|
||||
are_within_one_order_of_magnitude(1,10)
|
||||
are_within_one_order_of_magnitude(0.1,10)
|
||||
are_within_one_order_of_magnitude(0.1,1)
|
||||
|
||||
start.time <- Sys.time()
|
||||
count = 0
|
||||
cache = TRUE
|
||||
if(!cache){
|
||||
p_h_cond_x_not_W = c()
|
||||
for(x in (0:num_points)/num_points){
|
||||
print(count)
|
||||
count = count + 1
|
||||
is_within_one_oom_from_x = function(y){
|
||||
are_within_one_order_of_magnitude(x,y)
|
||||
}
|
||||
if(is_within_one_oom_from_x(rp_estimate)){
|
||||
num_close_to_x = sum(sapply(xs, is_within_one_oom_from_x))
|
||||
p_h_cond_x_not_W <- c(p_h_cond_x_not_W, 1/num_close_to_x)
|
||||
}else{
|
||||
p_h_cond_x_not_W <- c(p_h_cond_x_not_W, 0)
|
||||
}
|
||||
}
|
||||
end.time <- Sys.time()
|
||||
time.taken <- end.time - start.time
|
||||
time.taken
|
||||
}
|
||||
|
||||
chicken_v_human$p_h_cond_x_not_W = p_h_cond_x_not_W
|
||||
|
||||
### Construct p(h|x) from p(h|xW) and p(h|x(not W))
|
||||
|
||||
chicken_v_human$p_h_cond_x = p_w * chicken_v_human$p_h_cond_x_W + (1-p_w)* chicken_v_human$p_h_cond_x_not_W
|
||||
|
||||
### plot p(h|x)
|
||||
title_text = "P(h|x) update"
|
||||
subtitle_text=""
|
||||
label_x_axis = "xs"
|
||||
label_y_axis = "P(h|x)"
|
||||
ggplot(data=chicken_v_human, aes(x=xs, y=p_h_cond_x, color=color))+
|
||||
geom_point(size=0.05, aes(colour=color), show.legend = FALSE)+
|
||||
labs(
|
||||
title=title_text,
|
||||
subtitle=subtitle_text,
|
||||
x=label_x_axis,
|
||||
y=label_y_axis
|
||||
) +
|
||||
theme_tufte() +
|
||||
theme(
|
||||
legend.title = element_blank(),
|
||||
plot.title = element_text(hjust = 0.5),
|
||||
plot.subtitle = element_text(hjust = 0.5),
|
||||
legend.position="bottom",
|
||||
legend.box="vertical",
|
||||
axis.text.x=element_text(angle=60, hjust=1),
|
||||
plot.background=element_rect(fill = "white",colour = NA)
|
||||
)+
|
||||
scale_colour_manual(values = c("navyblue", "red"))
|
||||
|
||||
ggsave("p_h_x_update.png", width=width, height=height)
|
||||
|
||||
## Calculate p_h
|
||||
|
||||
p_h = sum(chicken_v_human$ys * chicken_v_human$p_h_cond_x)
|
||||
cat(p_h)
|
||||
|
||||
## Calculate p_x_given_h
|
||||
|
||||
chicken_v_human$p_x_given_h = chicken_v_human$ys * chicken_v_human$p_h_cond_x / p_h
|
||||
|
||||
## Plot p_x_given_h
|
||||
|
||||
title_text = "Posterior, P(x|h)"
|
||||
subtitle_text=""
|
||||
label_x_axis = "xs"
|
||||
label_y_axis = "P(x|h)"
|
||||
ggplot(data=chicken_v_human, aes(x=xs, y=p_x_given_h, color=color))+
|
||||
geom_point(size=0.5, aes(colour=color), show.legend = FALSE)+
|
||||
labs(
|
||||
title=title_text,
|
||||
subtitle=subtitle_text,
|
||||
x=label_x_axis,
|
||||
y=label_y_axis
|
||||
) +
|
||||
theme_tufte() +
|
||||
theme(
|
||||
legend.title = element_blank(),
|
||||
plot.title = element_text(hjust = 0.5),
|
||||
plot.subtitle = element_text(hjust = 0.5),
|
||||
legend.position="bottom",
|
||||
legend.box="vertical",
|
||||
axis.text.x=element_text(angle=60, hjust=1),
|
||||
plot.background=element_rect(fill = "white",colour = NA)
|
||||
)+
|
||||
scale_colour_manual(values = c("navyblue", "red"))
|
||||
|
||||
ggsave("posterior.png", width=width, height=height)
|
||||
|
||||
### Plot the posterior over only part of the x domain
|
||||
subtitle_text="(zoomed in)"
|
||||
ggplot(data=chicken_v_human, aes(x=xs, y=p_x_given_h))+
|
||||
geom_point(color="navyblue", size=0.05)+
|
||||
labs(
|
||||
title=title_text,
|
||||
subtitle=subtitle_text,
|
||||
x=label_x_axis,
|
||||
y=label_y_axis
|
||||
) +
|
||||
theme_tufte() +
|
||||
theme(
|
||||
legend.title = element_blank(),
|
||||
plot.title = element_text(hjust = 0.5),
|
||||
plot.subtitle = element_text(hjust = 0.5),
|
||||
legend.position="bottom",
|
||||
legend.box="vertical",
|
||||
axis.text.x=element_text(angle=60, hjust=1),
|
||||
plot.background=element_rect(fill = "white",colour = NA)
|
||||
)+
|
||||
scale_x_continuous(limits = c(0, 0.1))+
|
||||
scale_y_continuous(limits = c(0, 0.005))
|
||||
|
||||
ggsave("posterior-zoomed-in.png", width=width, height=height)
|
||||
|
||||
## Show some indicators
|
||||
|
||||
chicken_v_human$p_x_given_h[1]
|
||||
|
||||
prior_average_value = sum(chicken_v_human$xs * chicken_v_human$ys)
|
||||
posterior_average_value = sum(chicken_v_human$xs * chicken_v_human$p_x_given_h)
|
||||
prior_average_value
|
||||
posterior_average_value
|
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
/usr/bin/markdown -f fencedcode -f ext -f footnote -f latex index.md > index.html
|
||||
|
After Width: | Height: | Size: 730 KiB |
After Width: | Height: | Size: 59 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 75 KiB |
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 99 KiB |
After Width: | Height: | Size: 130 KiB |