728x90

[SAS]

DATA iris;INFILE '/home/joinos0/sas_class/iris.csv' DLM=',' FIRSTOBS=2;
LENGTH Species $15;
INPUT sepal_length sepal_width petal_length petal_width species $;
DATA iris1;SET iris;
IF species ^= "Iris-setosa  ";  * 붓꽃 중에서 setosa를 제외, versicolor, virginica 두 종류만 추출
PROC CANDISC DATA=iris1;      
CLASS species;                          
VAR sepal_length sepal_width petal_length petal_width;                      
RUN;

SAS는 분석결과물이 상당히 많습니다. 이중에서 R 결과와 비교할 만한 부분을 추출하였습니다.

R 결과와 동일하게 나오는 것을 볼 수 있습니다.

SAS결과물은 상당히 많은데 이중에서 R 결과와 비교할 부분만 추출

 

[R]

# R 이용한 다변량분석 
library(MASS)
iris1 <- iris   #  iris 데이터를 iris1 으로 복사
head(iris1)    # iris1 데이터 구성 살펴보기
str(iris1)

# (1) setosa 를 제외하기
levels(iris1$Species)
iris1 <- subset(iris1,Species=="versicolor" | Species=="virginica")
levels(iris1$Species)
iris1$Species <- factor(iris1$Species)
model_lda <- lda(Species~.,data=iris1)  # lda 를 이용하여 판별분석
model_lda

 

[Python]

. 보완예정

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import load_iris
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

# 붓꽃 데이터 로드
iris = load_iris()

# 데이터 정규 스케일링
iris_scaled = StandardScaler().fit_transform(iris.data)

# 2개의 클래스로 구분하기 위한 LDA 생성
lda = LinearDiscriminantAnalysis(n_components=2)

# fit()호출 시 target값 입력 
lda.fit(iris_scaled, iris.target)
iris_lda = lda.transform(iris_scaled)

+ Recent posts