Everyone "knows" that listings in a prime borough cost more than listings in an outer one. But a single location label is a blunt tool. Room type, neighborhood clustering and factors a dataset never records all push nightly prices around, and raw medians by category mix those effects together. This guide explains how to use multiple regression to separate them, how to read the output, and what the model cannot tell you. It reports no results from any dataset.

The research question this method suits: which observable listing features (borough, room type, reviews, availability, neighborhood) have statistically significant associations with nightly price, and how much of the total price variance can they explain?

The honest framing for observational housing data: even with tens of thousands of listings and a dozen predictors, a substantial share of price variance usually stays unexplained. Apartment quality, photos, exact block location and host reputation are typically absent from the data.

Median Price by Borough: Why Raw Medians Mislead

A bar chart of median price by borough is the natural first look. Treat it as a question, not an answer. Two issues need checking before any ranking is trusted:

  • Composition: If one borough has a higher share of entire homes than another, its raw median conflates a borough effect with a listing-mix effect. This is exactly why regression is needed: to isolate the borough effect after holding room type constant.
  • Sample size: A borough or neighborhood with few listings can show an extreme median driven by a handful of luxury or budget outliers. Check the N behind each bar before trusting a ranking.

The takeaway: location matters, but raw medians cannot say how much once you account for what is being rented and where specifically within each area.

Price Distribution by Room Type

A box plot of price by room type shows the pricing structure. Read three things from it:

  • Tiers: If the interquartile ranges barely overlap, room type creates distinct price tiers.
  • Spread: Entire-home listings typically show far more variance than shared rooms. That heteroskedasticity (non-constant variance) matters for regression diagnostics, because OLS assumes equal variance.
  • Outliers: Very low prices on large units or very high prices on small ones may be data errors, misreported long-term discounts or unusual properties. Outliers inflate variance and can dominate coefficients if not handled, so decide on winsorizing, a log transform or robust regression, and report which.

The premium for a larger unit type is easy to see in a box plot, but its size after controlling for location needs the regression. A prime-borough private room can cost the same as an outer-borough entire home, which is why you cannot just eyeball the plot.

Neighborhood Rankings and Within-Borough Variation

Ranking neighborhoods by median price often shows that within-borough variation can swamp between-borough averages. A single neighborhood in a cheaper borough can rival the overall median of a pricier one, while parts of the pricier borough fall below the citywide average. Borough is a crude proxy for location, and neighborhood is where finer price segmentation tends to appear.

There is an experimental design problem. You cannot randomly assign listings to neighborhoods, so this is purely observational. Neighborhoods differ on many unmeasured variables, such as subway access, restaurant density, perceived safety, building quality and tourist foot traffic. High prices in a neighborhood might reflect those amenities, or they might reflect selection (only high-end hosts list there). A ranking alone does not support a causal claim.

Sample size matters too. A median based on 50 listings is noisier than one based on 2,000. Report counts or confidence intervals beside every neighborhood estimate.

Numeric Feature Correlations

A correlation heatmap of numeric predictors (number of reviews, minimum nights, reviews per month, availability) serves two purposes.

  • Multicollinearity check: Low correlations among predictors mean the regression can separate their effects. Some correlations are mechanical, such as total reviews and reviews per month, which both grow with listing age.
  • Signal check: If numeric features correlate only weakly with price, the predictive power must come from categorical variables such as room type, borough and neighborhood, which a correlation matrix does not show.

Be careful with reading causes into the numeric features. Review count and price may be linked in both directions: popular listings get more bookings and more reviews, cheap listings may draw more bookings from budget travelers, and high prices may deter bookings. Without experimental manipulation of price, those stories cannot be untangled. Availability has the same ambiguity: high availability might mean a professional operator pricing competitively, or an unloved listing. A correlation cannot distinguish them, so test the predictor in the regression after controlling for room type and location.

Reading Price Regression Coefficients

The coefficients of a multiple regression show effect sizes after controlling for all other predictors simultaneously. A typical specification for this problem uses price (or log price) as the outcome, with room type and borough dummies, optional neighborhood indicators, and numeric controls.

  • Dummy coefficients: Each is a difference from the reference category (for example, private room or one reference borough), in dollars if price is not logged, or approximately in percent if it is.
  • Numeric coefficients: The change in price per unit of the predictor. A small per-day coefficient on availability can still matter over a 180-day range, so convert to a meaningful scale before judging.
  • Significance: Check p-values and confidence intervals, and flag non-significant predictors rather than interpreting their signs.
  • R-squared: It states how much variance the model explains. A low value means the model is a weak basis for prediction. A moderate value means you explain a meaningful share and leave the rest to unmeasured factors.
  • Residual plots: If residuals are heteroskedastic or non-normal, the standard errors are wrong and the p-values mislead.

