Interpreting beta coefficients in a regression model when fixing covariates Suppose I am interested in studying the effect of pizza on mortality across a number of countries.
y = Death [1/0]  
x1 = Pizza [1/0]  
x2 = Country [Italy/Germany/France]

In a logistic regression model, Country gets one-hot encoded so the model is:
y = b0 + b1 * Pizza + b2 * Italy + b3 * Germany + b4 * France
I'm interested to know how OddsRatio(b1) changes in Italy (vs. Germany and France). How should I proceed? Do I subset data to only Italy and rerun the LR model?
e.g. If I'm interested in Italy only, the model evaluates to y = b0 + b1 * Pizza + b2* Italy but this only provides the odds of death in Italy.
 A: I'm a bit confused how mortality is a binary outcome... it sounds like you are leaving out some details about your data. That being said, it sounds like you're interested in whether the effect of pizza differs between countries. This is an interaction hypothesis, so something like: (note that if country is dummy coded then one level is left out - i.e. France is implicitly when Italy and Germany both =0).
y = b0 + b1 * Pizza + b2 * Italy + b3 * Germany + b4 * Pizza*Italy + b5 * Pizza*Germany

You would then evaluate the interaction effect by comparing the model fit of the model with the two interactions to the model fit of the model without the two interactions.
A: I agree that fitting separate models is fiddly, especially if you want to conduct statistical tests of the difference. But you don't necessarily need country $\times$ pizza interactions. They are already built into the model because of the nonlinearity. I would advise against putting in such interactions unless there is a good reason, like theory.
Your large model is
$$\ln \left(\frac{p}{1-p} \right) =  b_0 + b_1 \cdot Pizza + b_2 \cdot Italy + b_3 \cdot Germany + b_4 \cdot Pizza \cdot Italy + b_5 \cdot Pizza \cdot Germany,$$
where $p$ is the probability of death. Exponentiating both sides yields the odds:
$$odds = \frac{p}{1-p} =  \exp \{b_0 + b_1 \cdot Pizza + b_2 \cdot Italy + b_3 \cdot Germany + b_4 \cdot Pizza \cdot Italy + b_5 \cdot Pizza \cdot Germany \}.$$
This means the odds are still a function of the country and pizza consumption.
In France, it's
$$\exp \{b_0 + b_1 \cdot Pizza \}.$$
In Italy, it's $$\exp \{b_0 + b_1 \cdot Pizza + b_2 + b_4 \cdot Pizza \}.$$
In Germany, it's $$\exp \{b_0 + b_1 \cdot Pizza + b_3 + b_5 \cdot Pizza \}.$$
The country coefficients reflect systematic differences in mortality from nation-level factors like the quality of the healthcare systems and exercise habits. It seems sensible to include those. The country $\times$ pizza coefficients would capture country differences in the effect of pizza on mortality. Maybe the pizza in Italy and Germany is more or less lethal than the pizza in France, but that has to come from some hypothesis or theory. Are there killer differences in toppings across countries? Do they deep fry the pizza first in some countries? Seems unlikely. So why include these variables since you still get an interaction without them?
To see that, start with a simpler model without explicit interactions:
$$\ln \left(\frac{p'}{1-p'} \right) =  \tilde b_0 + \tilde b_1 \cdot Pizza + \tilde b_2 \cdot Italy + \tilde b_3 \cdot Germany.$$
I changed the coefficient names to reflect the simplified model.
The odds still depend on the country since there are country coefficients inside $\exp \{.\}$
In France, it's
$$\exp \{\tilde b_0 + \tilde b_1 \cdot Pizza \}.$$
In Italy, it's
$$\exp \{\tilde b_0 + \tilde b_1 \cdot Pizza + \tilde b_2 \}.$$
In Germany, it's  $$\exp \{\tilde b_0 + \tilde b_1 \cdot Pizza + \tilde b_3 \}.$$
This shows that the interactions are baked into the functional form.
So how can you compare the change in odds in Italy vs. Germany and France? One way is to multiply $\tilde b_3$ by the German population as a share of France and Germany from your survey instead of 1. Germany is slightly bigger than France, so that might be ~$0.55$. Then you would compare $$\exp \{\tilde b_0 + \tilde b_1 \cdot Pizza + \tilde b_2 \}$$ with $$\exp \{\tilde b_0 + \tilde b_1 \cdot Pizza + \tilde b_3\cdot 0.55 \}.$$ This compares the odds for an Italian versus a hybrid person whos a bit more German than French.
Perhaps that seems odd (pun intended). You can also do a weighted version. Since these are rates, you will need a weighted harmonic mean:
$$\frac{1}{\frac{0.55}{\exp \{\tilde b_0 + \tilde b_1 \cdot Pizza + \tilde b_3 \}} + \frac{0.45}{\exp \{\tilde b_0 + \tilde b_1 \cdot Pizza \}}}$$
Here's an illustration analogous to your pizza example. I model the probability that a car was made abroad as a function of price and three (arbitrary) MPG groups of unequal size (here, 1 is inefficient, 2 is OK, and 3 is efficient). The odds for the three methods look like this:

