방명록

  1. 이상규 2017.08.14 13:21 신고  수정/삭제  댓글쓰기

    가중치가 있는 데이터의 표준편차와 분위수를 구하는 방법이 궁금합니다..

    • R Friend R_Friend 2017.08.14 15:32 신고  수정/삭제

      제가 질문을 잘 이해한건지 모르겠는데요,
      가중치를 모두 적용한 후의 결과 데이터를 가지고 요약통계량 계산하면 될거 같습니다.

    • 이상규 2017.08.14 15:41 신고  수정/삭제

      데이터가

      A B
      1 2
      3 4

      의 형태라면 B에 가중치 A를 부여 하여 구하려고 합니다.

      가중평균은 2 * 1/4 + 4 * 3/4 으로 3.5가 되는데 이러한 방법으로 가중 분산을 구할 수 없나요?

    • 이상규 2017.08.14 15:41 신고  수정/삭제

      R에 관한 질문이 아닌 그냥 통계적인 궁금증입니다. 죄송합니다

    • R Friend R_Friend 2017.08.14 16:08 신고  수정/삭제

      가중평균은
      rfriend.tistory.com/121 끝부분에 참고하시면 되겠구요 (*각 수치에 가중치를 곱한 값을 가중치 합으로 나눔),

      가중표준편차(weighted standard deviation)은 아래의 pdf 자료 참고해보시지요.

      www.itl.nist.gov/div898/software/dataplot/refman2/ch2/weightsd.pdf

    • 이상규 2017.08.14 16:34 신고  수정/삭제

      감사합니다..!! 궁금증이 해결 되었습니다!

  2. 이상규 2017.08.10 10:49 신고  수정/삭제  댓글쓰기

    안녕하세요 알프렌드님 또... 방문했습니다.

    이번에는 데이터프레임의 변수명들을 melt함수의 measure.vars 에 집어 넣으려고 합니다.

    a 데이터 프레임이라면

    ac <- as.character(colnames(a)) 이런식으로 만들고 난 뒤 paste 함수로 변수명마다 ","를 집어넣으려 했는데 안되더라구요.

    어디가 문제인지 알려주세요.

  3. 이상규 2017.08.09 11:28 신고  수정/삭제  댓글쓰기

    스펙트럼 분석 팁 감사합니다. 원하는 결과가 나온것 같아요!!
    또 질문드리러 왔습니다..

    13개의 변수의 상관 분석을 진행했습니다. 결과에서 상위 10개의 수치와 품목들을 인덱싱 방법이 있을까요?

    • 이상규 2017.08.09 12:32 신고  수정/삭제

      reshape 의 melt로 .. 처리하면 되겠네요!! 혹시 다른 방법이 있다면 또 알려주세용!

    • R Friend R_Friend 2017.08.09 13:14 신고  수정/삭제

      loop 로 프로그래밍할 수도 있을텐데요, melt 함수로 되니 melt로 하시는게 좋겠습니다

  4. 이상규 2017.08.08 13:21 신고  수정/삭제  댓글쓰기

    안녕하세요. 모르는게 있어서 질문드립니다.

    그래프 스펙트럼의 유사도 비교하려고 하는데 R에서도 가능한지 궁긍합니다.

    스펙트럼을 x,y축으로 수치화 했습니다.

    혹시 유사도를 비교할 수 있는 패키지나 방법이 있으면 알려주세요 ㅜㅠㅜ!

    • R Friend R_Friend 2017.08.08 14:44 신고  수정/삭제

      안녕하새요 이상규님.

      스펙트럼 분석이라면 (x축에) frequency 별, (y축에) amplitude를 측정하셨다는 건지요?

      스펙트럼 간 frequency별 amplitude 유사도 비교할 때 ,

      (1) frequency를 적당한(?) bin으로 그룹핑해서 amplitude의 평균이나 최대값을 목적에 맞게 대표값으로 취한 후에

      (2) 전반적 패턴 유사도를 보려면 상관계수 분석

      (3) 상위 몇개가 중요하면 가령 top 10 주파수대역대를 구해서 자카드 거리 (http://rfriend.tistory.com/318) 로 (비)유사도 비교 분석

      (4) 혹은 주파수가 한두칸씩 밀릴 수도 있는 상황에서 스펙트럼 유사도 비교해야하면 DTW(Dynamic Time Warping) 도 시도해 볼만 할 거 같습니다.(담, 연산부하 매우 큼)

  5. Lalipuna 2017.08.04 13:49 신고  수정/삭제  댓글쓰기

    와.. 이곳 신세계네요..
    eigenvector로 검색해서 들어 왔는데요. 덕분에 선형대수의 기본에 대한 개념부터해서 조금씩 익히고 있습니다. 학부시절 공수시간에 벡터 Rank를 시작으로 손 놓았던 것이 지금와서 이렇게 후회감이 들 줄은 몰랐답니다 ㅎㅎ. 기본적인 개념을 이해하기 쉬운 설명, 예시, 그림 등으로 저에겐 정말 큰 도움이 되었습니다. 앞으로도 공부하러 종종 오도록 하겠습니다. 감사합니다.

    • R Friend R_Friend 2017.08.04 14:15 신고  수정/삭제

      안녕하세요 Lalipuna님,
      반갑습니다.

      블로그 좋게 봐주셔서 감사합니다.

      글 보시다가 혹시 잘못된 부분 있으면 댓글 남겨주시구요.

  6. 이지현 2017.08.03 21:52 신고  수정/삭제  댓글쓰기

    안녕하세요. 블로그 보면서 R을 다루다가 잘 안되는 부분이 있는데 관련 정보를 구할 수 없어 실례지만 방명록을 통해 여쭙게 되었습니다. simple random sample 과정 중 비복원 추출을 하기 위해서 sample(seoul, 42, replace=FALSE) *여기서 seoul은 제가 만든 vector 이름입니다. 이렇게 입력을 하고 출력을 하면 42개의 표본이 출력되지 않습니다. R 자체에서는 42개로 인식하는 듯 한데, 중간중간 빈 부분이 생기면서 출력값이 보이지 않습니다. 무엇이 문제인지 혹시 아시면 도움 주시면 감사하겠습니다.

    • R Friend R_Friend 2017.08.03 22:30 신고  수정/삭제

      안녕하세요, 이지현 님.

      문의하신 'seoul'이라는 vector 가 어떻게 생겼는지 알려주지 않으셔서 정확히는 모르겠지만 추측을 해보자면요, replace = FALSE (비복원추출) 인 조건에서 벡터의 원소 개소가 샘플링하려는 size인 '42' 보다 작기 때문에 에러가 난 것 같습니다.

      원소 개수보다 샘플링하려는 size가 큰 경우에는 replace = TRUE (복원추출)로 설정을 바꿔주거나, 혹은 모집단의 개수를 더 수집/확보해서 샘필링 size보다 벡터의 원소 개수를 크게 해주면 비복원추출로 해도 에러 없이 샘필링 될 거 같습니다.

      아래에 간단한 예시 구현해보았습니다. 원소 개수는 10개 인데요, 두번째 샘플링하는 코드에서는 비복원추출(replace = FALSE)인 경우 샘플링 size가 20으로서 벡터의 원소 개수보다 크다 보니 에러가 났습니다.

      > # random sampling in case of Vector
      > my_vec <- c(1:10)
      > my_vec
      [1] 1 2 3 4 5 6 7 8 9 10
      >
      > set.seed(123)
      > sample(my_vec, 3, replace = FALSE) # working
      [1] 3 8 4
      > sample(my_vec, 20, replace = FALSE) # error
      Error in sample.int(length(x), size, replace, prob) :
      cannot take a sample larger than the population when 'replace = FALSE'
      > sample(my_vec, 20, replace = TRUE) # working
      [1] 9 10 1 6 9 6 5 10 5 7 6 2 9 3 1 4 10 9 7 7

      #---------------
      샘플링 관련해서 포스팅 해놓은게 있는데요, 혹시 필요하시면 아래 포스팅 참고하시기 바랍니다.
      http://rfriend.tistory.com/58

  7. tansan 2017.07.04 23:56 신고  수정/삭제  댓글쓰기

    안녕하세요. R을 사용하면서 궁금한 점이 있었는데 인터넷에서 답을 찾지 질문드립니다.
    ggplot에서 stat_smooth() 함수로 회귀선을 그래프에 추가하면 기본 설정으로 신뢰구간이 회색으로 같이 표시가 되는데요.
    여기에서 이 신뢰구간의 값은 기울기값에 대한 신뢰구간인가요? 선형회귀선을 그리면 가운데는 얇고 양쪽 끝이 두툼한 신뢰구간으로 표시가 되는데 기울기값의 범위때문에 이렇게 나오는 것이 맞는지 문의드립니다.

    • R Friend R_Friend 2017.07.05 22:10 신고  수정/삭제

      안녕하세요 tansan님.

      회귀분석에서 100(1-alpha)% 신뢰구간은 독립변수의 새로운 관측치 수준에서 종속변수값을 여러번 측정할 때 평균적으로 취하는 기대값인 평균 반응치 에다가 t통계량(alpha/2, n-k-1)*표준오차를 더하고 빼주면 됩니다. (n : 관측치 수, k : 변수 개수).

      이때 표준오차는 평균 반응치의 분산을 "관측치 개수(n)"로 나누어준 값에 루트를 취한 값입니다.

      따라서, 관측치 개수가 많으면 많을 수록 표준오차는 작아지게 되고, 신뢰구간 또한 작아지게 됩니다.

      ggplot으로 산점도 그리고 회귀선 적합시킨 결과와 신뢰구간을 같이 표시를 했을 때 가운데 부분의 신뢰구간의 폭은 좁고, 양쪽 끝 부분의 신뢰구간의 폭은 넓게 나온 이유는 아마도 양쪽 끝 부분의 관측치 개수가 현저히 적기 때문에 표준오차가 커져서 그럴겁니다.

    • tansan 2017.07.09 22:17 신고  수정/삭제

      그렇군요. 알려주신대로 실제로 predict로 구해보니까 그래프와 값이 비슷하게 나오는 걸 볼 수 있었습니다. 답변 감사드립니다.

  8. 박상혁 2017.06.28 23:12 신고  수정/삭제  댓글쓰기

    안녕하세요

    초면에 이렇게 부탁을 드려서 죄송합니다.
    티스토리로 맛집,스포츠 관련 블로그를 주제로 잡아서 블로깅하려고 합니다.

    티스토리는 초대장이 있어야 시작이 가능하다고하는데


    초대장이 없어서 아직 시작도 못하고 있습니다
    남는 초대장이 있으면 좀 도움 좀 부탁드립니다.

  9. 로날벡스 2017.06.26 17:20 신고  수정/삭제  댓글쓰기

    안녕하세요, R공부하고 있는 초심자입니다.

    R프렌드님 블로그 보면서 엄청 도움받고 있는데요,
    이번에 제가 국비지원과정 한달짜리 빅데이터분석(R기초) 강좌를 수강해볼까 하는데,

    실무적으로 도움되는 테크닉을 많이 배울수 있을까요? 저는 현재 9월 ADsP 취득을 목표로 공부하고 있습니다
    ( http://hanbitedu.co.kr/index.php?main_page=regular&action=bigdata&mode=view&id=272&query=sc )

    감사합니다. 항상 건강하세요 !
    블로그 항상 열독하겠습니다 ㅎㅎ

    • R Friend R_Friend 2017.06.26 21:37 신고  수정/삭제

      안녕하세요.

      빅데이터 분석 쪽 공부하신다니 반갑습니다.

      문의하신 교육 과정은 제가 모르는 과정이네요. 제 주변에도 그 과정을 들어본 사람이 없어서요, 제가 무어라 말씀을 못드리겠습니다.

      아무래도 인터넷이나 다른분 통해서 이미 수강하셨던 분들의 강의평을 알아보시는게 좋겠습니다.

  10. 기홍명 2017.06.21 16:22 신고  수정/삭제  댓글쓰기

    블로그 보면서 열심히 공부하고 있습니다. 직접 코딩하는데 막히는 부분이 생겨서 질문드려요.

    A,B 학생의 영어,수학점수 관련 데이터를 다루고 있습니다.

    데이터의 형태는

    구분 과목 학생 성적
    1 수학 A 83
    2 영어 A 72
    3 영어 B 93
    4 영어 A 82
    5 수학 B 65
    6 수학 B 75
    7 영어 B 88
    . . . . . . . .
    600 수학 A 97


    이런식으로 이뤄져있습니다. A,B 학생의 수학,영어의 시험본 횟수는 동일합니다.

    제가 알고 싶은 것은 각 학생이 시험을 보기전 5개의 시험의 평균점수가 이번 시험에 영향을 주는 지 알아보려 합니다.

    예를 들어 A 학생이 120번째 시험점수를 예측하기 위해서 A학생의 119, 118, 117, 116, 115번째 시험점수의 평균을 계산하는 것이지요. 또, A 학생의 40번째 수학시험의 점수를 예측하기위해 A학생의 39, 38, 37번째 수학점수 평균을 찾고자 합니다.

    첫번째 시험은 그 점수로 하고, 4개번째 시험은 앞의 1,2,3개의 시험 평균이면 됩니다.

    최종적으로 제가 얻고자하는 형태는



    구분 과목 학생 성적, Want1, Want2
    1 수학 A 83
    . . . . . . . . . . . . . . . . .
    30 수학 A 92 (A학생의 최근 5개의 시험의 평균), (A학생의 수학의 최근 3개의 시험의 평균)



    뭔가 설명도 난해하고 부족하지만 도움을 주실 수 있으시다면 ㅜㅜ 얌전히 기다리겠습니다.

    • R Friend R_Friend 2017.06.21 17:53 신고  수정/삭제

      안녕하세요, 기홍명님.
      R 공부하신다니 반갑습니다.

      원하시는 분석 내용이 보니 시계열분석에서 단순이동평균 구하는 거네요.

      최근거에 더 가중치를 주고 싶으면 지수평활법을 쓰면 되구요.

      TSA 라는 R의 시계열분석 패키지 사용해서 분석해보시지요. 사용법은 TSA 매뉴얼 참고하시구요.

      --------------------
      혹시 시계열분석이 좀 어려우시면요,

      melt(), cast()함수로 데이터를 재구조화하신 후에요,
      http://rfriend.tistory.com/80

      => lag() 함수를 써서 1차lag, 2차 lag, 3차 lag, 4차 lag, 5차 lag 해서 각 새로운 변수를 만든 후에
      => 1차lag~3차lag 단순평균,
      => 1차lag~5차lag 단순평균
      해도 되겠네요.

      lag 함수는 아래의 포스팅 참고하세요.
      http://rfriend.tistory.com/242



티스토리 툴바