Program Tip

회귀 계수 값 추출

programtip 2020. 12. 1. 19:37
반응형

회귀 계수 값 추출


약물 사용을 조사하는 일부 시계열 데이터에 대한 회귀 모델이 있습니다. 목적은 스플라인을 시계열에 맞추고 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

반응형