블로그 이미지
잡다구리구리 민둉

카테고리

분류 전체보기 (23)
빅데이터 (3)
RRRR (3)
Analytics (0)
Reinforcement Learni.. (0)
뚝딱뚝딱 (6)
욤뇸뇸뇸 (1)
요기죠기 (0)
기억조각 (1)
세번째눈 (1)
마음양식 (1)
나의하루 (9)
Total
Today
Yesterday

factor()

R에서 제공하는 categorical variable(범주형 변수)로, 여러개의 level로 구성된다.

argument

factor(x = character(), levels, labels = levels, exclude = NA, ordered = is.ordered(x), nmax = NA)

 

 

각 level 별로 counting 되고, categoricla 변수로 저장된다.

 

https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/factor

Posted by 민둉
, |

 

glm()

 

GLM(Generalized Linear Model)?

GLM은 문자 그대로 선형적이지 않은 대상(비선형)을 선형적으로 '일반화' 시킨 모형.

선형화 시키는 이유

 - 가장 대표적으로 선형모형에서만 사용할 수 있는 모형의 해석, 확장, 수정 등의 방법을 사용하기 위함.

 - 비선형모형의 경우는 모형을 다루는 방법이 많이 제한될 뿐만 아니라 새로운 데이터에 민감하기 때문에 선형모형에 비해 덜 선호되는 경향이 있다.

 

arguments

glm(formula, family = gaussian, data, weights, subset, na.action, start = NULL, etastart, mustart, offset, control = list(…), model = TRUE, method = "glm.fit", x = FALSE, y = TRUE, singular.ok = TRUE, contrasts = NULL, …)

 

