Ein intuitives Verständnis des Prinzips der Residuendiagramme erfordert ein Verständnis der Bedeutung von Residuen. Den theoretischen Hintergrund des Residuendiagramms finden Sie im "FWL-Theorem". In diesem Artikel werde ich kurz die Bedeutung von Residuen erläutern, um das Residuendiagramm zu verstehen. Danach werde ich Ihnen zeigen, wie man Python-Code schreibt.
Betrachten Sie eine lineare Regressionsanalyse mit zwei Variablen. $ Y_i = \alpha + \beta X_{1i} + \beta X_{2i} +\epsilon_i $
Wenn Sie die Bedeutung des Fehlerterms verstehen können, werden Sie verstehen, warum diese gerade Linie durch eine zweistufige Regressionsanalyse erhalten wird.
Der Fehlerterm ist ein Begriff, der die Information erklärt, dass die erklärenden Variablen die erklärte Variable nicht erklären können. Das heißt, es enthält alle Informationen zu der erklärten Variablen mit Ausnahme der erklärenden Variablen. Betrachten Sie eine einfache Regressionsanalyse von Y mit X1. $ Y_i = \pi_i + \pi_2 X_{1i} + \eta_i $ $ \ Eta_i $ in diesem Modell enthält alle Informationen zu Y, die $ X_ {1} $ nicht erklären kann. Betrachten Sie als nächstes eine Regressionsanalyse von X2 mit X1. $ X_{2i} = \theta_1 + \theta_2 X_{1i} + \zeta_i $ $ \ Zeta_i $ in diesem Modell enthält alle Informationen zu X2, die $ X_ {1} $ nicht erklären kann.
Haben Sie sich jemals vorgestellt, was Sie zu diesem Zeitpunkt tun sollen? $ \ eta $ enthält X2-Informationen zu Y, jedoch keine X1-Informationen. Andererseits enthält X2 in $ \ zeta $ Informationen über Y, jedoch keine Informationen über X1. Daher regressiert die vom FWL-Theorem behauptete Restregressionsanalyse $ \ eta_i $ um $ \ zeta_i $.
Gehen Sie so weit, dass das verbleibende Diagramm angezeigt wird.
import statsmodels.api as sm
import pandas as pd
import matplotlib.pyplot as plt
#read data
data=pd.read_csv("___.csv")
Y=data.loc[:,"name"]
X1=data.loc[:,["names1"]]
X2=data.loc[:,"names2"]
#it is necessary to add constant variable
X1=sm.add_constant(X1)
model1=sm.OLS(Y, X1)
result1=model1.fit()
Y1_hat=result1.predict(X1)
model2=sm.OLS(X2, X1)
result2=model2.fit()
Y2_hat=result2.predict(X1)
e1=Y-Y1_hat
e2=X2-Y2_hat
plt.plot(e1,e2,linestyle="None",marker=".")
plt.show()
Sie können analysieren, bis das Restdiagramm nicht mehr korreliert ist. Da es aufgezeichnet ist, kann es zuverlässiger sein, festzustellen, ob eine Korrelation besteht, als die Teststatistik zu betrachten.
Recommended Posts