BayesianRidge prediction standard deviation affected by uniform sample weights

### Describe the bug

The standard deviation of predictions obtained by setting return_std=True on predict(), is clearly affected by uniform sample_weight vectors on fit(). A uniform sample_weight vector will act as a constant on the likelihood function, and I am therefore questioning the effect it has on the standard deviation of predictions. As shown below by the example, the scale (1 vs. 20) of the uniform sample_weight vector directly affects the scale of the standard deviations. The example is based on the Curve Fitting with Bayesian Ridge Regression [example](https://scikit-learn.org/stable/auto_examples/linear_model/plot_bayesian_ridge_curvefit.html#sphx-glr-auto-examples-linear-model-plot-bayesian-ridge-curvefit-py)).

### Steps/Code to Reproduce

```
import numpy as np
from sklearn.linear_model import BayesianRidge
import matplotlib.pyplot as plt

def func(x):
    return np.sin(2 * np.pi * x)

size = 25
rng = np.random.RandomState(1234)
x_train = rng.uniform(0.0, 1.0, size)
y_train = func(x_train) + rng.normal(scale=0.1, size=size)
x_test = np.linspace(0.0, 1.0, 100)

n_order = 3
X_train = np.vander(x_train, n_order + 1, increasing=True)
X_test = np.vander(x_test, n_order + 1, increasing=True)
reg = BayesianRidge(tol=1e-6, fit_intercept=False)

init = [1.0, 1e-3]
reg.set_params(alpha_init=init[0], lambda_init=init[1])

fig, axes = plt.subplots(1, 2, figsize=(8, 4))
for i, ax in enumerate(axes):
    if i == 0:
        reg.fit(X_train, y_train, sample_weight=np.ones(size))
        ymean, ystd = reg.predict(X_test, return_std=True)

        ax.plot(x_test, func(x_test), color="blue", label="sin($2\\pi x$)")
        ax.scatter(x_train, y_train, s=50, alpha=0.5, label="observation")
        ax.plot(x_test, ymean, color="red", label="predict mean")
        ax.fill_between(x_test, ymean - ystd, ymean + ystd, color="pink", alpha=0.5, label="predict std")
        ax.set_title('sample_weight=np.ones(size)')
        ax.set_ylim(-1.6, 1.6)
        ax.legend()
    elif i == 1:
        reg.fit(X_train, y_train, sample_weight=20*np.ones(size))
        ymean, ystd = reg.predict(X_test, return_std=True)

        ax.plot(x_test, func(x_test), color="blue", label="sin($2\\pi x$)")
        ax.scatter(x_train, y_train, s=50, alpha=0.5, label="observation")
        ax.plot(x_test, ymean, color="red", label="predict mean")
        ax.fill_between(x_test, ymean - ystd, ymean + ystd, color="pink", alpha=0.5, label="predict std")
        ax.set_title('sample_weight=20 * np.ones(size)')
        ax.set_ylim(-1.6, 1.6)
        ax.legend()

plt.tight_layout()
plt.show()
```



### Expected Results


![expected](https://user-images.githubusercontent.com/42994401/187893778-bd076956-dd22-4b53-90ea-faec7c27c98f.png)



### Actual Results


![actual](https://user-images.githubusercontent.com/42994401/187893819-3654f021-67db-4703-a2b2-cad2ae87071d.png)



### Versions

```shell
System:
    python: 3.8.5 (default, Sep  3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)]
executable: C:\Users\AAA\anaconda3\python.exe
   machine: Windows-10-10.0.19041-SP0

Python dependencies:
          pip: 20.2.4
   setuptools: 50.3.1.post20201107
      sklearn: 0.24.0
        numpy: 1.22.4
        scipy: 1.5.2
       Cython: 0.29.21
       pandas: 1.1.3
   matplotlib: 3.3.2
       joblib: 0.17.0
threadpoolctl: 2.1.0

Built with OpenMP: True
```

COMMENT:
@olivier15616513 this is not a good issue to start with. But if you're up for it, you can first investigate the issue and report any findings on how it could be fixed. But if you're new here, you can probably find better good first issues to work on.

Labels: Bug, module:linear_model, Needs Investigation