Regression Assumptions You Must Check

Before you trust any regression output, check these:

  • Linearity: Is the relationship between predictors and price actually linear? Plot residuals vs fitted values. If you see a curve, you need transformations (log price?) or polynomial terms.
  • Independence: Are observations independent? If the same host has 5 listings, those prices are clustered. You need clustered standard errors or mixed models.
  • Homoskedasticity: Do residuals have constant variance? Larger unit types usually have much more price spread than shared rooms. Use robust standard errors or weighted least squares.
  • Normality: Are residuals normally distributed? Check a Q-Q plot. Heavy tails or skew suggest outliers or a log transformation.
  • No multicollinearity: Check VIF scores. If VIF > 10, you have predictors so correlated you can't separate their effects. Drop one or use regularization.

If an analysis does not report these diagnostics, you have no idea if the coefficients are trustworthy. Always ask: "Did you check the assumptions?"

Geographic Price Distribution

A scatter of latitude and longitude, colored by price, can reveal spatial clustering that borough-level analysis misses. Look for:

  • Price corridors: Elevated prices that follow transit lines, waterfronts and tourist draws, and dips where access is poor. Distance from the center creates a rough gradient, but it is usually lumpy rather than smooth.
  • Heterogeneity within a borough: Borough dummies average over very different areas, leaving large within-borough variance unexplained.

Exact coordinates could add predictive power in a geospatial model (kriging, spatial regression, or latitude and longitude polynomials). Even then the analysis stays observational. Proximity to stations, restaurants and parks correlates with price, but you cannot randomize apartment location, and unmeasured neighborhood quality still confounds everything.

What the Model Can and Can't Tell You

A regression gives conditional associations, not causal effects. You can say: "Holding all else constant, entire homes rent for more than private rooms by this amount." You cannot say: "Converting your private room to an entire home will raise your price by that amount," because hosts who can offer entire homes differ systematically from those who rent rooms.

A large share of pricing is usually unmeasured. What sits in that residual?

  • Apartment quality: Renovated kitchen vs dated finishes. Doorman building vs walk-up. City views vs airshaft. Most datasets do not capture this.
  • Photos and presentation: Professional photography and compelling descriptions drive bookings and support premium pricing. There is rarely a variable for this.
  • Host reputation: Superhost status, response rate, cancellation history. If your data lacks them, they are in the residual.
  • Exact block location: Same neighborhood, different sides of the street. Near the subway vs a long walk. Latitude and longitude help but do not capture this fully.
  • Seasonality and demand shocks: A snapshot misses price dynamics. Hosts raise prices during big events. The model averages over this.

Report the final sample size after cleaning. If many rows were dropped for missing values, ask whether expensive or cheap listings were more likely to be dropped, because that is selection bias. Also check how R-squared was computed. If it comes from the same data used to fit the model, it is overstated. A proper approach is to split the data, train on most of it, and report R-squared on the held-out part.

How to Use a Price Model for Pricing Decisions

If you are a host setting a price:

  1. Start with the baseline for your location and room type from the fitted model.
  2. Adjust for neighborhood if the model includes neighborhood effects and the estimate rests on enough listings.
  3. Do not chase predictors that test as negligible in your own data.
  4. Check comparable listings in your exact neighborhood. The model gives a baseline; comparables give the market rate including all the unmeasured quality factors.
  5. Run an experiment: list at your estimated price for two weeks. If you get no bookings, lower the price a little and repeat. If you are booked solid, raise it a little. Let the market reveal willingness to pay.

If you are an investor choosing where to buy:

The regression tells you average price premiums, but individual listings vary widely around them. That spread is opportunity as well as risk: a well-run, well-photographed property can capture the upside, while a mediocre one will sit below the average. Avoid the category entirely if you are not confident you can beat the average.

When Borough and Room Type Aren't Enough

The regression model gives you population-level average effects. But your listing is not average. A penthouse with park views is underpredicted by a generic "large unit in a prime borough" estimate, and a windowless basement room is overpredicted by a generic "private room" estimate.

The model's residuals (actual price minus predicted price) show which listings are expensive or cheap relative to their observable features. Large positive residuals suggest the host found a way to charge more through photos, amenities or reputation. Large negative residuals suggest underpricing or genuinely lower quality.

