<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Population stability index (PSI) calculation in Lakehouse monitor in Machine Learning</title>
    <link>https://community.databricks.com/t5/machine-learning/population-stability-index-psi-calculation-in-lakehouse-monitor/m-p/144764#M4533</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/145682"&gt;@Danik&lt;/a&gt;&amp;nbsp;, I have reviewed this.&lt;/P&gt;
&lt;P&gt;1) Is there documentation for PSI and other metrics?&lt;BR /&gt;Public docs list PSI in the drift table and give thresholds, but don’t detail the exact algorithm.&lt;BR /&gt;Internally, numeric PSI uses ~1000 quantiles, equal‑height binning on the baseline, plus a tiny smoothing epsilon for empty bins.&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;2) Why tiny avg_delta/Wasserstein (~0.01) but PSI differs (0.02 vs ~2.2)?&lt;BR /&gt;Different sensitivity: small shifts crossing baseline quantile bin edges can make bin proportions change a lot, so PSI jumps while mean/Wasserstein stay small.&lt;BR /&gt;Metrics like F1/recall can cluster near 0 or 1, so bin‑edge effects hit harder and inflate PSI.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;3)&amp;nbsp;Why identical arrays give PSI ≈ 0.041 (but Wasserstein=0, avg_delta≈0)?&lt;BR /&gt;Quantile‑based approximation + smoothing means PSI can be slightly &amp;gt;0 even when others read as 0.&lt;BR /&gt;Double‑check same windows/counts; PSI uses per‑bin proportions and quantile arrays may differ a hair, preventing an exact zero.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Ref Docs -&amp;nbsp;&lt;A href="https://docs.databricks.com/aws/en/data-quality-monitoring/data-profiling/monitor-output" target="_blank" rel="noopener"&gt;https://docs.databricks.com/aws/en/data-quality-monitoring/data-profiling/monitor-output&lt;/A&gt;&lt;BR /&gt;One good external doc about PSI -&amp;nbsp;&lt;A href="https://medium.com/model-monitoring-psi/population-stability-index-psi-ab133b0a5d42" target="_blank" rel="noopener"&gt;https://medium.com/model-monitoring-psi/population-stability-index-psi-ab133b0a5d42&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Wed, 21 Jan 2026 15:34:31 GMT</pubDate>
    <dc:creator>iyashk-DB</dc:creator>
    <dc:date>2026-01-21T15:34:31Z</dc:date>
    <item>
      <title>Population stability index (PSI) calculation in Lakehouse monitor</title>
      <link>https://community.databricks.com/t5/machine-learning/population-stability-index-psi-calculation-in-lakehouse-monitor/m-p/144737#M4532</link>
      <description>&lt;P&gt;Hi! We are using Lakehouse monitoring for detecting data drift in our metrics. However, the exact calculation of metrics is not documented anywhere (I couldnt find it) and it raises questions on how they are done, in our case especially - PSI.&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would like to ask following questions (descending priority order):&lt;BR /&gt;1. Is it somewhere to find the documentation regarding the implementation of PSI and other metrics?&lt;/P&gt;&lt;P&gt;2. We have a case, where for two different metrics (F1 and recall accordingly) avg_delta and wasserstein_distance are equal to ~0.01, but PSI for one metric is 0.02, and for the other one is ~2.2. I understand, that its possible due to the binning, but it would be much more insightful, if we could see the algorithm and see why it happens.&lt;/P&gt;&lt;P&gt;3. We have a test case, where we compare two same distributions/arrays. For two diffent metrics (F1 and recall accordingly), the avg_delta is 2.0E-16 and 0. Wasserstein is 0 for both cases, PSI for both cases is 0.041. We can only assume, that the non-zero values, are emerged due to the rounding error, but seeing the underlying algorithm would benefit us a lot.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance!&lt;/P&gt;</description>
      <pubDate>Wed, 21 Jan 2026 11:57:46 GMT</pubDate>
      <guid>https://community.databricks.com/t5/machine-learning/population-stability-index-psi-calculation-in-lakehouse-monitor/m-p/144737#M4532</guid>
      <dc:creator>Danik</dc:creator>
      <dc:date>2026-01-21T11:57:46Z</dc:date>
    </item>
    <item>
      <title>Re: Population stability index (PSI) calculation in Lakehouse monitor</title>
      <link>https://community.databricks.com/t5/machine-learning/population-stability-index-psi-calculation-in-lakehouse-monitor/m-p/144764#M4533</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/145682"&gt;@Danik&lt;/a&gt;&amp;nbsp;, I have reviewed this.&lt;/P&gt;
&lt;P&gt;1) Is there documentation for PSI and other metrics?&lt;BR /&gt;Public docs list PSI in the drift table and give thresholds, but don’t detail the exact algorithm.&lt;BR /&gt;Internally, numeric PSI uses ~1000 quantiles, equal‑height binning on the baseline, plus a tiny smoothing epsilon for empty bins.&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;2) Why tiny avg_delta/Wasserstein (~0.01) but PSI differs (0.02 vs ~2.2)?&lt;BR /&gt;Different sensitivity: small shifts crossing baseline quantile bin edges can make bin proportions change a lot, so PSI jumps while mean/Wasserstein stay small.&lt;BR /&gt;Metrics like F1/recall can cluster near 0 or 1, so bin‑edge effects hit harder and inflate PSI.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;3)&amp;nbsp;Why identical arrays give PSI ≈ 0.041 (but Wasserstein=0, avg_delta≈0)?&lt;BR /&gt;Quantile‑based approximation + smoothing means PSI can be slightly &amp;gt;0 even when others read as 0.&lt;BR /&gt;Double‑check same windows/counts; PSI uses per‑bin proportions and quantile arrays may differ a hair, preventing an exact zero.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Ref Docs -&amp;nbsp;&lt;A href="https://docs.databricks.com/aws/en/data-quality-monitoring/data-profiling/monitor-output" target="_blank" rel="noopener"&gt;https://docs.databricks.com/aws/en/data-quality-monitoring/data-profiling/monitor-output&lt;/A&gt;&lt;BR /&gt;One good external doc about PSI -&amp;nbsp;&lt;A href="https://medium.com/model-monitoring-psi/population-stability-index-psi-ab133b0a5d42" target="_blank" rel="noopener"&gt;https://medium.com/model-monitoring-psi/population-stability-index-psi-ab133b0a5d42&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 21 Jan 2026 15:34:31 GMT</pubDate>
      <guid>https://community.databricks.com/t5/machine-learning/population-stability-index-psi-calculation-in-lakehouse-monitor/m-p/144764#M4533</guid>
      <dc:creator>iyashk-DB</dc:creator>
      <dc:date>2026-01-21T15:34:31Z</dc:date>
    </item>
    <item>
      <title>Re: Population stability index (PSI) calculation in Lakehouse monitor</title>
      <link>https://community.databricks.com/t5/machine-learning/population-stability-index-psi-calculation-in-lakehouse-monitor/m-p/144870#M4534</link>
      <description>&lt;P&gt;had a similar issue,&amp;nbsp;this explains it, thanks for the reference.&lt;/P&gt;</description>
      <pubDate>Thu, 22 Jan 2026 12:58:48 GMT</pubDate>
      <guid>https://community.databricks.com/t5/machine-learning/population-stability-index-psi-calculation-in-lakehouse-monitor/m-p/144870#M4534</guid>
      <dc:creator>Rinno148</dc:creator>
      <dc:date>2026-01-22T12:58:48Z</dc:date>
    </item>
  </channel>
</rss>

