Repository: qiskit-community/prototype-zne (language: python)

Issue:
Incorrect expectation values for the identity observable
### Device

MacBook Pro

### OS

macOS Sonoma 14.0

### Python version

3.11.7

### Release version or branch/commit

1.2.2

### What is the current behavior?

The expectation values returned by the ZNEEstimator are not correct for this particular example. I'm including the results of the "reference implementation" of the Estimator in `qiskit.primitives` and the exp values differ greatly.

### What is the expected behavior?

Expectation values return by the ZNEEstimator are similar to the reference implementation.

### Steps to reproduce the problem

```python
from qiskit.circuit.library import RealAmplitudes
from qiskit.quantum_info import SparsePauliOp
from qiskit.primitives import BackendEstimator, Estimator as RefEstimator
from qiskit.providers.fake_provider import FakeBogota
from zne import zne, ZNEStrategy
from zne.noise_amplification import TwoQubitAmplifier

ZNEEstimator = zne(BackendEstimator)
fake_nairobi = FakeBogota()

circuit = RealAmplitudes(num_qubits=5, reps=2, entanglement="full")
num_parameters = circuit.num_parameters
observable = SparsePauliOp("IIIII")
parameter_values = [[0] * num_parameters]

# Reference estimator
ref_job = RefEstimator().run(circuit, observable, parameter_values)
ref_result = ref_job.result()
print("ref result:", ref_result.values)

# ZNE estimator
zne_strategy = ZNEStrategy(noise_factors=[1, 3, 5], noise_amplifier=TwoQubitAmplifier())
zne_estimator = ZNEEstimator(backend=fake_nairobi)
zne_job = zne_estimator.run(circuit, observable, parameter_values, zne_strategy=zne_strategy)
zne_result = zne_job.result()
print("zne result", zne_result.values)

```

### Context

Tested this example with different versions of the library and the `1.0.0` was the last version that produced correct results.

### Suggestions

_No response_

### Code of Conduct

- [X] I agree to follow this project's Code of Conduct


Discussion / hints:

Fix patch:
diff --git a/zne/zne_strategy.py b/zne/zne_strategy.py
index 6ad5c62..d7cda88 100644
--- a/zne/zne_strategy.py
+++ b/zne/zne_strategy.py
@@ -24,7 +24,7 @@
 from qiskit.primitives import EstimatorResult
 
 from .extrapolation import Extrapolator, LinearExtrapolator
-from .noise_amplification import NoiseAmplifier, TwoQubitAmplifier
+from .noise_amplification import MultiQubitAmplifier, NoiseAmplifier
 from .types import EstimatorResultData, Metadata  # noqa: F401
 from .utils.grouping import from_common_key, group_elements_gen, merge_dicts
 from .utils.typing import isreal, normalize_array
@@ -120,7 +120,7 @@ def noise_factors(self, noise_factors: Sequence[float]) -> tuple[float, ...]:
 
         return noise_factors
 
-    @quality(default=TwoQubitAmplifier())
+    @quality(default=MultiQubitAmplifier())
     def noise_amplifier(self, noise_amplifier: NoiseAmplifier) -> NoiseAmplifier:
         """Noise amplifier strategy for ZNE.
 


Test patch:
diff --git a/test/test_zne_strategy.py b/test/test_zne_strategy.py
index 94cb90d..85080eb 100644
--- a/test/test_zne_strategy.py
+++ b/test/test_zne_strategy.py
@@ -22,7 +22,7 @@
 
 from zne.extrapolation import Extrapolator, LinearExtrapolator
 from zne.noise_amplification import NoiseAmplifier
-from zne.noise_amplification.folding_amplifier import TwoQubitAmplifier
+from zne.noise_amplification.folding_amplifier import MultiQubitAmplifier
 from zne.zne_strategy import ZNEStrategy
 
 from . import NO_ITERS_NONE, NO_NONE
@@ -68,7 +68,7 @@ class TestInit:
 
     def test_defaults(self):
         """Test default configuration."""
-        assert ZNEStrategy().noise_amplifier == TwoQubitAmplifier()
+        assert ZNEStrategy().noise_amplifier == MultiQubitAmplifier()
         assert ZNEStrategy().noise_factors == (1,)
         assert ZNEStrategy().extrapolator == LinearExtrapolator()
 
@@ -277,7 +277,7 @@ class TestNoiseAmplifier:
     def test_default(self):
         zne_strategy = ZNEStrategy()
         zne_strategy.noise_amplifier = None
-        assert zne_strategy.noise_amplifier == TwoQubitAmplifier()
+        assert zne_strategy.noise_amplifier == MultiQubitAmplifier()
 
     @mark.parametrize(
         "noise_amplifier",