여정의 기록

R, Python을 이용한 산점도, 상관계수, 회귀분석 본문

공부중 .../파이썬과 R

R, Python을 이용한 산점도, 상관계수, 회귀분석

Chelsey 2022. 12. 9. 16:08
728x90

R

# 산점도 그리기
plot(data$y, data$x, pch=19)

# 산점도 그래프 행렬
pairs(data[,-1], pch=19)

# 상관계수 행렬
cor(data[,-1])

Python

import pandas as pd
import matplotlib.pyplot as plt

# 산점도 그리기
plt.scatter(data.y, data.x)
plt.title("dㅓ쩌고")
plt.xlabel('x')
plt.ylabel('y')
plt.show()

# 산점도 그래프 행렬 그리기
import seaborn as sns

sns.set(style="ticks")
sns.pairplot(data)


# 상관관계 행렬 보기
import numpy as np
np.corrcoef(data.y, data.x)

 

회귀분석

모형 가정 -> 모형 적합 -> 모형 진단 -> 모형 가정 ...

# . 으로 표시하면 all 이란 뜻이다.
fit = lm(x ~ . , data=data) # 선형회귀 모형 적합하는 함수

names(fit) # 어떤 것을 확인할 수 있는지 볼 수 있다.

fit$resid # 잔차 확인
fit$coef # 회귀에 대한 계수
summary(fit) # 기술통계... 회귀식 확인 가능(Estimate), R-squared(잔차값), F-value ...

적합된 회귀모형에 대한 분산분석표

요인 자유도 제곱합 평균제곱 F
회귀  p SSR MSR=(SSR/p) MSR/MSE
잔차 n-p-1 SSE MSE  
SUM n-1 SST=(SSR+SSE)    

 

# R

anova(fit) # 분산분석표

"""
Df 자유도
Sum_Sq 추가제곱합
Sum_Sq 모든 변수 다 더한것 -> SSR
Residuals = SSE 잔차
SST = SSR + SSE
"""
# Python

import statsmodels.api as sm

X = sm.add_constant(X) # const라는 상수항을 추가해준다.
model = sm.OLS(Y,X)
"""
X에는 상수항이 들어있어야 한다.
Y = B0 + B1*X1 + B2*X2 + e
"""

result = model.fit()
print(result.summary()) # 회귀모형에 대한 결과

 

Scikit-learn에서도 회귀모형에 대해 제공한다.

from sklearn.linear_model import LinearRegression

result = LinearRegression().fit(X2, Y)
# 독립변수에 대한 intercept 볼 수 있다 ...

 

728x90

'공부중 ... > 파이썬과 R' 카테고리의 다른 글

Pandas, dplyr 간단하게 몇가지 함수 ...  (0) 2022.12.11
분산분석이란 ...  (0) 2022.12.11
t-검정에 대하여  (0) 2022.12.09
R, python을 이용한 기술통계  (0) 2022.12.09
자료의 입력과 출력  (0) 2022.12.07