The weighted harmonic mean of the odds gives slightly higher odds than the hybrid of Groups 2 and 3. It makes sense that the low-MPG cars have very low odds of being foreign, at any price, compared to medium and high-efficiency automobiles. This was the 1970s. You can use these to construct odds ratios, but I did not do that here.

Stata
/* Clean Up Data and Get Weights*/
sysuse auto, clear
_pctile mpg, percentiles(30, 80, 90) 
egen mpg_group = cut(mpg), at(0, `=r(r1)', `=r(r2)', 100) icodes
replace mpg_group = mpg_group + 1
tab mpg_group
sum 2.mpg_group if mpg_group != 1, meanonly
scalar s2 = r(mean)
sum 3.mpg_group if mpg_group != 1, meanonly
scalar s3 = r(mean)

/* Main Logit Model Without Interactions */
logit foreign i.mpg_group c.price, nolog
estimates store logit

/* Weighted Harmonic Mean of Odds */
margins mpg_group, ///
at(price = (3000(2000)16000) ) ///
expression(predict(pr)/(1 - predict(pr))) post
forvalues i=1/7 {
    local lincom "`lincom' (price`=1000 + 2000*`i'':1/( scalar(s2)*_b[`i'._at#2.mpg_group]^(-1) + scalar(s3)*_b[`i'._at#3.mpg_group]^(-1) ))"
    local margins_coeff_rename "`margins_coeff_rename' `i'._at = `=1000 + 2000*`i''"
}

nlcom `lincom', post
estimates store lincom

/*  MPG Group 1 Odds */
estimates restore logit
margins, ///
at(mpg_group = 1 price = (3000(2000)16000)) ///
expression(predict(pr)/(1 - predict(pr))) post
estimates store margins_g1

/* Weighted Hybrid of MPG Group 2-3 Odds */
estimates restore logit
margins, ///
at(2.mpg_group = `=scalar(s2)' 3.mpg_group = `=scalar(s3)' price = (3000(2000)16000)) ///
expression(predict(pr)/(1 - predict(pr))) post
estimates store margins_g23

/* Compare Odds */
coefplot lincom margins_g23 margins_g1 ///
, vertical noci recast(connected) offset(0) /// 
rename(`margins_coeff_rename' price* = "") ///
title("Odds for Foreign to Domestic Varying Price by Group") ///
ytitle("Odds") xlab(, grid) ///
legend(order(2 "Odds for a Hybrid Mix of MPG Groups 2 & 3" 1 "Weighted HM of MPG Group 2 & 3 Odds"  3 "Odds for MPG Group 1") row(3)) ///
note("Frankenstein Mix and Weighted Average are 0% Group 1, `=round(scalar(s2)*100,1)'% Group 2, and `=round(scalar(s3)*100,1)'% Group 3")

