微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python:添加误差线/阴影区域以进行线性拟合吗?

如何解决Python:添加误差线/阴影区域以进行线性拟合吗?

我有2列:R_nom =实际值,R_mes =测量值。 我有

  • 计算线性拟合
  • 计算的%错误
  • 计算的标准

我想用以下方法做对数图:

  • 测量值的分散(DONE)
  • 线性拟合(DONE)
  • 拟合线上方和下方的错误线表示我们希望该值位于其中。(要做

到目前为止,这是我的代码

#@title stack example 
from plotly.subplots import make_subplots
import plotly.graph_objects as go
import matplotlib.pyplot as plt


import numpy as np
import pandas as pd

R_Nom=[100,100,500,800,1200,5500,5500]
R_Mes=[102,101,98,97,512,517,492,490,470,820,825,812,790,1250,1240,1230,1212,1175,1153,5600,5574,5440,5390,5612]

df= pd.DataFrame({"R_Nom": R_Nom,"R_Mes": R_Mes})

 
 # finding the mean,max,min,std using groupby 
mean= df.groupby('R_Nom')['R_Mes'].mean()
max_ = df.groupby('R_Nom')['R_Mes'].max()
min_ = df.groupby('R_Nom')['R_Mes'].min()
std = df.groupby('R_Nom')['R_Mes'].std()

 # for error% however i have to include extra steps - can it be written as above? 
df['Error_percentage'] = abs((df["R_Mes"]-df["R_Nom"])/df["R_Nom"])*100
grouped_df = df.groupby("R_Nom")
max_error = grouped_df['Error_percentage'].max()


 #output the data as a dataframe for plotting 
summary = pd.concat({"mean":mean,"min": min_,"max": max_,"std": std,"max_error %": max_error},axis=1)

summary



 #fit the data


x=np.log10(df['R_Nom'])
y= np.log10(df['R_Mes'])


x_fit = np.linspace(min(x),max(x),100)


model = np.polyfit(x,y,1,full=True)
fig = make_subplots(specs=[[{"secondary_y": True}]])


fig.add_trace(
      go.Scatter(x=x_fit,y=x_fit*model[0][0]+model[0][1],name="Fit"),secondary_y=False 
  )
fig.add_trace(
      go.Scatter(x=x,y=y,name="Fit",mode="markers"),secondary_y=False 
  )

fig.add_trace(
      go.Scatter(x=np.log10(summary.index),y=summary['max_error %'],name="Error % "),secondary_y=True 
  )


fig.show()


我手动添加了我指的是包含错误区域的2条线,不是直线,而是根据精确R_Nom值处的%或std值进行更改

Error lines

第二-还有其他方法可以估计我的数据的误差,可能是useulf吗? R_squared等?

最终目标是评估我可以检测到的R_Nom的最小变化是什么

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。