• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

optim 함수 질문있습니다!

21.02.03 02:20 작성 조회수 437

0

RSS <- function(intercept,slope){

  y_i_hat <- c(2,4,6,8)*slope+intercept

  y_i <- c(1,6,4,8)

  RSS <- sum((y_i-y_i_hat)^2)

  return(RSS)

}

RSS(2,0.5)여기까진 잘 따라했어요....

값도 잘 나왔습니다! 13!!!!

result <- optim(par = c(1, 1), fn = RSS) 여기부터 환장하겠습니다 ㅠㅠ

Error in fn(par, ...) : 기본값이 없는 인수 "slope"가 누락되어 있습니다

라고 뜹니다...

제가 뭘 빼먹은것일까요?ㅜㅜ

c(2,0.5)로 숫자 변형 시켜도 똑같이 뜹니다.. 

그리고 intercept가 y절편, slope를 기울기로 이해하면 될까요? 

답변 7

·

답변을 작성해보세요.

1

knur1306님의 프로필

knur1306

질문자

2021.02.08

슬랙 깔았어요 ㅋㅋ 일하는거 너무 힘들어서 잠깐 쉬다가 들어왔어요 ㅠㅠ 매번 답변 친절하게 달아주셔서 감사드려요~ 슬랙도 한번 눈팅 해보고 슬랙에 질문글 올려볼게요 ㅎㅎ 

0

ㅎㅎknur1306님 언제든 슬랙에서 메세지 주시지요! :) 인프런은 너무 오랜만에 들어왔네요!ㅎㅎㅎ

0

수렴값은 조금씩 다른것이 정상입니다! 귀회귀직선처럼 함수가 간단하고 우리가 아는 좋은 시작값이 있으면 그것을 쓰면 됩니다만, 실제로는 함수가 어떻게 생겼는지 모르는 경우가 많아요, 그런 경우에는 그냥 랜덤한 값을 뽑아서 집어넣습니다! 예를 들어 rnorm() 함수 같은 것을 씁니다! 요즘 계속 R공부하시는 것 같은데 저희 슬랙으로 오셔서 R 코드 챌린지도 함께 하시죠! :)

0

knur1306님의 프로필

knur1306

질문자

2021.02.04

아아..다시 해봤어요 ㅠㅠ 감사합니다. 

회귀직선 너무 어렵네요 ㅠㅠ...

c로 묶어서 쓰면 벡터가 하나가 된다는 말씀이시죠?ㅠㅠ

그리고 c(1,1) 이 부분이요... 초기값 입력이라고 하셨는데 아무숫자나 입력해도 되는건가요? 아니면 제가 원하는 intercept와 slope값을 입력하건가요?

썼을 때 둘의 차이는 어떻게 나는건가요 ㅠㅠ 

영상은 원하는 값, 홈페이지에선 초기값으로 쓰셨길래...  

지금 숫자 다르게해서 써보니 값이 조금 다르게 뜨는데

나중에 활용할 때 어떤걸 기준으로 해서 정해야할 지 모르겠어요...

0

p.s. 환장하시면 아니됩니다.ㅋㅋㅋ 

0

아하 그리고, 정의하신 RSS는 입력값이 두개인 반면에 optim에 넣으신 입력값은 두개 같아 보이는 1개네요!

c(1, 1)은 입력값이 벡터 하나입니다! 

RSS <- function(x){

  y_i_hat <- c(2,4,6,8)*x[1]+x[2]

  y_i <- c(1,6,4,8)

  result <- sum((y_i-y_i_hat)^2)

  return(result)

}

이런식으로 RSS도 입력값을 하나로 받게 정의해주셔야 합니다!

0

RSS <- function(intercept,slope){

  y_i_hat <- c(2,4,6,8)*slope+intercept

  y_i <- c(1,6,4,8)

  result <- sum((y_i-y_i_hat)^2)

  return(result)

}

중간에 RSS가 함수였다가 변수였다가 해서 그런것 같습니다. result로 변경후 한번 다시 시도 해보세요! :)