본문 바로가기
개발자 일기/R프로그래밍

1. 시작_

by ahnne_ 2022. 5. 19.
반응형

예시를 통한 작동 원리 파악

 

 

#패키지 설치, 자동차 관련 데이터 
install.packages("dplyr")
install.packages("ggplot2")
 #--> 우측하단에 Packages에서 조회 됨


#패키지 로드 
library(dplyr)  #<--배기량
library(ggplot2)


#데이터 검토 
#ggplot2 안에 mpg의 데이터 확인 

#"my per gallon" 의 약자로 자동차 데이터 모음

 

#열의 head 확인

head(mpg)

> head(mpg)
# A tibble: 6 × 11
  manufacturer model displ  year   cyl trans      drv     cty   hwy fl    class  
  <chr>        <chr> <dbl> <int> <int> <chr>      <chr> <int> <int> <chr> <chr>  
1 audi         a4      1.8  1999     4 auto(l5)   f        18    29 p     compact
2 audi         a4      1.8  1999     4 manual(m5) f        21    29 p     compact
3 audi         a4      2    2008     4 manual(m6) f        20    31 p     compact
4 audi         a4      2    2008     4 auto(av)   f        21    30 p     compact
5 audi         a4      2.8  1999     6 auto(l5)   f        16    26 p     compact
6 audi         a4      2.8  1999     6 manual(m5) f        18    26 p     compact

#행과 열의 크기 확인

dim(mpg)

> dim(mpg)
[1] 234  11

 

#열의 속성을 나타냄

str(mpg)

> str(mpg)
tibble [234 × 11] (S3: tbl_df/tbl/data.frame)
 $ manufacturer: chr [1:234] "audi" "audi" "audi" "audi" ...
 $ model       : chr [1:234] "a4" "a4" "a4" "a4" ...
 $ displ       : num [1:234] 1.8 1.8 2 2 2.8 2.8 3.1 1.8 1.8 2 ...
 $ year        : int [1:234] 1999 1999 2008 2008 1999 1999 2008 1999 1999 2008 ...
 $ cyl         : int [1:234] 4 4 4 4 6 6 6 4 4 4 ...
 $ trans       : chr [1:234] "auto(l5)" "manual(m5)" "manual(m6)" "auto(av)" ...
 $ drv         : chr [1:234] "f" "f" "f" "f" ...
 $ cty         : int [1:234] 18 21 20 21 16 18 18 18 16 20 ...
 $ hwy         : int [1:234] 29 29 31 30 26 26 27 26 25 28 ...
 $ fl          : chr [1:234] "p" "p" "p" "p" ...
 $ class       : chr [1:234] "compact" "compact" "compact" "compact" ..

*displ : 배기량, year : 생산년도, cyl : 엔진 실린더, trans : 변속기 타입, drv : 구동방식, cty : 시내연비, hwy : 고속도로 연비, fl : 연료의 종류,  class : 자동차 분류(소형차인지..)

 

#컬럼의 분포 통계를 보여줌

summary(mpg)

 manufacturer          model               displ            year           cyl           trans          
 Length:234         Length:234         Min.   :1.600   Min.   :1999   Min.   :4.000   Length:234        
 Class :character   Class :character   1st Qu.:2.400   1st Qu.:1999   1st Qu.:4.000   Class :character  
 Mode  :character   Mode  :character   Median :3.300   Median :2004   Median :6.000   Mode  :character  
                                       Mean   :3.472   Mean   :2004   Mean   :5.889                     
                                       3rd Qu.:4.600   3rd Qu.:2008   3rd Qu.:8.000                     
                                       Max.   :7.000   Max.   :2008   Max.   :8.000                     
     drv                 cty             hwy             fl               class          
 Length:234         Min.   : 9.00   Min.   :12.00   Length:234         Length:234        
 Class :character   1st Qu.:14.00   1st Qu.:18.00   Class :character   Class :character  
 Mode  :character   Median :17.00   Median :24.00   Mode  :character   Mode  :character  
                    Mean   :16.86   Mean   :23.44                                        
                    3rd Qu.:19.00   3rd Qu.:27.00                                        
                    Max.   :35.00   Max.   :44.00

 * 1st Qu. : 하위 25%에 해당하는 값, 3st Qu. : 상위 25%에 해당하는 값

 

#원 자료를 엑셀처럼 UI를 통해 보는 것으로 데이터가 많을 경우 권장하지 않음

View(mpg)

 

