_대문 | 방명록 | 최근글 | 홈피소개 | 주인놈
FrontPage › 로버스트회귀분석

Contents

[-]
1 사용법
2 예측, 신뢰구간, plotting
3 참고자료


1 사용법 #

m1 <- rlm(dau ~ x, data=tmp) #후버의 M추정
m2 <- lqs(dau ~ x, method="lms", data=tmp) #LMS: Least Median of Squares
m3 <- lqs(dau ~ x, method="lts", data=tmp) #LTS: Least Trimmed Squares, 이상치로 추정되는 값을 버리고 회귀분석
m4 <- lqs(dau ~ x, method="lts", quantile=8, data=tmp) #9,10 분위에 해당되는 값을 버리고 회귀분석
boxplot(m1$resid, m2$resid, m3$resid, m4$resid)

2 예측, 신뢰구간, plotting #

target <- "s"

if (target == "l"){
    xx <- seq(1:nrow(long_term))
    tmp <- data.frame(x = seq(1:nrow(long_term)), dau=long_term$dau)
} else {
    xx <- seq(1:nrow(short_term))
    tmp <- data.frame(x = seq(1:nrow(short_term)), dau=short_term$dau)
}


fit1 <- rlm(dau ~ x, data=tmp)
fit.data <- data.frame(predict(fit1, data.frame(x=xx), interval="prediction", level=.95))
newdata <- data.frame(x = (max(xx)+1):(max(xx)+7)) 
pred1 <- data.frame(predict(fit1, newdata, interval="confidence", level=.95))

d1 <- data.frame(x=xx, dau=tmp$dau)
d2 <- data.frame(x=newdata, dau=pred1$fit)
d <- sqldf("
select * from d1 
union all
select * from d2
")
plot(d)

lines(xx, fit.data$fit, col="black")
lines(xx, fit.data$lwr, col="blue")
lines(xx, fit.data$upr, col="red")

lines(newdata$x, pred1$fit, col="black", lty="dashed")
lines(newdata$x, pred1$lwr, col="blue", lty="dashed")
lines(newdata$x, pred1$upr, col="red", lty="dashed")


댓글 남기기..
이름: : 오른쪽의 새로고침을 클릭해 주세요. 새로고침
EditText : Print : Mobile : FindPage : DeletePage : LikePages : Powered by MoniWiki : Last modified 2018-04-13 23:12:52

야망을 성취하기 위해 자기 양심을 희생시키는 사람은 재를 얻기 위하여 명화를 불태우는 사람이다. <중국 속담>