#3-3 True False
x1 <- c(T,F,T,F)
x2 <- c(F,F,T,T)
!x1
## [1] FALSE TRUE FALSE TRUE
x1|x2
## [1] TRUE FALSE TRUE TRUE
x1&x2
## [1] FALSE FALSE TRUE FALSE
x1||x2
## [1] TRUE
x1&&x2
## [1] FALSE
#3-4 Factor
#1
sex <- c(1,2,1,2,NA)
class(sex)
## [1] "numeric"
mode(sex)
## [1] "numeric"
sex <- factor(c(1,2,1,2,NA),levels=c(1,2),labels=c("F","M"))
class(sex)
## [1] "factor"
mode(sex)
## [1] "numeric"
levels(sex)
## [1] "F" "M"
nlevels(sex)
## [1] 2
sex <- factor(c(1,2,1,2,NA),levels=c(1,2),labels=c("F","M"))
sex
## [1] F M F M <NA>
## Levels: F M
#2
blood <- c("A","O","O","AB","O",NA)
class(blood)
## [1] "character"
mode(blood)
## [1] "character"
blood <- factor(c("A","O","O","AB","O",NA),levels=c("A","AB","B","O"))
class(blood)
## [1] "factor"
mode(blood)
## [1] "numeric"
levels(blood)
## [1] "A" "AB" "B" "O"
nlevels(blood)
## [1] 4
#3
q1 <- c(3,2,2,3,2)
class(q1)
## [1] "numeric"
mode(q1)
## [1] "numeric"
q1 <- factor(c(3,2,2,3,2),levels=c(1,2,3),labels=c("반대","보통","모름"))
class(q1)
## [1] "factor"
mode(q1)
## [1] "numeric"
levels(q1)
## [1] "반대" "보통" "모름"
nlevels(q1)
## [1] 3
q1 <- factor(c(3,2,2,3,2),levels=c(1,2,3),labels=c("반대","보통","모름"),ordered=T)
class(q1)
## [1] "ordered" "factor"
mode(q1)
## [1] "numeric"
levels(q1)
## [1] "반대" "보통" "모름"
nlevels(q1)
## [1] 3
q1 <- factor(c(3,2,2,3,2),levels=c(1,2,3),labels=c("반대","보통","찬성"))
#4
income <- c("Mid","Hi",NA,"Hi","Mid","Hi")
class(income)
## [1] "character"
mode(income)
## [1] "character"
income <- factor(c("Mid","Hi",NA,"Hi","Mid","Hi"),levels=c("Lo","Mid","High"))
class(income)
## [1] "factor"
mode(income)
## [1] "numeric"
levels(income)
## [1] "Lo" "Mid" "High"
nlevels(income)
## [1] 3
income <- factor(c("Mid","Hi",NA,"Hi","Mid","Hi"),levels=c("Lo","Mid","High"),ordered=T)
class(income)
## [1] "ordered" "factor"
mode(income)
## [1] "numeric"
levels(income)
## [1] "Lo" "Mid" "High"
nlevels(income)
## [1] 3
income
## [1] Mid <NA> <NA> <NA> Mid <NA>
## Levels: Lo < Mid < High
#3-4
h5 <- 1/(1:5)
sum(h5)
## [1] 2.283333
#3-5
#1
X <- matrix(c(1,1,1,1,2,0),nr=3)
X
## [,1] [,2]
## [1,] 1 1
## [2,] 1 2
## [3,] 1 0
#2
y <- c(1,2,3)
y
## [1] 1 2 3
sst <- var(y)*(length(y)-1)
sst
## [1] 2
#3
XTX <- t(X) %*% X
XTX
## [,1] [,2]
## [1,] 3 3
## [2,] 3 5
XTy <- t(X) %*% y
XTy
## [,1]
## [1,] 6
## [2,] 5
#4
det(XTX)
## [1] 6
InvXTX <- solve(XTX)
b <- InvXTX %*% XTy
b
## [,1]
## [1,] 2.5
## [2,] -0.5
#5
b <- solve(XTX,XTy)
#6
H <- X %*% InvXTX %*% t(X)
H
## [,1] [,2] [,3]
## [1,] 0.3333333 0.3333333 0.3333333
## [2,] 0.3333333 0.8333333 -0.1666667
## [3,] 0.3333333 -0.1666667 0.8333333
H %*% H
## [,1] [,2] [,3]
## [1,] 0.3333333 0.3333333 0.3333333
## [2,] 0.3333333 0.8333333 -0.1666667
## [3,] 0.3333333 -0.1666667 0.8333333
sum(diag(H))
## [1] 2
det(H)
## [1] 0
#7
yhat <- H %*% y
#8
res <- y-yhat
res
## [,1]
## [1,] -1.0
## [2,] 0.5
## [3,] 0.5
sse <- t(res) %*% res
sse
## [,1]
## [1,] 1.5
##
x <- c(1,2,0)
y <- c(1,2,3)
m <- lm(y~x)
coef(m)
## (Intercept) x
## 2.5 -0.5
predict(m)
## 1 2 3
## 2.0 1.5 2.5
residuals(m)
## 1 2 3
## -1.0 0.5 0.5
summary(m)
##
## Call:
## lm(formula = y ~ x)
##
## Residuals:
## 1 2 3
## -1.0 0.5 0.5
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.500 1.118 2.236 0.268
## x -0.500 0.866 -0.577 0.667
##
## Residual standard error: 1.225 on 1 degrees of freedom
## Multiple R-squared: 0.25, Adjusted R-squared: -0.5
## F-statistic: 0.3333 on 1 and 1 DF, p-value: 0.6667
anova(m)
## Analysis of Variance Table
##
## Response: y
## Df Sum Sq Mean Sq F value Pr(>F)
## x 1 0.5 0.5 0.3333 0.6667
## Residuals 1 1.5 1.5
plot(x,y)
abline(a=coef(m)[1],b=coef(m)[2])

#3-6
d <- data.frame(name=c('대처','간디','프랭클린'),
gnder=c(2,1,1),
ht=c(162,168,178),
wt=c(71,58,73),
bld=c(2,3,4),
consrv=c(3,1,1),
capital=c(3,1,2),
nsibling=c(2,4,17),
bord=c(2,4,15),
digit=c(3,1,3),
hair=c(1,NA,1))
d
## name gnder ht wt bld consrv capital nsibling bord digit hair
## 1 대처 2 162 71 2 3 3 2 2 3 1
## 2 간디 1 168 58 3 1 1 4 4 1 NA
## 3 프랭클린 1 178 73 4 1 2 17 15 3 1