You can use residuals to screen for undervalued listings (negative residual plus good latent quality) or overpriced ones (positive residual plus mediocre latent quality). This only works if you can observe the latent quality yourself, through a visit, photos and reviews, since the model cannot measure it.

For portfolio analysis, aggregate residuals by host. A host whose listings consistently show positive residuals has pricing power through brand, service or quality. A host with consistently negative residuals may be leaving money on the table.

The Geographic Opportunity: Reading Price Corridors

If a geographic plot shows price corridors, there are plausible explanations to test: transit access, waterfront views, and proximity to tourist draws. But correlation is not causation. High prices near transit might reflect selection: developers built high-quality buildings near transit, and those buildings command premiums. A low-quality apartment near a station might still rent cheaply.

To test this properly you would need an experiment: randomly assign otherwise-identical apartments to locations with and without transit access, then measure price differences. Since that is impossible, the best observational approach is matching: compare listings that are similar on all measured features except the one of interest. If matched pairs show a price gap, you have stronger evidence for a causal effect of that feature.

A regression does a crude version of this by controlling for borough, room type and other predictors, but it cannot control for unmeasured apartment quality. If high-quality apartments cluster near transit, the "transit premium" is confounded. Always ask what the causal story is, and what you are assuming is not correlated with your treatment variable.

Your turn

Bring your own data and the question you actually need answered.

MCP AnalyticsData science by email Send us your data and your question, and we will reply. ds@mcpanalytics.ai

Frequently Asked Questions

Why use multiple regression instead of comparing medians by borough or room type?

Raw medians mix several effects. If one borough has a higher share of entire homes, its median reflects both the borough and the listing mix. Multiple regression estimates each effect while holding the others constant, so borough, room type and neighborhood can be separated.

How much does location within a city affect listing prices?

Borough is a crude proxy for location, because neighborhoods inside one borough can differ more than the boroughs do. Neighborhood indicators, or latitude and longitude terms in a spatial model, capture price corridors that follow transit lines, waterfronts and tourist draws. Check the sample size behind each neighborhood before trusting its estimate.

Do review counts or availability affect listing prices?

That is an empirical question for your data, and the effects are hard to read causally. Popular listings collect more reviews, cheap listings can attract more bookings, and high availability can signal either professional hosts or unloved listings. Test these predictors in the regression after controlling for room type and location, and check significance before acting on them.

Can I predict the price of a new listing with this kind of model?

You can estimate a baseline from room type, borough and neighborhood, but much of price variation comes from factors a typical dataset does not hold, such as apartment quality, photos, exact block location and host reputation. Report R-squared on held-out data, treat the output as a ballpark, and compare against live comparable listings.

What to Take Away (and What Not To)

A well-specified regression lets you separate room type, borough and neighborhood effects, test whether numeric features such as reviews and availability add anything once location and listing type are controlled, and see how much variance stays unexplained.

It does not give causal effects. The regression shows conditional associations. To claim that offering a larger unit type causes a price increase, you would need random assignment: take many hosts, randomly assign half to each type, and compare average prices. That is not happening, so the coefficient is descriptive: in this market, at this time, the difference is what it is on average, controlling for location.

For investment decisions, use the analysis as a starting point, not an endpoint. Identify neighborhoods with high median prices and low variance (consistent premiums, less risk) and those with high median and high variance (big upside if you can capture the top quartile, big downside if you are mediocre). Then visit properties, assess quality, run the numbers on acquisition cost vs rental income, and decide on the full picture.

Next Steps: Build Your Own Price Model

Your market has its own price drivers. Maybe proximity to beaches matters more than transit access. Maybe host language drives a premium in tourist-heavy areas. Maybe minimum night requirements matter in markets with more long-term renters.

The only way to know is to run the analysis on your data. Collect listing data, clean it (handle outliers, missing values, data errors), specify your regression (choose predictors based on market knowledge), check assumptions (residual plots, VIF, normality tests), interpret coefficients (magnitude, significance, practical importance), and test predictions (train/test split, out-of-sample R-squared).

Remember that regression describes the past, not the future. Markets shift, and a neighborhood that commanded premiums can saturate with new listings. Re-run the analysis periodically to track how price drivers evolve. Coefficients are snapshots, not laws of nature.

And always ask: What is the experimental design? If you cannot randomize, you are estimating associations, not causes. State the limitations, check your assumptions, and do not overstate conclusions.

Try the method on your own data: Upload a CSV and run a linear regression free →