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


12

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

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

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

f=a⋅e−bt
데이터 예 및 적합

값을 얻은 후에 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=ae−bt

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

f′=a′−bt

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.