본문 바로가기

R

회귀(단순,다중)

728x90
반응형

6. 회귀분석

*6 목차

1. 단순 선형 회귀 분석 이론

2. 단순 선형 회귀 실습1 (타닌 함유량과 애벌레 성장)

3. 단순 선형 회귀 실습2 (우주 왕복선 챌린저호 폭발 원인 분석)

4. 단순 선형 회귀 실습3 (코스피 지수 수익률과 삼성, 현대 자동차

주식 수익률의 상관관계 분석)

5. 다중 선형 회귀 이론

6. 다중 선형 회귀 실습1 (스마트폰 만족에 미치는 영향도 분석)

7. 다중 선형 회귀 실습2 (미국 대학 입학에 가장 영향이 높은 과목 분석)

8. 다중 선형 회귀 실습3 (보험회사의 보험료 선정에 미치는 요소 분석)

9. 다중 선형 회귀 실습4 (날씨와 전력 사용량과의 상관관계)

 

 

 

1. 단순 선형 회귀 분석 이론

*머신러닝의 종류 3가지?

1. 지도학습

분류: knn, nivebayes, decision tree, 규칙기반

회귀

 

2. 비지도 학습

3. 강화학습

 

 

회귀분석 이란?

회귀분석은 하나의 변수가 나머지 다른 변수들과의 선형적 관계를

갖는가의 여부를 분석하는 방법으로 하나의 종속변수(예측하고자 하는 )

독립변수 사이의 관계를 명시하는

 

:

집값에 가장 영향을 주는 요소가 무엇인지?

-독립변수 : 종속변수에 영향을 주는 변수(평수, 역세권, 학군...)

-종속변수 : 서로 관계를 가지고 있는 변수들 중에서

다른 변수에 영향을 받는 변수(집값)


회귀식: y = ax + b

                   

           집값   평수


 

: 1986 1 28 미국의 스페이스 셔틀 챌린저호의 승무원 7명이

모두 사망했다. 우주 왕복선이 발사 도중에 폭파하는 바람에 사망을 했다.

원인 분석을 했는데 원인이?


"발사 온도에 대한 o형링의 파손이 원인"


y = ax + b

 

y o형링의 파손수, x 발사 온도


여기서 회귀모수인 a,b 기계가 구하게끔 해야한다.


일단 a -0.057 이고 b 4.3이라고 기계학습 결과로 알아냈다면

식은

y = -0.057 * x + 4.3

 

 

최소제곱 추정법(253p)

최적의 a(기울기) b(절편) 결정하기 위해서

정규 최소제곱으로 알려진 추정기법을 사용한다

 

실제값 y 예측값 y햇 사이의 수직 직선이 오차(잔차)를 제곱해서

구한 총합을 알아야 한다.

                       

     ( yi   -    yi )^2 

                 

        실제값 예상값

 

                   

      ( yi - yi )^2 

  a = --------------------

                  

     ( xi - xi )^2  

 

  이를 다시 아래의 식으로 나타내면  ?

 

                 

        ( x - x값의 평균) ( y - y값의 평균) 

  a = --------------------------------------------

        ( x - x값의 평균)^2 

 

         x y 공분산

  a = ---------------------------

              분산

        

           cov(x,y)

   = -------------------  = 기울기

            var(x)

 

   y = ax + b

        

     기울기

 

 


 

 

 

 

문제213.

챌린져호의 폭파원인 데이터를 R 로드하고 x축을 온도로 하고

y축을 o형링 파손수로 해서 R 샤이니에 plot 그래프를 그리시오

 

p251 처럼 scatter 그리시오

 

 


 

 


 

문제214(마지막문제)

챌린져호의 폭파원인을 분석하기 위한 회귀직선의 기울기를

구하시오

x: temperature

y: distress_ct

 

            cov(x,y) ### 공분산

=  -----------------------  = 기울기 = -0.04753968

        var(x)  ### 분산

 

b<- cov(ch$temperature, ch$distress_ct) / var(ch$temperature )
> b
[1] -0.04753968

 

공분산cov ? 서로 다른 변수들 사이에 얼마나 의존coupling하는지를

수치적으로 표현한

 

y = ax + b

y = -0.04754*x + b

 

# 수동으로 b(절편) 추정

y - ax = b

b  <-  mean(ch$distress_ct) - a*mean(ch$temperature)

3.698413

 

y = ax + b

y = -0.04754*x + 3.698413   <- 회귀직선의

 

 

 

문제215.

위의 손으로 구한 기울기와 절편을 R에서 제공하는 회귀함수인 lm

이용해서 구해보시오

 

 lm(distress_ct~temperature, ch)

                          

      y                 x

Call:
lm(formula = distress_ct ~ temperature, data = ch)

Coefficients:
(Intercept)  temperature 
    3.69841     -0.04754

                     

   절편            기울기

 

 

 

 

문제216.

251페이지에 나오는 plot 그래프를 그리시오

x : 온도

y : o형링 파손수

공식: plot(y~x,  data = 데이터셋 이름)

 

library(plotly)

plot(distress_ct~temperature, ch)

 

 


 

 

 

문제217.

위의 plot 그래프에 data 맞는 회귀직선을 그리시오

 

library(plotly)

plot(distress_ct~temperature, ch, col='blue')

m<-lm(distress_ct~temperature,ch)

abline(m)

 

 

 

 

 

 

문제218.

위의 그래프에 제목에 회귀직선의 방정식이 출력되게 하시오

 a = c(1,5,9,2,6,10,3,7,11,4,8,12)
> matrix(a,3,4)
     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    5    6    7    8
[3,]    9   10   11   12

 

m<-lm(distress_ct~temperature, ch)

m$coefficients[1] # intercept

 

m<-lm(distress_ct~temperature, ch)

yyy<-round(m$coefficients[1],3) # 절편

 

aaa<-round(m$coefficients[2],4) # 기울기

 

plot(distress_ct ~ temperature, data=ch)

m <- lm(distress_ct  ~  temperature, ch)

abline(m, col='red')

title(paste('파손수 = ',aaa , '*온도 + ',yyy))

 

 

 

 

 

문제219.

애벌레의 성장 추이와 탄닌과의 관계가 어떻게 되는지

