“极大似然估计”
身高体重均服从正态分布,用极大似然估计方法估计身高体重的均值和方差(注意是极大似然估计方法)
import numpy as np
import pandas as pd
from scipy.stats import norm
# 加载数据集
data = pd.read_csv('/home/aistudio/data/data14232/SG_TZ_Sample.csv')
x1 = data['x1'].values
x2 = data['x2'].values
# 贝叶斯估计的均值计算
def bayes_mean(data, prior_mu, prior_sigma):
posterior_mu = (prior_mu * np.sum(data) + np.sum(data)) / (prior_mu + len(data))
posterior_sigma = (prior_sigma ** 2 + np.sum((data - prior_mu) ** 2)) / (prior_mu + len(data))
return posterior_mu, posterior_sigma
# 设定先验分布的参数,这里我们假设先验分布的均值为0,标准差为10,这代表我们对数据的分布一无所知
prior_mu = 0
prior_sigma = 10
# 计算后验分布的均值和标准差
x1_posterior_mu, x1_posterior_sigma = bayes_mean(x1, prior_mu, prior_sigma)
x2_posterior_mu, x2_posterior_sigma = bayes_mean(x2, prior_mu, prior_sigma)
print(f'x1的后验均值: {x1_posterior_mu}')
print(f'x1的后验标准差: {x1_posterior_sigma}')
print(f'x2的后验均值: {x2_posterior_mu}')
print(f'x2的后验标准差: {x2_posterior_sigma}')