高斯分布到数据集的误差计算?

问题描述

我从一个很大的Excel工作表中导入了一个真实的数据集。

第一列代表温度,第二列代表热流,两者共930行。

现在,我绘制了数据并绘制了另一个显示高斯分布的图,其均值和标准差与真实数据集之一相对应。下一步是计算高斯分布对数据集的误差。有人可以帮助我解决这个问题吗?我认为最小二乘法可能合适,但我不知道该怎么暗示!

Gaussian Curve plot

real data set

#################################################
'importting all python libraries'

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

from astropy import modeling

from scipy import optimize


#################################################

"Importing and reading excel file"

df = pd.read_excel('29092020 INDIUM H10C C10C.xlsx',sheet_name='Sheet1',usecols=[0,1],names=['Temperature','Heat flow'])

values= df[['Temperature','Heat flow']]

'Plotting the excel data'
X = df['Temperature']

Y = df['Heat flow']
plt.plot(X,Y)

plt.xlabel('Temperature')

plt.ylabel('Heat flow')

plt.title('Indium calibration')

plt.show()


'plotting the gaussian distribution'

m = modeling.models.Gaussian1D(amplitude=10,mean=125,stddev=2)

x = np.linspace(25,180,2000)

data = m(x)

def gaussian(x,amplitude,mean,stddev):
    return amplitude * np.exp(-((x - mean) / 4 / stddev)**2)

popt,_ = optimize.curve_fit(gaussian,x,data)

plt.ylabel('Heat transfer')

plt.xlabel('Temperature')

plt.title('random gaussian curve')

plt.plot(x,gaussian(x,4,157.793,0.309))

plt.show()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)