탄닌 포함량이 많을수록 애벌레의 성장이 증가하는지

감소하는지를 나타내는 회귀 방정식을 구하고 시각화 하시오

(데이터: regression.txt)

 

 

reg<-read.table("regression.txt", header=T)

head(reg)

names(reg)

x<-lm(reg$growth~reg$tannin, reg)

 

y<-round(x$coefficients[1],3)

y

a<-round(x$coefficients[2],3)

a

plot(reg$growth~ reg$tannin, data=reg, col='red')

abline(x)

title(paste("growth = ",a,'* tannin + ',y))

 

 

 

 

 

 

 

문제220.

위의 그래프에 잔차를 그리시오

 

reg = read.table('regression.txt', header=T)

attach(reg)

plot(reg$growth~reg$tannin, data=reg, pch = 21, col='blue', bg='red')

m <- lm(growth~tannin, data=reg)

summary(m)

abline(m, col='red')

title(paste('성장=', round(m$coefficients[2], 2), "* tannin + ", round(m$coefficients[1], 2)))

 

yhat <-   -1.2167*reg$tannin + 11.7556

yhat
[1] 11.7556 10.5389  9.3222  8.1055  6.8888  5.6721  4.4554  3.2387
[9]  2.0220

 

join <- function(i){

  lines( c( tannin[i], tannin[i] ), c(growth[i],yhat[i]), col='green')

}

sapply(1:9, join)

 

 

 

 

 

 

상관관계(256p)

상관분석은 변수가 서로 어떠한 관계인지를 파악하는 분석

변수 간의 상관관계correlation 변수들의 관계가 직선에 가깝게 따르는

정도를 나타내는 숫자다. 다른 조건이 없다면 상관관계는 전형적으로 20세기

수학자 피어스이 개발한 피어슨 상관계수를 나타낸다.

상관간계는 -1 에서 +1 사이의 범위에 있다.

 



 

x 평수, y 집값이라고 보자. 

 


 

화면 캡처: 2019-02-28 오전 11:24

 

기울기에 따라 양의 상관관계, 음의 상관관계로 나타낼 있다.

 

 

점들이 흩어져 있는 모습을 보고 변수의 관계를 파악하는데

밀도의 차이에 따라서 상관계수를 나타낸다

 

상관계수의 기호 "r" 사용한다

 

상관계수의 수치가 0 가까울 수록 상관관계가 약하다 뜻이고

+1 가까우면 양의 상관관계가 강하다

-1 가까우면 음의 상관관계가 강하다

 

: 온도와 o형링 파손수 변수간의 상관관계가 강한지 약한지 알아내시오


 

 

피어슨의 상관관계 공식이 공분산 공식과 일치함을 증명

 

install.packages('corrplot')

library(corrplot)

 

z <- c(1,5,10,15)

x <- c(3,9,21,29)

y <- c(1,11,19,31)

d <- data.frame(z,x,y)

d

# 일반 상관계수

cor(d)

 

part1 <- lm(y~x, data=d)

summary(part1)

cov(x,y) / ( sqrt(var(x))*sqrt(var(y)) )   # 공분산/표준편차의

cor(d$x, d$y)    # 상관관계 공식, 데이터프레임 처리 적용

cov(x,y) / ( sqrt(var(x))*sqrt(var(y)) )
[1] 0.9853035
> cor(d$x, d$y)
[1] 0.9853035

 

 

 

문제221. 코스피, 삼성, 현대의 데이터를 가지고 그래프를 그리시오

 

k_index <- read.csv("K_index.csv", header=T,   

                    stringsAsFactors=F)  # 코스피

names(k_index)

 

s_stock <- read.csv("S_stock.csv", header=T,

                    stringsAsFactors=F)  # 삼성

names(s_stock)

 

h_stock <- read.csv("H_stock.csv", header=T,

                    stringsAsFactors=F)  # 현대

names(h_stock)

 

all_data <- merge(merge(k_index,s_stock), h_stock)  #모두 합친거

names(all_data)

 

head(all_data)

 

attach(all_data)

 

plot(k_rate, s_rate, col="blue")

 

 

 

 

 

 

문제222.

코스피 등락비율과 삼성 수익률 등락비율을 plot 그래프로 그리고

그래프에 회귀직선을 그으시오

 

attach(all_data)

m<-lm(k_rate~s_rate, all_data)

plot(k_rate, s_rate, col="blue")

abline(m, col='red')

 

 


 

 

 

문제223.

현대 자동차도 마찬가지로 회귀 그래프를 만드시오

m2<-lm(h_rate~k_rate, all_data)

m2 # 현대

plot(k_rate, h_rate, col="blue")

abline(m2, col='red')

 

 

문제224.

현대 자동차와 삼성전자 그래프를 하나의 화면으로 출력되게 하시오

 

m1<-lm(k_rate~s_rate, all_data)

m1 # 삼성

Coefficients:
(Intercept)       s_rate 
  
0.003336     0.264098

  절편             기울기

 

plot(k_rate, s_rate, col="blue")

abline(m1, col='red')

######################################

 

m2<-lm(h_rate~k_rate, all_data)

m2 # 현대

Coefficients:
(Intercept)       k_rate 
     0.1263       0.6348

    절편             기울기

 

plot(k_rate, h_rate, col="blue")

abline(m2, col='red')

 

graphics.off()

 

par(mfrow=c(1,2), new=T)

par(mar=c(2,2,2,2))

 

 


 

 

 

 

문제225.

아래의 두개의 그래프에 회귀 기울기가 각각 제목으로 출력되게 하시오

 

graphics.off()

 

par(mfrow=c(1,2), new=T)

par(mar=c(2,2,2,2))

 

 

m1<-lm(s_rate~k_rate, all_data)  # y축이 삼성비율!

m1 # 삼성

y1<-round(m1$coefficients[1],3)

a1<-round(m1$coefficients[2] ,3)

plot(k_rate, s_rate, col="blue")

abline(m1, col='red')

title(paste('SAMSUNG: y = ',a1 , '*kospi_rate + ',y1))

 

 

m2<-lm(k_rate~h_rate, all_data)

m2 # 현대

y2<-round(m2$coefficients[1],3)

