회귀 계수 값 추출
약물 사용을 조사하는 일부 시계열 데이터에 대한 회귀 모델이 있습니다. 목적은 스플라인을 시계열에 맞추고 95 % CI 등을 계산하는 것입니다. 모델은 다음과 같습니다.
id <- ts(1:length(drug$Date))
a1 <- ts(drug$Rate)
a2 <- lag(a1-1)
tg <- ts.union(a1,id,a2)
mg <-lm (a1~a2+bs(id,df=df1),data=tg)
의 요약 출력 mg
은 다음과 같습니다.
Call:
lm(formula = a1 ~ a2 + bs(id, df = df1), data = tg)
Residuals:
Min 1Q Median 3Q Max
-0.31617 -0.11711 -0.02897 0.12330 0.40442
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.77443 0.09011 8.594 1.10e-11 ***
a2 0.13270 0.13593 0.976 0.33329
bs(id, df = df1)1 -0.16349 0.23431 -0.698 0.48832
bs(id, df = df1)2 0.63013 0.19362 3.254 0.00196 **
bs(id, df = df1)3 0.33859 0.14399 2.351 0.02238 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
조사중인 데이터가 자기 상관인지 테스트하기 위해 의 Pr(>|t|)
값을 사용하고 a2
있습니다.
이 값 Pr(>|t|)
(이 모델 0.33329에서) 을 추출 하여 스칼라에 저장하여 논리 테스트를 수행 할 수 있습니까?
또는 다른 방법을 사용하여 해결할 수 있습니까?
summary.lm
객체는 이러한 값을 저장 matrix
라는를 'coefficients'
. 따라서 당신이 추구하는 가치는
a2Pval <- summary(mg)$coefficients[2, 4]
또는보다 일반적으로 / 읽기 쉽게 coef(summary(mg))["a2","Pr(>|t|)"]
. 이 방법이 선호되는 이유는 여기 를 참조 하십시오 .
broom
여기에서 패키지 가 편리합니다 ( "정리"형식 사용).
tidy(mg)
계수, t 통계 등으로 멋지게 형식화 된 data.frame을 제공합니다. 다른 모델에서도 작동합니다 (예 : plm, ...).
broom
의 github 저장소의 예 :
lmfit <- lm(mpg ~ wt, mtcars)
require(broom)
tidy(lmfit)
term estimate std.error statistic p.value
1 (Intercept) 37.285 1.8776 19.858 8.242e-19
2 wt -5.344 0.5591 -9.559 1.294e-10
is.data.frame(tidy(lmfit))
[1] TRUE
회귀 모델을 다음 함수에 전달하십시오.
plot_coeffs <- function(mlr_model) {
coeffs <- coefficients(mlr_model)
mp <- barplot(coeffs, col="#3F97D0", xaxt='n', main="Regression Coefficients")
lablist <- names(coeffs)
text(mp, par("usr")[3], labels = lablist, srt = 45, adj = c(1.1,1.1), xpd = TRUE, cex=0.6)
}
다음과 같이 사용하십시오.
model <- lm(Petal.Width ~ ., data = iris)
plot_coeffs(model)
질문에 답하려면 모델을 변수로 저장하고 환경 창에서 클릭하여 모델의 출력 내용을 탐색 할 수 있습니다. 그런 다음 주변을 클릭하여 포함 된 내용과 저장 위치를 확인할 수 있습니다.
또 다른 방법은 yourmodelname$
모델의 구성 요소를 하나씩 입력 하고 선택하여 각 구성 요소에 포함 된 내용을 확인하는 것입니다. 에 도달 yourmodelname$coefficients
하면 원하는 베타, p 및 t- 값을 모두 볼 수 있습니다.
참고 URL : https://stackoverflow.com/questions/6577058/extract-regression-coefficient-values
'Program Tip' 카테고리의 다른 글
JavaScript로 CSS를 추가 하시겠습니까? (0) | 2020.12.01 |
---|---|
내 빌드 서버의 배포 패키지에 추가 어셈블리가있는 이유는 무엇입니까? (0) | 2020.12.01 |
HTML5 동적으로 캔버스 만들기 (0) | 2020.12.01 |
System.nanoTime ()이 System.currentTimeMillis ()보다 성능이 훨씬 느린 이유는 무엇입니까? (0) | 2020.12.01 |
명령 결과를 bash에서 인수로 사용합니까? (0) | 2020.12.01 |