Tag: r

  • Calibration

    Calibration

    지금 마지막 마무리 작업 중인 논문에 넣을지 말지 고민하고 있는 Figure 의 내용. 어떤 식으로 그래프를 그려야 좁은 범위에서 직관적이면서도 예쁘고, 그럴듯해 보일까 고민을 하다 Boxplot 을 선택했다. 원래 프로그램에서는 Local southern sizing algorithm 에 의한 것으로 추정은 되지만 확신할 수 없는 어떤 방식에 의하여 상단의 값을 구해주는데, 이 값들은 알 수 없는 이유로 인하여 점점 감소하는 경향을 보이고 있다.
    좁은(?) 범위에서 보이는 선형의 경향이라서 그냥 선형회귀분석을 사용하여 보정을 하기는 했는데, 뭘 해도 마음에 쏙들어 오지는 않는다.

    보정을 제대로 하기 위해선 바로 이 녀석을 회귀분석 해야한다. 대학교 때 선형회귀분석의 기초만 배웠는데 이런건 도대체 어떻게 해야하는지.. OTL

  • Odds ratio

     Odds ratio를 R을 사용하여 구하기 위해서 정말 노력해 보았다. 고민하다가 Appleforum 게시판에서 R을 사용한다는 분을 찾아서 문의 메일을 보냈고 그 답장이 왔다. 그대로 해보니 그 동안 구글링한 내가 바보 같이 느껴질 정도로 쉽게 구해졌다.  OTL

      우선 Package 중에서 epitools를 설치한다. 그 후에

    library(epitools)
    oddsratio(htn.rawdata[,9], htn.rawdata[,1], conf.level=0.95) 이렇게 구하면 된다. 하지만.. 일반적으로 책에서는 좌측 상단에 우리의 목표값(??)이 위치하게 되는데 도움말을 참고해보면 우리의 함수님께서는 우측 하단에 목표값(??)이 위치해야 하므로 columns을 바꾸어 주어야 한다.

    > library(epitools)
    > oddsratio(htn.rawdata[,9], htn.rawdata[,1], conf.level=0.95, rev=”columns”)
    $data
             Outcome
    Predictor   2   1 Total
        0     601 819  1420
        1      55 114   169
        Total 656 933  1589


    $measure
             odds ratio with 95% C.I.
    Predictor estimate    lower    upper
            0 1.000000       NA       NA
            1 1.518482 1.087011 2.144556


    $p.value
             two-sided
    Predictor midp.exact fisher.exact chi.square
            0         NA           NA         NA
            1 0.01401735   0.01637873 0.01464472


    $correction
    [1] FALSE


    attr(,”method”)
    [1] “median-unbiased estimate & mid-p exact CI”

  • 평균치 비교

    이번 숙제에 R을 사용해 보기 위해서 계속 공부중이다. Odds ratio 를 구하는 함수는 없는 것 같지만 계속 찾아볼 예정이고 평균치 비교는 비교적 쉽게 찾을 수 있었다. 이건 비통계전공자의 전투족에 해당하는 내용이다. 🙂

    기본적으로 함수는 t.test 이다. 간단하다. 그래서 어렵다. 아파트나 자동차와 마찬가지로 옵션을 넣어주어야 한다.
    사용하는 기본 옵션은 다음과 같다.
    var.equal = T(RUE) or F(ALSE); 두 집단이 등분산이면 TRUE를 아니면 FALSE를 선택한다.

    등분산 여부는 사전에 var.test를 사용해서 확인한다.
    paired = T(RUE) or F(ALSE); 두 집단이 짝을 이루면 TRUE, 아니면 FALSE 이다.
    conf.level = 0.95 ; 입력을 안하면 기본적으로 0.95이다.

    예시)
    t.test(subset(gumjin.raw, sex==”1″)[,3], subset(gumjin.raw, sex==”2″)[,3],
            paired=FALSE, var.equal=TRUE, conf.level=0.95)

    설명)
      기본적으로 사용한 Data는 gumjin.raw 라는 항목으로 저장되어 있다.
      subset(gumjin.raw, sex==”1″)[,3]  : gumjin.raw 항목에서 sex 항목에 “1”이라고 선택되어진 자료들에서 3번째 열에 해당하는 자료를 불러오는 것을 말한다.

    결과)
            Two Sample t-test

    data:  subset(gumjin.raw, sex == “1”)[, 3] and subset(gumjin.raw, sex == “2”)[, 3]
    t = -1.2357, df = 188, p-value = 0.2181
    alternative hypothesis: true difference in means is not equal to 0
    95 percent confidence interval:
     -15.897745   3.651791
    sample estimates:
    mean of x mean of y
     180.5364  186.6593

    이렇게 결과가 나온다. 🙂

  • Excel 불러오기

    http://remantu.com/r/tutorial/load-data

    엑셀 파일인 XLS 파일을 R에서 불러오는 방법을 역시나 인터넷에서 찾았다. CSV 등으로 변환해서 불러와도 되지만 그 방법보다 좋은 점은 특정 Sheet를 지정해수 불러올 수 있다는 점이다.

    library(RODBC)
    xls = odbcConnectExcel(“파일명.xls”)
    Data 명 = sqlFetch(xls, “엑셀 Sheet 명”)

    이게 홈페이지에 있던 방법이고, 이를 응용해서 한 줄을 줄일 수도 있다.

    Data 명 = sqlFetch(odbcConnectExcel(“파일명.xls”), “엑셀 Sheet 명”)

    이 방법의 단점은 Windows 에서 실행한 R에서만 사용할 수 있다는 것이다. Mac 에서 실행한 R에서는 사용할 수가 없다. 기존의 방법대로 CVS 파일 등으로 변환을 해야 한다. ㅡㅡ;;