a2<-round(m2$coefficients[2],3)

plot(k_rate, h_rate, col="blue")

abline(m2, col='red')

title(paste('HYUNDAI: y = ',a2 , '*kospi_rate + ',y2))

 


 



 

 

 

 

 

 

문제226.

삼성전자와 현대의 삼성 수익률 등락 비율이 각각 코스피 등락률과

상관관계가 어떻게 되는지 출력하시오

 

TIP. 기울기가 큰게 상관관계가 크게 나온다.

 

cor(na.omit(k_rate), na.omit(h_rate))
[1] 0.3262777
> cor(na.omit(k_rate), na.omit(s_rate))
[1] 0.5142455

 

주식시장에서의 상관계수는 시장과 해당 종목이 얼마나 비슷하게

움직이고 있느냐를 찾는 것이다.

현업에서는 0.65~0.70 부터 가치가 있다고 판단하고 투자분석을 한다.

 

 

 

 

 

다중선형회귀(258, 275p)

단순 선형 회귀분석의 목적이 하나의 독립변수만을 가지고

종속변수를 예측하기 위한 회귀모형을 만들기 위한 것이었다면,

다중 회귀분석 목적은 여러개의 독립변수들을 가지고 종속변수를

예측하기 위한 회귀모형을 만드는 것이다.

 

예를 들면 집값에 영향을 미치는 요소가 단순히 평수만 있는게 아니다.

 

집값<---- 평수, 교통, 학군, 범죄율, ...

                       

종속변수        독립변수들

 

집값 = b(절편) + a1 *x1 + a2*x2 + a3*x3 + ... + E

      

    입실론

독립변수들이 여러개 이므로

단순회귀와는 다르게 행렬 이용해서 회귀모수를 구해야 한다.

 

 

 

 


더하기만 했던 베타0 에서 x0 곱해서 더하고 있다.

 

다중회귀는 단순선형회귀의 확장.


 

T  : 전치

-1 : 역행렬

 

 

다중 회귀식의 베타

 

문제227.