#회사별 평균 연비가 높은 순 

mpg %>%
  group_by(manufacturer) %>%
  summarise(mean.hwy=mean(hwy)) %>%
  arrange(desc(mean.hwy))

> mpg %>%
+   group_by(manufacturer) %>%
+   summarise(mean.hwy=mean(hwy)) %>%
+   arrange(desc(mean.hwy))
# A tibble: 15 × 2
   manufacturer mean.hwy
   <chr>           <dbl>
 1 honda            32.6
 2 volkswagen       29.2
 3 hyundai          26.9
 4 audi             26.4
 5 pontiac          26.4
 6 subaru           25.6
 7 toyota           24.9
 8 nissan           24.6
 9 chevrolet        21.9
10 ford             19.4
11 mercury          18  
12 dodge            17.9
13 jeep             17.6
14 lincoln          17  
15 land rover       16.5

SQL로 치면 from 절이 첫번째 mpg가 되는 듯하다. 

 

 

#포드 연비 높은순 정렬
mpg %>%
  filter(manufacturer =="ford") %>%
  group_by(model) %>%
  arrange(desc(hwy))

> mpg %>%
+   filter(manufacturer =="ford") %>%
+   group_by(model) %>%
+   arrange(desc(hwy))
# A tibble: 25 × 11
# Groups:   model [4]
   manufacturer model     displ  year   cyl trans drv  
   <chr>        <chr>     <dbl> <int> <int> <chr> <chr>
 1 ford         mustang     3.8  1999     6 manu… r    
 2 ford         mustang     4    2008     6 manu… r    
 3 ford         mustang     3.8  1999     6 auto… r    
 4 ford         mustang     4    2008     6 auto… r    
 5 ford         mustang     4.6  2008     8 manu… r    
 6 ford         mustang     4.6  1999     8 manu… r    
 7 ford         mustang     4.6  2008     8 auto… r    
 8 ford         mustang     4.6  1999     8 auto… r    
 9 ford         mustang     5.4  2008     8 manu… r    
10 ford         explorer…   4    1999     6 manu… 4    
# … with 15 more rows, and 4 more variables:
#   cty <int>, hwy <int>, fl <chr>, class <chr>

 

#회귀분석 식 : Y ~ f(X, β)
#β는 미지의 매개변수로 상수나 벡터 값이고, X는 독립변수, Y는 종속변수이다.
#배기량이 연비에 미치는 영향 회귀분석
#아래는 hwy 가 종속변수, displ이 독립변수(배기량)
lm.mpg <- lm(data=mpg, hwy ~ displ) #회귀분석 hwy가 종속벼수
summary(lm.mpg)  #결과 출력

#아래 결과 및 해설

> #배기량이 연비에 미치는 영향 회귀분석
> lm.mpg <- lm(data=mpg, hwy ~ displ) #회귀분석
> summary(lm.mpg)  #결과 출력

Call:
lm(formula = hwy ~ displ, data = mpg)

Residuals:
    Min      1Q  Median      3Q     Max 
-7.1039 -2.1646 -0.2242  2.0589 15.0105 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  35.6977     0.7204   49.55   <2e-16 ***
displ        -3.5306     0.1945  -18.15   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.836 on 232 degrees of freedom
Multiple R-squared:  0.5868,	Adjusted R-squared:  0.585 
F-statistic: 329.5 on 1 and 232 DF,  p-value: < 2.2e-16

해설 : 배기량이 증가할 수록(독립변수의 증가가) 연비(종속변수)에 어떤 변화를 주는지에대한 측정으로

[Coefficients] 부분에서 displ 값은 배기량이 한단위 변화할때마다 연비가 얼마나 변하는지 기울기를 나타내줌.

Estimate 부분은 배기량이 1증가할 때마다 고속도로 연비가 -3.5306이(감소가) 된다는 것을 알 수 있다.

Pr(>|t|)   부분은 '유의 확률' p-value부분으로 '<2.2e-16'이라는 것은 2.2*10^(-16) 즉, 0.000000000000000022 보다 작다는의미.  즉, "두 변수의 관계가 통계적으로 유의하다" 라고 판단 할 수 있다.

*보통 통계분석은 5% 보다 작으면 유의하다 라고 해석함.

 

Multiple R-squared:  0.5868 <- 배기량이 고속도로 연비의 몇퍼센트 정도의 의미 혹은 설명을 해주는가 에대한 부분

 

반응형

댓글