-
[R] 단순회귀분석 (Simple Linear Regression) 실습Data Analysis/R 2023. 1. 10. 16:00반응형
단순선형회귀분석 개념은 아래 링크를 참고해주세요.
https://summerindata.tistory.com/14
[통계] 회귀분석 기본 개념 - 단순회귀분석 (Simple Linear Regression)
단순선형회귀모형 $Y=\beta _{0} +\beta _{1}X + \varepsilon , \epsilon _{i} ~ iid\ N(0,\ \sigma ^{2})$ 절편 ( $\beta _{0}$ ) : X = 0일때 Y의 평균값 기울기 $\beta _{1}$ : X의 한 단위 변화에 대한 Y의 변화량 오차(error)는
summerindata.tistory.com
데이터 다운로드
이 데이터는 Units(X) : 수리될부품의 수 , Minutes(Y) : 수리시간으로 이루어진 데이터 입니다.
데이터 불러오기
setwd("폴더경로") ## 상관분석 ## p031<-read.table("P031.txt", header=T) names(p031)<-c("y", "x") #변수명 변경 p031 # 결과 # y x # 1 23 1 # 2 29 2 # 3 49 3 # 4 64 4 # 5 74 4 # 6 87 5 # 7 96 6 # 8 97 6 # 9 109 7 # 10 119 8 # 11 149 9 # 12 145 9 # 13 154 10 # 14 166 10
x와 y의 상관관계
attach(p031) plot(x,y) #직선적인 관계보임 cor(x,y) # 결과 # [1] 0.9936987 #강한 양의 상관관계 cor(p031) # matrix 형태로 나타내기 # 결과 # y x # y 1.0000000 0.9936987 # x 0.9936987 1.0000000
x와 y가 직선적인 관계를 보이고, 상관계수가 약 0.99로 강한 양의 상관관계를 보인다고 할 수 있습니다.
두 변수간의 직선적인 관계가 있음을 확인했고, 그 직선식을 추정하는 단순선형회귀분석을 진행하겠습니다.
단순선형회귀분석
fit<-lm(y~x, data=p031) #linear model fit #추정값 # 결과 # Coefficients: # (Intercept) x # 4.162 15.509 summary(fit) # 결과 # Call: # lm(formula = y ~ x, data = p031) # # Residuals: # Min 1Q Median 3Q Max # -9.2318 -3.3415 -0.7143 4.7769 7.8033 # # Coefficients: # Estimate Std. Error t value Pr(>|t|) # (Intercept) 4.162 3.355 1.24 0.239 # x 15.509 0.505 30.71 8.92e-13 *** # --- # Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 # # Residual standard error: 5.392 on 12 degrees of freedom # Multiple R-squared: 0.9874, Adjusted R-squared: 0.9864 # F-statistic: 943.2 on 1 and 12 DF, p-value: 8.916e-13 ##필요한 부분 불러오기 names(fit) #요소 확인 # 결과 # [1] "coefficients" "residuals" "effects" "rank" "fitted.values" # [6] "assign" "qr" "df.residual" "xlevels" "call" # [11] "terms" "model" fit$coefficients fit$residuals fit$fitted.values
회귀모수에 대한 가설검정
$ \hat{y} = 4.162 + 15.509 \hat{x} $summary 함수를 써서 위의 추정식을 얻었습니다.
$H_{0}:\beta _{1} = \beta _{1}^{*} \ vs \ H_{1}:\beta _{1} \neq \beta _{1}^{*}$$H_{0}:\beta _{0} = \beta _{0}^{*} \ vs \ H_{1}:\beta _{0} \neq \beta _{0}^{*}$회귀 모수에 대한 p-value 도 각각 8.92e-13 ***, 0.239 으로 유의수준 0.05하에 귀무가설(H0)을 기각하고,
X가 Y에 대하여 통계적으로 유의한 변수임을 확인했습니다.
#추정식 그래프 그리기 plot(x, y, xlab="Units",ylab="Minutes", xlim=c(0, 12), ylim=c(0, 180)) abline(fit) #추정된 회귀선
fit함수로 모델을 적합하여 회귀식을 추정해 보았습니다.
추정된 회귀식은 abline 함수를 사용해서 plot 함수 그림 위에 나타냈습니다.
모형에 대한 적합성 측정
· 분산분석 (ANOVA)
## 단순선형회귀분석: ANOVA ## anova(fit) # 결과 # Analysis of Variance Table # # Response: y # Df Sum Sq Mean Sq F value Pr(>F) # x 1 27419.5 27419.5 943.2 8.916e-13 *** # Residuals 12 348.8 29.1 # --- # Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
MSR이 MSE 대비 큰 값을 가지고 이에 따른 F통계량 값은 943.2를 가지고,
이에 해당되는 p-value는 8.916e-13 ***으로 매우 작은 값을 가집니다.
따라서 적합된 직선식이 유의미하다고 할 수 있습니다.
· 결정계수(R-squared)
결정계수 값도 0.9874로 1에 근접한 매우 큰 값을 가지므로
추정한 회귀식이 적합하다고 할 수 있습니다.
수정된 결정계수는 단순회귀분석에서는 의미를 가지지 않고, 다중회귀분석에서 의미있으므로 생략하겠습니다.
예측 : x가 주어졌을 때 y값
## 단순선형회귀 분석: 예측 ## new <- data.frame(x = seq(1, 4, by=1)) predict(fit, new) # 결과 # 1 2 3 4 # 19.67043 35.17920 50.68797 66.19674
반응형'Data Analysis > R' 카테고리의 다른 글
[R] 회귀분석 실습 - 상관분석 (0) 2023.01.06 [R] R Markdown으로 분석 보고서 만들기 (0) 2022.12.30 [R] plotly 패키지로 인터랙티브 그래프 만들기 (0) 2022.12.29 [R] dplyr 패키지로 데이터 전처리 하기 (2) (1) 2022.12.15 [R] dplyr 패키지로 데이터 전처리 하기(1) (0) 2022.12.14