아래의 3,3 행렬을 만드시오

   [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9

 

 

틀린행렬

a<-c(1,2,3,4,5,6,7,8,9)

matrix(a,3,3)

 

 [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9

 

***위에랑 결과 다름 ** 주의 !

 

:

matrix(c(1:9), nrow=3, ncol=3, byrow=T)

 [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9

 

 

문제228.

아래의 행렬을 만드시오

  [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9

matrix(c(1:9), nrow=3, ncol=3, byrow=F)

 

 

문제229.

2개의 행렬의 출력하시오

 

a%*%b

  [,1] [,2] [,3]
[1,]   14   32   50
[2,]   32   77  122
[3,]   50  122  194

 

 

 

문제230.

a행렬의 전치행렬 구현하시오

a
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9
> t(a)
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9

 

 

 

문제231.

아래의 c 행렬을 만들고 c 행렬의 역행렬 구하시오

 



c<-matrix(c(1:4), nrow=2, byrow=T)

> c
     [,1] [,2]
[1,]    1    2
[2,]    3    4
> solve(c)
     [,1] [,2]
[1,] -2.0  1.0
[2,]  1.5 -0.5

 

y = ax + b

 

y1           x1        1

y2           x2        1

:               :          :          a

:       =      :          :        *b

yn          xn        1

 

y1 = ax1 + b

y2 = ax2 + b

y3 = ax3 + b

     :

     :

yn = axn + b

 

 

 

 

문제232.

위의 회귀모수인 a(알파) b(베타) 구하는 함수를 생성하시오

( 260 페이지 reg 라는 함수)

 

reg <- function(y,x){

  x<-as.matrix(x)

  x<-cbind(Intercept=1, x)  # 절편때문에 C바인드 해준다

# intercept 라는 이름을 붙이고 1 반복해서 열에 채워라

  b<-solve(t(x)%*%x )%*% t(x)%*% y

  colnames(b) <- "estimate"

  print(b)

}

 

# solve 역행렬을 구한다

# t() 전치행렬을 구한다

 

 reg(y=ch$distress_ct, x=ch$temperature)
             estimate
Intercept  3.69841270
          -0.04753968

 

 

 

 

문제233.

챌린져호 폭발의 o형링 파손의 영향을 주는 요소로 온도말고

다른 요소도 있는지 ch 전체 데이터를 보고

온도외에 다른 독립변수들의 회귀모수 기울기를 reg 함수를

이용해서 출력하시오

 

  distress_ct temperature field_check_pressure flight_num
1           0          66                   50          1
2           1          70                   50          2
3           0          69                   50          3
4           0          68                   50          4
5           0          67                   50          5
6           0          72                   50          6

 

 

 reg(y=ch$distress_ct, x=ch[2:4])
                         estimate
Intercept             3.527093383
       <-------절편
temperature          -0.051385940
   
field_check_pressure  0.001757009
flight_num            0.014292843

설명 (p262)

temperature 값이 바뀐걸 있다.

1개의 독립변수일 때와 다르게

상관관계가 있는 다수의 독립변수들이 각각 영향을 주고받아

저런 기울기 값이 나온거다.

 

 

 

 

다중 선형 회귀를 이용한 의료비 예측 실습

263p

 

1. 미국 국민의 의료비 데이터를 로드한다.

insu<-read.csv("insurance.csv", header=T)

names(insu)

[1] "age"      "sex"      "bmi"      "children" "smoker"   "region"   "expenses"

 

종속변수: expenses(의료비)   <--구하고자 하는

독립변수: age, sex, bmi, childen, smoker, region

 

 

2. 의료비의 분포가 어떻게 되는지 확인한다

summary(insu$expenses)
   Min. 1st Qu.     Median    Mean    3rd Qu.    Max.
   1122    4740 
   9382      13270    16640     63770

 

 

3. 의료비의 분포를 확인하기 위해 히스토그램으로 그려보시오

 

hist(insu$expenses)

 


 

화면 캡처: 2019-02-28 오후 3:15

 

0~$15000 분포가 몰려있음을 있다.

 

 

4. 독립변수와 종속변수간의 상관관계를 분석하시오

그리고 독립변수들 간의 상관관계를 분석하시오

 

attach(insu)

cor(insu[c("age","bmi","children", "expenses")])

*cor : correlation matrix  상관행렬

 

                age        bmi          children   expenses
age      1.0000000 0.10934101 0.04246900 0.29900819
bmi      0.1093410 1.00000000 0.01264471 0.19857626
children 0.0424690 0.01264471 1.00000000 0.06799823
expenses 0.2990082 0.19857626 0.06799823 1.00000000

 

상관관계 값들이 대각선 형태를 보인다.

 

expenses 보면 자기자신을 제외하고

age 가장 값을 가지는 것을 있다.( = 영향력이 크다)

 

 

5. pairs 함수를 이용해서 독립변수들간의 상관관계를 확인하시오

 

pairs( insu[ c( "age","bmi","children","expenses" ) ] , col='blue')

 

 



 

pairs.panels( insu[ c( "age","bmi","children","expenses" ) ], col='blue')


 


 

 

0.11 : age & bmi

0.04 : age & children

 

271. 내용 설명!

상관관계 타원형

뢰스 곡선

 

 

다중 공선성

회귀분석에서 사용된 모형의 일부 설명변수(독립변수)

다른 독립변수와의 상관정도가 높아 데이터 분석시 부정적인 영향

미치는 현상을 말한다.

ex: 명의 선생님을 생각해보라. A선생님이 모든 설명을 다해버려서

B선생님은 설명할 없어짐.(부정적인 영향을 미침)

 

독립변수들끼리 서로에게 영향을 주고 있다면

하나의 영향력을 검증할 다른 하나의 영향력을 완전히

통제할 없게 된다.

 

예를 들면 음주가 학업 성취도에 미치는 영향을 알아보기 위해서

회귀분석을 한다고 가정해보면

학업성취도를 종속변수로 y 보고

이를 설명해주는 독립변수로 x 일평균 음주량,

다른 독립변수 x2 혈중 알콜 농도라고 하면

일평균 음주량과 혈중 알코올 농도는 서로 아주 강한 상관정도

보인다.

상태에서 회귀분석을 하면 분명히 x1 x2 중에 하나는

유의한 변수로 드러난다.(또는 둘다. 모든 경우의 수를 염두할 .)

 

실제로 x1 x2 값이 증가 또는 감소 수록 y값이 증가 또는 감소할 것인데

하나는 굉장히 불안정한 계수값을 보이게 된다.

 

https://lovetoken.github.io/r/2017/04/16/vif.html

 

예제:  car 패키지로 귀분석 하기 전에 다중 공선성을 보이는 변수를

       찾아내시오 !

 

install.packages("car")

library("car")

 

data(Boston, package = "MASS")

 

summary(Boston)

 

str(Boston)

 

data <- subset(Boston, select = -c(chas, rad))

# subset( )은 split( )과 유사하지만 전체를 부분으로 구분하는 대신

조건을 만족하는 특정 부분만 취하는 용도로 사용한다.

# integer type chas, rad 변수 독립변수에서 제외



 

 

#  lm (종속변수(결과) ~ 독립변수(원인), 데이터)

lmfit <- lm(medv ~ . , data = data)

 

summary(lmfit)

 

vif(lmfit)
    crim       zn    indus      nox       rm      age      dis      tax  ptratio    black
1.663648 2.272992 3.660714 4.294324 1.880883 3.077311 3.953729 3.403205 1.725085 1.338875
   lstat
2.928554
> vif(lmfit) > 10
   crim      zn   indus     nox      rm     age     dis     tax ptratio   black   lstat
  FALSE   FALSE   FALSE   FALSE   FALSE   FALSE   FALSE   FALSE   FALSE   FALSE   FALSE

 

 

설명:

데이터에서는 다중공선성을 보이는 변수는 없는걸로 확인이 되었다.

x1 x2 개가 서로 강한 상관정도가 있어서 종속변수에 대한

영향력이 높다면 x2 설명할 부분을 x1 가져가 버리기 때문에

x2 설명력은 분명 작아지게 된다.

그럼 쓸모없어진 x2 p-value 커서 유의수준을 넘어버리게 된다.

그럼 영향력이 없는 컬럼이 되버린다.

 

file:///D:/data/%ED%9A%8C%EA%B7%80%EB%B6%84~1.PDF

선생님 ppt

 

그래서

영향력없는 항목들은 제거하고 통계를 구한다.

 

vif(lmfit) > 10

팽창계수는 보통 10 보다 것으로 골라내고

엄격하게 하려면 5보다 것으로 골라낸다.

느슨하게 하려면 15~20 으로 주고 골라낸다.

 

다중공선성(Multicolinearity)이란?


 


 

 

다중회귀를 할 때 고려해야 할 것 중에 하나는 다중공선성이다.

이것은 통계의 가정과는 관계없지만 다중회귀 결과를 해석할 때 중요하다.

예를 들어 손의 악력에 대한 연구를 할때 반응변수(종속변수)를 손의 악력으로 하고

예측변수(독립변수)로 태어난 날짜(DOB)와 나이를 넣었다고 해보자.

악력과 DOB, 나이를 전체적으로 보면 F 검정 결과 p값이 0.001 이하로 유의하게 나오지만 DOB와 나이에 대한 회귀계수를 각각 살펴보면 모두 유의하지 않게 나온다. 왜 그럴까?

생년월일과 나이는 완전한 상관관계를 이룬다.

다중회귀분석에서 회귀계수를 구할 때 다른 변수들이 일정할 때

한 예측변수가 반응변수에 미치는 영향을 측정한다.

따라서 악력을 종속변수로 생년원일과 나이를 독립변수로 넣고 다중회귀를 하는 것은

나이가 일정할 때 나이에 따른 악력의 변화를 보는 것과 같다.

이런 문제를 다중공선성이라고 한다.

이 때 통계모형의 계수들에 대한 신뢰구간이 커지기 때문에 각각의 회귀계수에 대한 해석을 어렵게 만든다.

다중공선성은 분산팽창지수(variation inflation factor, VIF)라는 통계량을 사용하여 계산할 수 있다.

한 예측변수에 대해 VIF의 제곱근다중공산성의 정도를 나타내주며

일반적으로 VIF−−−−√VIF가 2 이상인 것은 다중공선성 문제가 있다는 것을 뜻한다. VIF값은 car 패키지의 vif() 함수로 계산할 수 있다.

출처: <https://rstudio-pubs-static.s3.amazonaws.com/190997_40fa09db8e344b19b14a687ea5de914b.html>

 

 

lm(다중회귀분석)  시킨 값을

' vif(lm) > 10 ' 다중공선성을 확인할 있다.

 


 

 

 

 


문제235.

의료비 데이터(insuarance.csv) 에서 다중공선성을 보이는 변수가 있는지

조사하시오.(팽창계수가 10 보다 변수가 있는지 확인하시오)

 

install.packages("car")

library(car)

data<-subset(insu)

lmfit<-lm(expenses~. , data = data)

summary(lmfit)

vif(lmfit)

vif(lmfit)>10

 

 

vif(lmfit)
             GVIF Df GVIF^(1/(2*Df))
age      1.016843  1        1.008386
sex      1.008900  1        1.004440
bmi      1.106682  1        1.051990
children 1.004008  1        1.002002
smoker   1.012067  1        1.006015
region   1.098928  3        1.015847
> vif(lmfit)>10
          GVIF    Df GVIF^(1/(2*Df))
age      FALSE FALSE           FALSE
sex      FALSE FALSE           FALSE
bmi      FALSE FALSE           FALSE
children FALSE FALSE           FALSE
smoker   FALSE FALSE           FALSE
region   FALSE FALSE           FALSE

 

 

결과: 다중공선성을 보이는 변수는 없다.만약 있다면, 빼고 통계를 내야한다.

 

 

 

 

6. 회귀함수인 lm 이용해서 위의 독립변수들의 회귀모수를 확인한다

(기울기)

 

names(insu)

ins_model1<-lm(expenses~smoker+sex+age+children+bmi+region, data=insu)

ins_model2<-lm(expenses~., data = insu)

ins_model1

ins_model2

개다 같은 코드임. 지정 컬럼수만 다를 !

 

ins_model1

Call:
lm(formula = expenses ~ smoker + sex + age + children + bmi +
    region, data = insu)

Coefficients:
    (Intercept)        smokeryes          sexmale              age         children 
       -11941.6          23847.5           -131.4            256.8            475.7 
            bmi  regionnorthwest  regionsoutheast  regionsouthwest 
          339.3           -352.8          -1035.6           -959.3 

 

2. 나이가 일년 더해질 때마다 평균적으로 의료비가 256.80 달러 정도

높아질 것으로 예상한다

 

3. 부양가족수 늘어날 마다 의료비가 평균적으로 475.7 달러 정도

추가되는 것을 예상하고 있다.

 

4. BMI 단위가 증가할 마다 연간 의료비가 평균 339.30 달러 증가 것으로

예상되고 있다.

 

5. 흡연자는 비흡연자보다 매년 평균 23,847.50 달러의 비용이

들것으로 예상하고 있다.

 

6. 남성은 여성에 비해 의료비가 131.40 달러를 적게 것으로

예상하고 있다.

 

7. region 보면 북동 북서 남동 남서 "북동" 없다.

그럼 "북동" 기준으로 북서는 -352.8,  남동은 -1053.6 이다.

그래서 북동지역(=1) 평균비용이 가장 높은 경향이 있음을 의미한다.(274p)

 

 

summary(ins_model1)

Call:
lm(formula = expenses ~ smoker + sex + age + children + bmi +
    region, data = insu)

Residuals:
     Min       1Q   Median       3Q      Max
-11302.7  -2850.9   -979.6   1383.9  29981.7

Coefficients:
                Estimate Std. Error t value Pr(>|t|)   
(Intercept)     -11941.6      987.8 -12.089  < 2e-16 ***
smokeryes        23847.5      413.1  57.723  < 2e-16 ***
sexmale           -131.3      332.9  -0.395 0.693255   
age                256.8       11.9  21.586  < 2e-16 ***
children           475.7      137.8   3.452 0.000574 ***
bmi                339.3       28.6  11.864  < 2e-16 ***
regionnorthwest   -352.8      476.3  -0.741 0.458976   
regionsoutheast  -1035.6      478.7  -2.163 0.030685 * 
regionsouthwest   -959.3      477.9  -2.007 0.044921 * 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 6062 on 1329 degrees of freedom
Multiple R-squared:  0.7509,        Adjusted R-squared:  0.7494
F-statistic: 500.9 on 8 and 1329 DF,  p-value: < 2.2e-16

 

R-제곱 값은 0.75. 의료비 변화량을 75% 설명한다

 

 

설명

1. 모델 수식에는 특징을 여섯개만 명시했지만 보고된 계수는

절편 이외에 여덟개를 보고 하고 있다.

이렇게 이유는 lm() 함수가 더미코딩 기법을 모델

팩터 타입변수에 자동으로 적용했기 때문이다(273p)

 

 

문제236.

비만인 사람이 흡연까지 했을 높은 패널티를 부여하려면

보험료를 인상시킬려면 어떻게 모델을 만들어야 하는가?

(278~280p)

bmi30<-ifelse(insu$bmi>=30,1, 0)

bmi30

ins_model2<-lm(expenses~age+children+bmi+sex+bmi30*smoker+region, data=insu)

ins_model2

ins_model2

Call:
lm(formula = expenses ~ age + children + bmi + sex + bmi30 *
    smoker + region, data = insu)

Coefficients:
    (Intercept)              age         children              bmi          sexmale 
        -4740.7            263.2            520.5            114.8           -491.1 
          bmi30        smokeryes  regionnorthwest  regionsoutheast  regionsouthwest 
         -863.3          13402.3           -266.8           -824.6          -1223.9 
bmi30:smokeryes 
        19794.3 

 

 

summary(ins_model2)

Call:
lm(formula = expenses ~ . + bmi30 * smoker + region, data = insu)

 

Residuals:
     Min       1Q   Median       3Q      Max
-18234.6  -1826.3  -1254.4   -444.4  24805.2

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)   
(Intercept)     -4740.682    960.019  -4.938 8.89e-07 ***
age               263.243      8.805  29.896  < 2e-16 ***
sexmale          -491.130    246.568  -1.992 0.046591 * 
bmi               114.828     34.574   3.321 0.000920 ***
children          520.474    101.959   5.105 3.79e-07 ***
smokeryes       13402.287    443.918  30.191  < 2e-16 ***
regionnorthwest  -266.800    352.417  -0.757 0.449150   
regionsoutheast  -824.573    354.812  -2.324 0.020277 * 
regionsouthwest -1223.870    353.685  -3.460 0.000557 ***
bmi30            -863.255    425.900  -2.027 0.042873 * 
smokeryes:bmi30 19794.264    610.110  32.444  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 4485 on 1327 degrees of freedom
Multiple R-squared:  0.8639,        Adjusted R-squared:  0.8628
F-statistic: 842.1 on 10 and 1327 DF,  p-value: < 2.2e-16

 

* 갯수가 영향도를 나타냄. *갯수가 수록 영향도가

 

설명: smokeryes 13,402 예상하는데

bmi30:smokeryes 19794.264 예상하고 있다.

 

-R 제곱 값을 0.86 으로 나타냄. 의료비 변화량을 86% 나타낸다

멀티 변수 만든(bmi30:smokeryes) 없었던 것과 비교하면

75% -> 86% 의료비변화량 퍼센테이지가 늘어났음을 있다.

 

 

 

귀무가설

귀무 가설(歸無假說, 영어null hypothesis, 기호 H0)

또는 

영 가설(零假說)  은 

통계학에서 처음부터 버릴 것을 예상하는 가설이다.

차이가 없거나

의미있는 차이가 없는 경우가설이며

이것이 맞거나 맞지 않다는 통계학적 증거를 통해 증명하려는 가설이다.

예를 들어 범죄 사건에서 용의자가 있을 때 형사는 이 용의자가 범죄를 저질렀다는 추정인 대립가설을 세우게 된다. 이때 귀무가설은 용의자는 무죄라는 가설이다.

통계적인 방법으로 가설검정을 시도할 때 쓰인다.

출처: <https://ko.wikipedia.org/wiki/%EA%B7%80%EB%AC%B4_%EA%B0%80%EC%84%A4>

 

 

 

276p

유의수준 보다 낮은 p-값은 통계적으로 유의한 것으로 간주된다.

유의확률

통계적 가설 검정에서 

유의 확률(有意 確率, 영어significance probability, asymptotic significance)

또는 

p-값(영어p-value, probability value)   은 

귀무가설이 맞다고 가정할 때 얻은 결과보다

극단적인 결과가 실제로 관측될 확률이다. 

 

P-value( probability , '아마도' 가능성 인데, 전제는 '귀무가설' 이다. )

유의확률 = p-value

유의확률이 크다? 대립가설 채택

유의확률이 작다? 귀무가설 유지

 

실험의 유의확률은 실험의 표본 공간에서 정의되는 확률변수로서, 0~1 사이의 값을 가진다.

p-값은 귀무 가설(null hypothesis)이 맞다는 전제 하에,

표본에서 실제로 관측된 통계치와 '같거나 더 극단적인' 통계치가 관측될 확률이다.

여기서 말하는 확률은 '빈도주의' (frequentist) 확률이다.

p-value는 관찰된 데이터가 귀무가설과 양립하는 정도를 0에서 1 사이의 수치로 표현한 것이다. p-value가 작을수록 그 정도가 약하다고 보며, 특정 값 (대개 0.05나 0.01 등) 보다 작을 경우 귀무가설을 기각하는 것이 관례이나 여기에는 여러 가지 문제들이 있다.[1]

 

출처: <https://ko.wikipedia.org/wiki/%EC%9C%A0%EC%9D%98_%ED%99%95%EB%A5%A0>

 

 

:

경찰이 용의자를 체포하면 '무죄추정의 원칙'으로 수사에 임한다.

이때 '무죄' 기반(=귀무가설)으로 잡은 값이 p-value(유의확률) .

근데 p-value 값이 작으면 무죄에서 멀어지고, 용의자는 피의자로

몰아가게 된다.

대립가설이 채택 확률이 올라간다.

결과적으로

유의확률 = p-value 값이 작아지면 대립가설이 채택된다.

 

언어적으로 설명하면,

 

유의확률이 작다 -> 회귀선이 유의하지 않다- > 예측값이 유의하지 않다

: 귀무가설 채택

 

유의확률이 크다 -> 회귀선이 유의하다- > 예측값이 유의하다

: 대립가설 채택

 

이것을 '회귀모형의 통계적 검정' 이라고 하며

 

 

 

 

 

문제236.

스마트폰 만족감(종속변수) 영향을 미치는 요소들(독립변수) 중에서

가장 영향도가 높은것이 무엇인지 알아내시오

 

multi_hg<-read.csv("multi_hg.csv", header=T)

names(multi_hg)

multi_model<-lm(만족감~., data=multi_hg)

summary(multi_model)

summary(multi_model)

Call:
lm(formula = 만족감 ~ ., data = multi_hg)

Residuals:
    Min      1Q  Median      3Q     Max
-0.9565 -0.4136 -0.1178  0.3998  1.7643

Coefficients:
            Estimate Std. Error t value Pr(>|t|)   
(Intercept)  3.51360    0.07001  50.185  < 2e-16 ***
외관         0.26943    0.07471   3.606 0.000553 ***
편의성       0.21052    0.07488   2.812 0.006269 **
유용성       0.16232    0.07633   2.127 0.036707 * 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.6159 on 76 degrees of freedom
Multiple R-squared:  0.3732,        Adjusted R-squared:  0.3485
F-statistic: 15.08 on 3 and 76 DF,  p-value: 8.555e-08

 

multi_model

Call:
lm(formula = 만족감 ~ ., data = multi_hg)

Coefficients:
(Intercept)         외관       편의성       유용성 
     3.5136       0.2694       0.2105       0.1623 

 

독립변수 가장 높은 영향도는 외관 0.2694

 

==================================

 reg <-  function (y, x) {

            x <- as.matrix(x)

            x <- cbind(intercept=1,x)

            b <- solve(t(x)%*%x) %*% t(x) %*% y

            colnames(b) <- "estimate"

            print(b)

 

                          }

 

reg(y=multi_hg$만족감, x=multi_hg[1:3])

 

 

 

lm 이용해서 회귀분석 해도 되고

예전에 만들었던 회귀분석 함수를 이용해서 구해도 된다

reg(y=multi_hg$만족감, x=multi_hg[1:3])
           estimate
intercept 3.5136006
외관      0.2694261
편의성    0.2105249
유용성    0.1623154

설명: 스마트폰 만족감에는 외관이 가장 영향력이 높음을 있다.

 

 

 

 

문제237.

미국 대학 입학에 가장 영향을 크게 미치는 요소가 academic 점수인지,

music 점수인지, sports 점수인지 알아내시오!

 

school<-read.csv("sports.csv", header=T, stringsAsFactors = T) # True 순서형

   #False 명목형

school<-school[-1]

names(school)

 

school_model<-lm(acceptance~., data=school)

school_model

summary(school_model)

 school_model

Call:
lm(formula = acceptance ~ ., data = school)

Coefficients:
(Intercept)     academic       sports        music 
    11.4903       0.1558       0.5727       0.1046

 

summary(school_model)

Call:
lm(formula = acceptance ~ ., data = school)

Residuals:
    Min      1Q 
 Median   3Q     Max
-29.179  -2.454   1.226   4.130   9.558

Coefficients:
 Estimate       Std.        Error      t value    Pr(>|t|)    # P-value
(Intercept) 11.490280   1.052578  10.916  < 2e-16 ***
academic     0.155774   0.005796  26.877  < 2e-16 ***
sports       0.572686   0.039688  14.430  < 2e-16 ***
music        0.104601   0.023427   4.465 1.35e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1  #유의수준

# 의학에서는 유의수준이 0.01, 일반적으로는 0.05 기준으로 둔다.

Residual standard error: 5.948 on 196 degrees of freedom
Multiple R-squared:  0.9067,        Adjusted R-squared:  0.9053
F-statistic: 634.8 on 3 and 196 DF,  p-value: < 2.2e-16

p-values 이란?

귀무가설에서 얻은 검정통계량의 이상으로 대립가설에 유리한 데이터를

얻을 있는 확률

P > 유의수준 -> 귀무가설 수용

P < 유의수준 -> 귀무가설 기각, 대립가설 채택

 

귀무가설을 기각할 있는 유의수준 최소값

 

일부 p 값에는 별이 있는데, 추정치로 충족되는 유의수준을 나타내는

각주에 해당이 된다.

유의수준보다 낮은 p값은 통계적으로 유의한 것으로 간주된다.

 

 

 

※ R-squared ?

회귀선의 설명력.

추정된 회귀식이 어느 정도 측정치들과 일치하는지의 정도를

나타내는

100 기준으로 R-squared 값이 높을 수록 측정치를 반영한다고 있다.

 

 

 

 

 

 

Multiple R-squared(다중R제곱 )

    Adjusted R-squared(수정된 R제곱 ) 차이?

* R제곱 = 결정계수

 


 

결정계수는 상관계수와 마찬가지로 0 < R^2 < 1  사이의 값을 가지며,

일반적으로 0.65(65%)보다 경우 회귀식을 설명한다고 판단한다.

하지만 명확한 기준은 없는 같다.

결정계수가 조금은 낮게 나왔더라도 연구자가 이유에 대해 충분히

입증할 있으면 가능할 것이라 생각된다.

 

R^2=결정계수(coefficient of determination)

회귀모형의 데이터에 대한 설명력을 나타내는 척도이다.

좋은 회귀 모형에는 가지 조건이 있다.

1. 데이터를 설명한다

2. 간단하다

 

독립변수(설명변수) 많은 회귀모형의 경우에는 번째 조건을 만족한다.

그러나 번째 조건(2. 간단하다)에서는 탈락이라고 있다.

아무리

설명력이 좋아도 복잡하다면 그다지 좋은 모형이 아니다.

그래서

결정계수가 높다고 좋은 모형이라며 쉽사리 결론을 지으면 안된다.

결정계수가 모형의 설명력을 측정하기 좋은 척도라는 것은 사실이지만

위에서 얘기 했던것 같은 단점을 보완하기 위해

보완된 척도가 등장하게 되었는데 그게 바로

"조정된 결정계수" (Adjusted R-squared) 이다.

척도는 다행스럽게도 독립변수의 숫자가 증가한다고 해서

무작정 커지지 않는다.

 

 

 

 

문제238(점심시간문제)

의료비 데이터 회귀모델의 성능(R제곱값) 75% 설명력을 높이기 위해

278p 나오는 파생변수인 age2 회귀모델의 설명력을

높이는지 확인하시오

 

age2<-insu$age^2

 

제곱하는 이유

u자형의 분포도를 나타내는 경우가 있다.

이런 경우 제곱해서 펼쳐준다.(그래야 선형회귀분석 가능)

 

 

ins_model2<-lm(expenses~.+age2, data=insu)

ins_model2

summary(ins_model2)

 

summary(ins_model2)

Call:
lm(formula = expenses ~ . + age2, data = insu)

Residuals:
     Min       1Q   Median       3Q      Max
-11665.6  -2854.7   -942.7   1300.8  30814.6

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)   
(Intercept)     -6602.064   1689.528  -3.908 9.79e-05 ***
age               -54.423     80.989  -0.672 0.501716   
sexmale          -138.451    331.189  -0.418 0.675983   
bmi               335.291     28.467  11.778  < 2e-16 ***
children          642.121    143.613   4.471 8.44e-06 ***
smokeryes       23858.690    410.976  58.054  < 2e-16 ***
regionnorthwest  -367.632    473.771  -0.776 0.437905   
regionsoutheast -1031.998    476.164  -2.167 0.030388 * 
regionsouthwest  -956.787    475.398  -2.013 0.044358 * 
age2                3.925      1.010   3.885 0.000107 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 6030 on 1328 degrees of freedom
Multiple R-squared:  0.7537,        Adjusted R-squared:  0.7521
F-statistic: 451.6 on 9 and 1328 DF,  p-value: < 2.2e-16
  # 검정통계량

검정통계량

검정을 하려면 , 귀무가설이 맞거나 틀린것을 증명하려면

어떤 증거가 있어야 한다.

증거에 해당하는 숫자를 검정통계량(test statistics)라고 한다.

예를들면

"어떤 학생이 우등 상장을 받을 있는 우등생이다" 라는 가설을

증명하려면 시험(test) 대한 성적을 측정하면 된다.

시험 성적을 검정통계량 이라고 부를 있다.

 

 

 

다중 회귀 세번째 ppt 설명

<<회귀분석 알고리즘 세번째.pdf>>

 

명목 서열척도: 빙과류가 가장 많이 팔리는데 영향을 주는 독립변수 중에

계절이 있다면?

      

계절변수 데이터: , 여름, 가을, 겨울



 

 

 

편차?

관측치(실제값) 평균으로부터 떨어져 있는 정도

, 평균과의 차이(yi - yi 평균)

 

 

잔차?

관측치(실제값) 회귀식의 예측치와의 차이

, 잔차는 편차의 일부분이다.(yi - y 예측치)

 

오차?

편차와 달리 예측하기 위하여 추정된 값과

실제값과의 차이(yi - y 예측치)

 

편차?

회귀선으로 설명할 없는 편차 (잔차)  +

회귀선으로 설명할 있는 편차(회귀선과 평균과의 차이)

                   (*실제값이 가까울 경우 실제값과 평균과의 차이 적용)



 

 

자유도?

자유도는 없는 모집단 모수의 값을 추정하고

이러한 추정치의 변동성을 계산하는데 "사용" 있는

데이터가 제공하는 정보량 입니다.

값은 표본의 관측치(실제값) 수와 모형의 모수(예측값) 수에 따라 결정됩니다.

 

 

SST ?

Sum Squered Total 총합계의 제곱 (SSR+SSE)

자유도(df) = (k+1)-1

* k = 독립변수의

  n = 모수의

 

SSE?

Sum of Squered Error(잔차 제곱의 )

자유도(df) = n - (k+1)

 


 

 

 

 

 

 

SSR?

Sum of regression(회귀의 제곱 )

자유도(df) = n-1

 

 

결정계수?(R^2)

회귀식이 자료를 얼마나 설명하고 있는가를 나타내는 계수

추정된 회귀선이 실제값과 평균 사이의 편차를

얼마나 줄여주는가를 나타내는 지수

 




정규화(표준화) 하는 경우와 하는 경우

1. 정규화를 하는 경우

보험 비용에 가장 영향을 크게 미치는 변수가 무엇인지 확인할

: 몸무게와 키는 단위가 다르므로 단위를 생각해서

가장 영향이 변수를

 

2. 정규화를 하는 경우

나이가 늘어날 또는 부양가족이 늘어날 때의

보험료가 얼마나 인상되어야 하는지를 예측할

: 부양가족이 늘어날 수록 의료비가 475달러 증가한다.

           비만지수 1증가는 매년 의료비를 339달러를 만든다.

           나이의 1 증가는 매년 의료비를 256달러 만든다.

 

 

비표준화 계수와 표준화 계수의 차이점?

비표준화 계수는 변수의 단위를 생각하지 않는 추정치이고

표준화 계수는 단위를 생각해서 만든 추정치이다.

 

 

문제239.

의료비 데이터를 정규화 후에 회귀계수를 정규화 하지 않았을때의

회귀계수와 비교하시오

 

정규화 했을

ins_model1<-lm(expenses~., data = insu)
> summary(ins_model1)

Call:
lm(formula = expenses ~ ., data = insu)

Residuals:
     Min       1Q   Median       3Q      Max
-11302.7  -2850.9   -979.6   1383.9  29981.7

Coefficients:
                Estimate Std. Error t value Pr(>|t|)   
(Intercept)     -11941.6      987.8 -12.089  < 2e-16 ***
age                256.8       11.9  21.586  < 2e-16 ***
sexmale           -131.3      332.9  -0.395 0.693255   
bmi                339.3       28.6  11.864  < 2e-16 ***
children           475.7      137.8   3.452 0.000574 ***
smokeryes        23847.5      413.1  57.723  < 2e-16 ***
regionnorthwest   -352.8      476.3  -0.741 0.458976   
regionsoutheast  -1035.6      478.7  -2.163 0.030685 * 
regionsouthwest   -959.3      477.9  -2.007 0.044921 * 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 6062 on 1329 degrees of freedom
Multiple R-squared: 
0.7509,        Adjusted R-squared:  0.7494  #결정계수
F-statistic: 500.9 on 8 and 1329 DF,  p-value: < 2.2e-16

 

==============================

정규화

insu_n<-as.data.frame( lapply( insu[ , c( 1,3,4,7) ], scale ))

# 정규화는 숫자형 값만 가능하다.

# 예를들면 성별은 ',' 나타내는 명목형 데이터라서

# 정규화에서 제외시켜야 한다.

# (cm) 몸무게(kg) 같은 수치형 데이터만 가능하다

head(insu_n)

insu_model_n<-lm(expenses~., data=insu_n)

summary(insu_model_n)

summary(insu_model_n)

Call:
lm(formula = expenses ~ ., data = insu_n)

Residuals:
    Min      1Q  Median      3Q     Max
-1.1464 -0.5780 -0.4213  0.5891  4.0145

Coefficients:
             Estimate Std. Error t value Pr(>|t|)   
(Intercept) 9.058e-17  2.567e-02   0.000   1.0000   
age         2.784e-01  2.586e-02  10.766  < 2e-16 ***
bmi         1.675e-01  2.584e-02   6.481 1.28e-10 ***
children    5.406e-02  2.571e-02   2.103   0.0357 * 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.939 on 1334 degrees of freedom
Multiple R-squared:  0.1202,        Adjusted R-squared:  0.1182
F-statistic: 60.74 on 3 and 1334 DF,  p-value: < 2.2e-16

 

 

 

 

 

 


728x90
반응형

'R' 카테고리의 다른 글

신경망  (0) 2019.04.03
회귀트리  (0) 2019.04.03
의사결정트리  (0) 2019.03.10
나이브베이즈  (0) 2019.03.10
knn  (0) 2019.03.10