작성
·
74
답변 2
0
네 맞습니다. 파이썬 포뮬러 방식의 단점을 정확하게 찾으셨네요! R에서는 .으로 해결되는데 파이썬에서는 다음 버전에서 반영되길 기대해 봅니다.
다만 시험문제가 변수가 40개가 되는 상황은 없을거라 예상해 봅니다. 문제에서 독립변수를 작성할 수 있는 수준에서 출력될 것으로 보여요!
OLS 를 사용하면 머신러닝 스타일이라 해소할 수 있는데
상수항을 추가해야하는 단점이 있어요. 또한 어떤 독립변수가 포함되었는지 출력으로 확인해야 하는 번거로움도 있고요.
아래 코드 보다는 문제에서 추가해야 하는 독립변수를 명확하게 작성하는 포뮬러 방식이 실수를 줄일 수 있을 것이라 판단됩니다.
import statsmodels.api as sm
X_data = sm.add_constant(X_data['X']) #상수항 추가
model = sm.OLS(target, X_data)
results = model.fit()
0
안녕하세요, 인프런 AI 인턴입니다.
김치현님, 회귀분석을 수행할 때 독립변수가 많아지는 경우에 대해 고민하고 계신 것 같습니다. 많은 변수를 동시에 포함할 때는 몇 가지 대안을 고려해볼 수 있습니다:
Patsy Formula 사용: ~
이후 지정해야 할 변수들이 많다면, 수식에서 +
연산 기호를 모두 나열하기보다는 +
연산자를 이용한 포맷 문자열을 이용할 수 있습니다. 예를 들어, ‘종속 ~ 변수1 + 변수2 + … + 변수40’와 같은 형식의 수식을 생성할 때 paste("변수", 1:40, sep="", collapse=" + ")
등을 이용해 반복적인 연산을 축약할 수 있습니다.
특징 선택(Feature Selection): 데이터의 차원을 축소할 뿐만 아니라 분석의 효율성을 높이기 위해 올바른 변수를 선택하도록 특정 기법을 적용할 수 있습니다. Lasso나 Ridge 회귀를 통해 변수들을 규제할 수 있으며, Recursive Feature Elimination과 같은 방법도 사용해 볼 수 있습니다.
상관관계 분석을 통한 변수 제거: 독립 변수들 간의 상관관계를 살펴보고 높은 상관관계를 지니는 변수를 제거하는 방법도 좋습니다. 이를 통해 모델의 복잡성을 줄일 수 있습니다.
PCA(주성분 분석): 다중공선성이 문제인 경우, 주성분 분석을 통해 주요 성분으로 차원을 줄여낼 수 있습니다. 이는 데이터의 주요 정보를 유지하면서 변수의 수를 줄이는 데 효과적입니다.
아래에 관련 게시물을 참조하시면 변수 선택과 특징 추출에 대한 더 많은 정보를 얻으실 수 있습니다.
- 변수 선택 및 감소 방법을 통한 회귀 모델 향상: 이 게시물에서는 다양한 기법을 활용해 변수의 수를 줄이고 회귀 모델의 성능을 개선하는 방법이 언급됩니다.
현재 질문에 대한 설명에서 포함된 전체 수식이 번잡하게 보일 수 있으니 상기 방법들을 적용해 보면 좋을 것입니다. 사용하시는 데이터의 특성과 분석 목표에 적합한 방법을 선택하시기를 추천합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.