formula : 이 인자값에는 약속에 의해 정해진 기호(operator)를 이용하여 모델의 뼈대를 설정할 수 있다.

 - "~" 기호 : 기본적으로 formula 인자값의 입력은 종속변수를 앞에 쓰고 독립변수를 뒤에 쓰게 되는데 종속변수와 독립변수를 구분 짓는 기호는 "~" 이다.

 (e.g. (formula =종속변수 ~ 독립변수1 )) -> 단순 선형 회귀

 

 - "+" 기호 : 독립변수 하나 뿐만 아니라 여러 개의 변수까지 고려하는 다중회귀분석을 하고 싶다면 "+" 기호를 이용해 고려대상이 되는 변수를 추가시킬 수 있다.

 (e.g. (formula =종속변수 ~ 독립변수1 + 독립변수2 + 독립변수3 ...)) -> 다중회귀적합

 

 - "." 기호 : "전부" 의 의미를 가진다.

 (e.g. (formula = mpg ~ ., data = mtcars) 
위의 코드는 종속변수로 이미 배정된 mpg 이외의 모든 변수를 독립변수로 고려하라 라는 의미

 

 - "-" 기호 : "+" 기호의 반대는 "-" 이다. 의미 역시 반대이다. 

 (e.g. (formula = mpg ~ . - cyl, data = mtcars)  
고려대상에서 추가하는 "+" 와 다르게 "-" 는 고려대상에서 제외시킨다.
"." 기호를 통해 모든 독립변수를 배정했는데, 여기서 cyl 변수만은 독립변수에서 제외하고 싶을 경우

 

 

참고 : https://lovetoken.github.io/r/2016/12/06/formula_usage.html

 

 

family  :  binomial() , 일반화 선형 모형에서는 다양한 분포의 종속 변수에 적용하기 때문에, 종속 변수가 어떤 분포를 따르고 있는지 옵션을 주는 것.  Logistic regression 의 종속변수는 이항 변수이므로 이항 분포를 따르고 있다. 그러므로 binomial()을 설정해준다. 

data : 모델의 변수를 포함하는 dataframe

 

 

 

 

https://www.rdocumentation.org/packages/stats/versions/3.6.2/topics/glm

 

 


GRE, GPA, RANK이 입학(admission)에 어떤 영향을 주는지 로지스틱 회귀분석을 통해 분석

library(aod) 
library(ggplot2) 
mydata <- read.csv("https://stats.idre.ucla.edu/stat/data/binary.csv")

# view the first few rows of the data 
head(mydata)

# 데이터의 대략적인 분포 확인 
summary(mydata) 

# 데이터 구조 확인 
str(mydata) 

# 변수별 표준편차 확인 
sapply(mydata, sd) 

# contingency table : xtabs(~ x + y, data) 
xtabs(~admit+rank, data=mydata)

# categorical variable
mydata$rank <- factor(mydata$rank)

# logistic regression
mylogit <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")
summary(mylogit)
--------------------------------------------------------------------------------------
Call:
glm(formula = admit ~ gre + gpa + rank, family = "binomial", 
    data = mydata)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.6268  -0.8662  -0.6388   1.1490   2.0790  

Coefficients:
             Estimate Std. Error z value Pr(>|z|)    
(Intercept) -3.989979   1.139951  -3.500 0.000465 ***
gre          0.002264   0.001094   2.070 0.038465 *  
gpa          0.804038   0.331819   2.423 0.015388 *  
rank2       -0.675443   0.316490  -2.134 0.032829 *  
rank3       -1.340204   0.345306  -3.881 0.000104 ***
rank4       -1.551464   0.417832  -3.713 0.000205 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 499.98  on 399  degrees of freedom
Residual deviance: 458.52  on 394  degrees of freedom
AIC: 470.52

Number of Fisher Scoring iterations: 4

 

 - Call : 구축한 모형에 대한 요약

 - Deviance Residuals

  : Deviance residual에 대한 정보. model fitting이 잘 되었는지에 대한 measure. 모델이 잘 적합됐는지를 평가할 수 있다.

 - Coefficient ( Estimate / Std. Error / z value / Pr(>|z|) )

: 회귀계수와 그것들의 표준편차, z-statistics(wals's z-statistics), p-value를 나타낸다. 

 

* 회귀계수

로지스틱 회귀모형에서는 회귀계수가 변수가 한 단위 증가했을 때 log(odds)의 증가량으로 해석할 수 있다.

- 연속형 : 1 단위 씩 증가할 때마다 확률 값이 증가하는 비율

- 명목형 : 기준 카테고리 대비 비율

- 양수(+) : (Y=1) 의 가능성이 높은 것.

- 음수(-) : (Y=1) 의 가능성이 낮은 것.

- 더미변수의 경우 : 예를 들어 rank2의 회귀계수 -0.67은 rank1에서 rank2로 바뀌었을 때, log(odds)의 변화

 

 -> exp(Estimate) 로 log 를 제거하고 오즈비로 변환하여 해석.

  exp(0.002264)  = 1.002267  ; gre 가 1 증가하면 입학률은 1.002267 배 증가

'빅데이터 > RRRR' 카테고리의 다른 글

[ R ] factor() , R의 categorical variable  (0) 2020.06.07
[ R ] seq() / seq_along()  (0) 2020.06.07
Posted by 민둉
, |

seq()

sequence generator

 

arguments

seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)), length.out = NULL, along.with = NULL, ...)

 

Typical usage

seq(from, to)                        # c(from:to) 와 동일
seq(from, to, by=)                 # by : 간격
seq(from, to, lenth.out=)         # length.out : 출력될 벡터의 길이
seq(along.with=)                   # along.with : 입력된 벡터의 길이 -> 만큼 벡터를 출력
seq(from)
seq(length.out=)

seq_along(along.with=)         # 무조건 1부터 시작해서 along.with 값만 인자로 받는 함수.
seq_len(length.out=)            # 무조건 1부터 시작해서 length.out 값만 인자로 받는 함수.

 

seq_along() , seq_len()

seq_along() , seq_len() 함수가 seq와 따로 존재하는 이유는 실행 속도가 조금 빠르기 때문에 많은 양의 시퀀스를

생성할 때 효율을 높이기 위해서 따로 존재.

(1부터 시작하는 시퀀스를 만드는 경우가 많기 때문에)

 

 

 

 

 

https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/seq

Posted by 민둉
, |

최근에 달린 댓글

글 보관함