피팅 라인에 대한 프레젠테이션을하고 있습니다. 간단한 선형 함수 있습니다. 내 선이 동일한 방정식에 가장 잘 맞는 분산 형 그림에 넣을 수있는 분산 된 데이터 포인트를 얻으려고합니다.
이 기술을 R 또는 Excel 중 더 쉬운 방법으로 배우고 싶습니다.
피팅 라인에 대한 프레젠테이션을하고 있습니다. 간단한 선형 함수 있습니다. 내 선이 동일한 방정식에 가장 잘 맞는 분산 형 그림에 넣을 수있는 분산 된 데이터 포인트를 얻으려고합니다.
이 기술을 R 또는 Excel 중 더 쉬운 방법으로 배우고 싶습니다.
답변:
둘 중 적어도 두 개가 다른 경우 선택하십시오 . 절편 및 기울기 하고 정의
이 적합합니다. 착용감을 변경하지 않고, 수정할 수 으로 에러 벡터를 가산함으로써 그것이 두 벡터에 직교 제공에 및 상수 벡터 . 이러한 오류를 얻는 쉬운 방법은 선택하는 어떤 벡터 및하자 미치지시 잔류 될 에 대하여 . 아래 코드에서 는 평균 과 공통 표준 편차를 갖는 독립적 인 랜덤 정규 값 세트로 생성됩니다 .
또한 R 2 가 무엇인지 규정 하여 분산 량을 미리 선택할 수도 있습니다. 시키는 τ 2 = VAR ( Y I ) = β (2) (1) VAR ( X 나 ) , 그 잔차를 재조정하는 단계의 분산을 가지고
이 방법은 완전히 일반적입니다. 가능한 모든 예제 (주어진 세트에 대해 )를 이런 방식으로 만들 수 있습니다.
우리는 동일한 기술 통계량 (2 차를 통해)을 갖는 4 개의 정 성적으로 구별되는 2 변량 데이터 세트로 구성된 Anscombe의 4 중주 를 쉽게 재현 할 수 있습니다 .
코드는 매우 간단하고 유연합니다.
set.seed(17)
rho <- 0.816 # Common correlation coefficient
x.0 <- 4:14
peak <- 10
n <- length(x.0)
# -- Describe a collection of datasets.
x <- list(x.0, x.0, x.0, c(rep(8, n-1), 19)) # x-values
e <- list(rnorm(n), -(x.0-peak)^2, 1:n==peak, rnorm(n)) # residual patterns
f <- function(x) 3 + x/2 # Common regression line
par(mfrow=c(2,2))
xlim <- range(as.vector(x))
ylim <- f(xlim + c(-2,2))
s <- sapply(1:4, function(i) {
# -- Create data.
y <- f(x[[i]]) # Model values
sigma <- sqrt(var(y) * (1 / rho^2 - 1)) # Conditional S.D.
y <- y + sigma * scale(residuals(lm(e[[i]] ~ x[[i]]))) # Observed values
# -- Plot them and their OLS fit.
plot(x[[i]], y, xlim=xlim, ylim=ylim, pch=16, col="Orange", xlab="x")
abline(lm(y ~ x[[i]]), col="Blue")
# -- Return some regression statistics.
c(mean(x[[i]]), var(x[[i]]), mean(y), var(y), cor(x[[i]], y), coef(lm(y ~ x[[i]])))
})
# -- Tabulate the regression statistics from all the datasets.
rownames(s) <- c("Mean x", "Var x", "Mean y", "Var y", "Cor(x,y)", "Intercept", "Slope")
t(s)
출력은 각 데이터 세트 의 데이터에 대한 2 차 설명 통계를 제공합니다 . 네 줄 모두 동일합니다. 처음에 x
(x 좌표)와 e
(오류 패턴)을 변경하여 더 많은 예제를 쉽게 만들 수 있습니다 .
R
simulate <- function(x, beta, r.2) {
sigma <- sqrt(var(x) * beta[2]^2 * (1/r.2 - 1))
e <- residuals(lm(rnorm(length(x)) ~ x))
return (y.0 <- beta[1] + beta[2]*x + sigma * scale(e))
}
(이를 Excel로 이식하는 것은 어렵지 않지만 약간 고통 스럽습니다.)
.
n <- 60
beta <- c(1,-1/2)
r.2 <- 0.5 # Between 0 and 1
set.seed(17)
x <- rnorm(n)
par(mfrow=c(1,4))
invisible(replicate(4, {
y <- simulate(x, beta, r.2)
fit <- lm(y ~ x)
plot(x, y)
abline(fit, lwd=2, col="Red")
}))
실행 summary(fit)
하면 추정 계수가 정확히 지정된 것과 배수가 여러 개인 지 확인할 수 있습니다의도 된 값입니다. 회귀 p- 값과 같은 다른 통계는 값을 수정하여 조정할 수 있습니다..