곡선을 피팅 할 때 피팅 된 매개 변수에 대한 95 % 신뢰 구간을 어떻게 계산합니까?


12

하나의 매개 변수를 추출하기 위해 데이터에 곡선을 맞추고 있습니다. 그러나 그 매개 변수의 확실성이 무엇인지, % 신뢰 구간을 계산 / 표현하는 방법을 잘 모르겠습니다 .95

지수 적으로 부패하는 데이터를 포함하는 데이터 세트에 대해 말하면, 각 데이터 세트에 곡선을 맞 춥니 다. 그런 다음 추출하려는 정보는 지수 입니다. 나는 t 의 값과 내가 관심이없는 a 의 값을 알고 있습니다 (즉, 모델링하려고하는 프로세스가 아닌 모집단에서 나온 변수).bta

이러한 매개 변수에 맞게 비선형 회귀를 사용합니다. 그러나 모든 방법에 대해 % 신뢰 구간 을 계산하는 방법을 모르므로 더 넓은 답변도 환영합니다.95

f=aebt
데이터 예 및 적합

값을 얻은 후에 95 % 신뢰 구간을 어떻게 계산 합니까? 미리 감사드립니다!b95


데이터를 어떻게 맞습니까? OLS에 맞게 함수가 변환 되었습니까?
johnny

나는 당신이 실제로 비선형 최소 제곱을하고 있다는 답변에 대한 당신의 의견에서 본다. 해당 정보로 시작하면 더 빨리 좋은 답변을 얻었을 것입니다. 적어도 관련 태그를 추가했습니다.
Glen_b-복지 주 모니카

@Glen_b Ah 앞으로 더 완성되어 질문에 추가하겠습니다. 그러나 나는 생각했다. 일부 데이터 세트에서는 절대 L1 거리를 사용하고 다른 시간은 여전히 ​​선형 회귀를 사용합니다. 그래서 나는 넓은 대답을 얻기를 바랐습니다.
Leo

최소 제곱, L1 회귀 및 비선형 최소 제곱에 대한 답을 원한다면 그것에 대해 명시하는 것이 가장 좋습니다.
Glen_b-복지 주 모니카

답변:


10

선형화 및 선형 회귀 사용의 문제점은 변환 된 데이터에 대해 가우스 잔차 분포 가정이 사실이 아니라는 것입니다.

일반적으로 비선형 회귀를 사용하는 것이 좋습니다. 대부분의 비선형 회귀 프로그램은 가장 적합한 모수의 표준 오차와 신뢰 구간을보고합니다. 그렇지 않으면이 방정식이 도움이 될 수 있습니다.

각 표준 오류는 다음 방정식을 사용하여 계산됩니다.

SE(Pi) = sqrt[ (SS/DF) * Cov(i,i) ]

  • Pi : i 번째 조정 가능 (일관되지 않은) 매개 변수
  • SS : 잔차 제곱의 합
  • DF : 자유도 (데이터 포인트 수에서 회귀에 맞는 매개 변수 수를 뺀 값)
  • Cov (i, i) : 공분산 행렬의 i 번째 대각선 요소
  • sqrt () : 제곱근

그리고 가장 적합한 값, 표준 오류 및 자유도에서 각 매개 변수에 대한 신뢰 구간을 계산하는 방정식이 있습니다.

From [BestFit(Pi)- t(95%,DF)*SE(Pi)]  TO  [BestFit(Pi)+
 t(95%,DF)*SE(Pi)] 
  • BestFit (Pi)는 i 번째 매개 변수에 가장 적합한 값입니다.
  • t는 지정된 수의 DF에 대한 95 % 신뢰도에 대한 t 분포의 값입니다.
  • DF는 자유도입니다.

    95 % 신뢰도 (그래서 알파 = 0.05) 및 23 자유도에 대한 Excel의 예 : = TINV (0.05,23) DF는 자유도 (데이터 포인트 수에서 회귀에 맞는 매개 변수 수 빼기)와 같습니다.


이것이 바로 내가 필요한 것입니다, 감사합니다! Matlab 에서 lsqcurvefit을 사용했는데 신뢰 구간 또는 표준 오류를 출력하지 않습니다. Lagrange 승수 (?), 잔차 및 잔차의 제곱 2 노름을 제공합니다. 이제 그와 당신의 대답으로 내가 필요한 것을 계산할 수 있습니다!
Leo

3

데이터에 적합한 모델이 있다고 생각되면

f=aebt

그런 다음 적절한 모델이되도록 응답 데이터를 로그 변환 할 수 있습니다.

f=abt

f=ln(f)a=ln(a)

# Rough simulated data set.
set.seed(1)
a <- 50; b <- 0.2; n <- 25
x <- 1:n
y <- a*(exp(-b * x))
y <- y + rnorm(n, sd=0.25)
y <- ifelse(y>0, y, 0.1)
plot(x,y)

# Linearise:
y2 <- log(y)
plot(x,y2)

# Fit model to transformed data
model <- lm(y2 ~ x)
summary(model)
confint(model)

# Or:
param <- summary(model)$coefficients[, 1]; se <- summary(model)$coefficients[, 2]
param + qt(0.975, 23) * se
param - qt(0.975, 23) * se

 N(0,σ2)


아 고마워! 아주 좋고 완벽한 답변입니다! 선형화 피팅을 사용하는 경우에도 사용할 수 있습니다. 이 경우 내 질문은 선형 적합에 대한 것이 아니기 때문에 Harveys 답변을 수락한다는 것을 신경 쓰지 않기를 바랍니다. 그래도 유용한 답변입니다!
Leo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.