Giá trị ngoại lai, đòn bẩy và ảnh hưởng

Giới thiệu về Hồi quy với statsmodels trong Python

Maarten Van den Broeck

Content Developer at DataCamp

Bộ dữ liệu cá diếc

roach = fish[fish['species'] == "Roach"]
print(roach.head())
   species  mass_g  length_cm
35   Roach    40.0       12.9
36   Roach    69.0       16.5
37   Roach    78.0       17.5
38   Roach    87.0       18.2
39   Roach   120.0       18.6

Một con cá diếc thường

Giới thiệu về Hồi quy với statsmodels trong Python

Điểm nào là ngoại lai?

sns.regplot(x="length_cm",
            y="mass_g",
            data=roach,
            ci=None)
plt.show()

Biểu đồ phân tán khối lượng cá diếc theo chiều dài với đường xu hướng. Đa số điểm bám sát đường.

Giới thiệu về Hồi quy với statsmodels trong Python

Giá trị giải thích cực trị

roach["extreme_l"] = ((roach["length_cm"] < 15) |
                    (roach["length_cm"] > 26))

fig = plt.figure()
sns.regplot(x="length_cm",
            y="mass_g",
            data=roach,
            ci=None)

sns.scatterplot(x="length_cm",
                y="mass_g",
                hue="extreme_l",
                data=roach)

Biểu đồ phân tán khối lượng cá diếc theo chiều dài, có đường xu hướng. Đa số điểm màu xanh; một cá rất ngắn và một cá rất dài màu cam.

Giới thiệu về Hồi quy với statsmodels trong Python

Giá trị phản hồi xa đường hồi quy

roach["extreme_m"] = roach["mass_g"] < 1

fig = plt.figure()
sns.regplot(x="length_cm",
            y="mass_g",
            data=roach,
            ci=None)

sns.scatterplot(x="length_cm",
                y="mass_g",
                hue="extreme_l",
                style="extreme_m",
                data=roach)

Biểu đồ phân tán khối lượng cá diếc theo chiều dài, có đường xu hướng. Hầu hết điểm màu xanh; một cá rất ngắn và một cá rất dài màu cam. Hầu hết là chấm tròn; một điểm đại diện cá có khối lượng bằng 0 là dấu chéo.

Giới thiệu về Hồi quy với statsmodels trong Python

Đòn bẩy và ảnh hưởng

Đòn bẩy là thước đo mức độ cực trị của biến giải thích.

Ảnh hưởng đo mức độ mô hình thay đổi nếu loại bỏ quan sát đó khỏi dữ liệu khi mô hình hóa.

Một người đang vặn cờ lê

Giới thiệu về Hồi quy với statsmodels trong Python

.get_influence() và .summary_frame()

mdl_roach = ols("mass_g ~ length_cm", data=roach).fit()

summary_roach = mdl_roach.get_influence().summary_frame()
roach["leverage"] = summary_roach["hat_diag"] print(roach.head())
   species  mass_g  length_cm  leverage
35   Roach    40.0       12.9  0.313729
36   Roach    69.0       16.5  0.125538
37   Roach    78.0       17.5  0.093487
38   Roach    87.0       18.2  0.076283
39   Roach   120.0       18.6  0.068387
Giới thiệu về Hồi quy với statsmodels trong Python

Khoảng cách Cook

Khoảng cách Cook là thước đo ảnh hưởng phổ biến nhất.

roach["cooks_dist"] = summary_roach["cooks_d"]
print(roach.head())
   species  mass_g  length_cm  leverage  cooks_dist
35   Roach    40.0       12.9  0.313729    1.074015
36   Roach    69.0       16.5  0.125538    0.010429
37   Roach    78.0       17.5  0.093487    0.000020
38   Roach    87.0       18.2  0.076283    0.001980
39   Roach   120.0       18.6  0.068387    0.006610
Giới thiệu về Hồi quy với statsmodels trong Python

Cá diếc có ảnh hưởng lớn nhất

print(roach.sort_values("cooks_dist", ascending = False))
   species  mass_g  length_cm  leverage  cooks_dist
35   Roach    40.0       12.9  0.313729    1.074015 # cá diếc rất ngắn
54   Roach   390.0       29.5  0.394740    0.365782 # cá diếc rất dài
40   Roach     0.0       19.0  0.061897    0.311852 # cá diếc có khối lượng 0
52   Roach   290.0       24.0  0.099488    0.150064
51   Roach   180.0       23.6  0.088391    0.061209
..     ...     ...        ...       ...         ...
43   Roach   150.0       20.4  0.050264    0.000257
44   Roach   145.0       20.5  0.050092    0.000256
42   Roach   120.0       19.4  0.056815    0.000199
47   Roach   160.0       21.1  0.050910    0.000137
37   Roach    78.0       17.5  0.093487    0.000020
Giới thiệu về Hồi quy với statsmodels trong Python

Loại bỏ cá diếc ảnh hưởng nhất

roach_not_short = roach[roach["length_cm"] != 12.9]

sns.regplot(x="length_cm",
            y="mass_g",
            data=roach,
            ci=None,
            line_kws={"color": "green"})

sns.regplot(x="length_cm",
            y="mass_g",
            data=roach_not_short,
            ci=None,
            line_kws={"color": "red"})

Biểu đồ phân tán khối lượng cá diếc theo chiều dài, có hai đường xu hướng. Một dùng toàn bộ dữ liệu, một loại bỏ cá ngắn nhất. Đường thứ hai dốc hơn rõ rệt.

Giới thiệu về Hồi quy với statsmodels trong Python

Vamos praticar!

Giới thiệu về Hồi quy với statsmodels trong Python

Preparing Video For Download...