이 내용은 SAS 일반에서 SAS/IML 의 내용을 R로 바꾸어 본 것입니다.
SAS에서 행렬계산을 할 때에는 SAS/IML 이란 제품을 구입해야 하지만
R에서는 기본 데이터객체(그냥 변수라고 쉽게 생각)에서 행렬(matrix)를 지원하므로
공짜로, 그리고 다양한 기능을 자유자재로 사용할 수 있습니다.
SAS/IML과 R과의 문법은 거의 비슷합니다.
전치행렬을 구할 때 SAS에서는 `, R에서는 t( ) 함수
역행렬을 구할 때 SAS에서는 INV 를 ,R에서는 solve()를 사용하는 등
조금 차이가 있습니다.
SAS에서는 SAS/BASE, SAS/STAT과 SAS/IML을 자유로이(?) 왔다 갔다 할 수 있지만
R에서는 왔다 갔다 할 것 없이, 그냥(?) 편하게 사용하면 됩니다.
#=== 6. 상관분석과 회귀분석
```{r}
x <- matrix(c(1, 1, 1, 2,1, 3, 1, 4, 1, 6, 1, 7),byrow = T,ncol=2)
x
y <- matrix(c(21, 32, 43, 56, 67, 76))
y
t(x)
xpx <- t(x) %*% x; xpx
xpy <- t(x) %*% y; xpy
xpxi <- solve(xpx)
beta <- solve(t(x) %*% x) %*% t(x) %*% y
beta
yhat <- x %*% beta
resid <- y-yhat;
sse <- sum(resid*resid) # sum of squares error
sse
n <- nrow(x) # number of observations
k <- ncol(x) # number of variables
dfe <- n-k # degrees of freedom error
dfe
mse <- sse/dfe; # mean square error
mse
rmse <- sqrt(mse) # root mean square error
rmse
?dt
sum((y-mean(y))^2)
rsquare <- 1 - sse / sum((y-mean(y))^2)
rsquare
covb <- solve(t(x) %*% x) * mse;
covb
diag(covb)
stderr <- sqrt(diag(covb))
tratio <- beta / stderr
tratio
probt <- pt(tratio,dfe)
(1-probt)*2
lm(y~x)
summary(lm(y~x))
```