Ich habe einige Daten, die wie folgt aussehen: Locating Bereich zwischen einem Konfidenzintervall in Daten mit Python
Der Code dieses Grundstück zu generieren:
CI=4.5
data=pandas.DataFrame([3,5,1,2,3,4,5,6])
plt.figure()
plt.plot(data)
plt.plot([CI]*len(data),'--')
plt.ylabel('y data',fontsize=15)
plt.xlabel('x data',fontsize=15)
plt.title('example data',fontsize=15)
Ich kann auch die Daten interpoliert scipy mit :
from scipy.interpolate import interp1d
f=interp1d(x_data,y_data,kind='linear')
x_interp=numpy.linspace(min(x_data),max(x_data), num=100*len(x_data), endpoint=True)
y_interp=f(x_interp)
plt.figure()
plt.plot(x_interp,y_interp)
Die grüne Linie repräsentiert ein Konfidenzintervall. Ich muss die x-Werte, wo die y-Werte dieses Vertrauen intern überschreiten, programmatisch lokalisieren. Aber die Komplikation, dass da dies ein Konfidenzintervall muss ich die Werte erhalten, die die grüne Linie in beiden Richtungen überqueren:
dh ich die X-Werte müssen, wo die y-Daten der roten Pfeile kreuzt, während mit Ausnahme derjenigen, am schwarzen Pfeil. Ich habe viele Varianten des Subtrahierens des Konfidenzintervalls von den interpolierten Daten sowie der Absolutwerte versucht, aber ich kann das Konfidenzintervall immer noch nicht isolieren. Kann mir jemand helfen? Vielen Dank im Voraus
Ein Konfidenzintervall ist ein Bereich von Werten, z. B. 'lower_bound = CI - etwas; Obere_Bindung = CI + etwas_else'. Ich verstehe auch nicht, warum der schwarze Pfeil, nun, schwarz ist, während die anderen als rot behandelt werden. – Reti43
Heißt das nicht, dass du alles über der grünen Linie haben willst? – armatita
@ Reti43 Die Pfeile dienen nur zur Veranschaulichung - ebenso wie die Daten (weil die Angabe der realen Daten hier nicht möglich ist). In den realen Daten wären die CI's Parameterschätzung +/- Konfidenzintervall. Aber sie sind aufgrund der Nichtlinearität nicht symmetrisch. – CiaranWelsh