R-제곱
앞서 다른 적합도 지표인 R-제곱(R-squared)을 RSS와 VAR의 비율로 표현했어요. 이 비율의 위아래에 1/n을 곱하면, 수치적으로는 우리가 모델링하는 데이터에서 선형 추세의 분산 대비 잔차의 분산의 비율로 볼 수 있어요. 이는 선형 추세를 제거한 뒤의 잔차의 분산과 대비해, 모델이 데이터의 분산을 얼마나 "설명"하는지를 나타내는 지표로 해석할 수 있습니다.
여기서는 x_data, y_data와 최적 적합 모델의 예측값 y_model이 미리 로드되어 있어요. 이 선형 모델이 데이터의 변동을 얼마나 설명하는지 정량화하기 위해 R-제곱 값을 계산해 보세요.

이 연습은 강의의 일부입니다
Python으로 배우는 선형 모델 입문
연습 안내
residuals는y_model에서y_data를 빼서 계산하고,deviations는y_data의np.mean()에서y_data를 빼서 계산하세요.np.mean()과np.square()를 사용해residuals의 분산과deviations의 분산을 각각 계산하세요.r_squared를 1에서var_residuals / var_deviations의 비율을 뺀 값으로 계산하고, 결과를 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Compute the residuals and the deviations
residuals = ____ - y_data
deviations = np.____(____) - y_data
# Compute the variance of the residuals and deviations
var_residuals = np.____(np.____(____))
var_deviations = np.____(np.____(____))
# Compute r_squared as 1 - the ratio of RSS/Variance
r_squared = 1 - (____ / ____)
print('R-squared is {:0.2f}'.format(____))