<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def msll(y_true, y_pred, y_var, y_train):
 """ Mean standardised log loss under a Gaussian distribution. Parameters y_true: ndarray vector of true targets y_pred: ndarray vector of predicted targets y_var: float or ndarray predicted variances y_train: ndarray vector of *training* targets by which to standardise Returns ------- float: The negative mean standardised log loss (negative log likelihood) Example ------- True True """


    var = y_train.var()
    mu = y_train.mean()

    ll_naive = norm.logpdf(y_true, loc=mu, scale=np.sqrt(var))
    ll_mod = norm.logpdf(y_true, loc=y_pred, scale=np.sqrt(y_var))

    return - (ll_mod - ll_naive).mean()