File size: 6,996 Bytes
1a6b219
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
import streamlit as st
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import plotly.express as px


st.write('### Nama : Kumala Cantika Ainun Maya')
st.write('### Batch : SBY-004')
st.write('### Objective : ')
st.write('##### Pada bagian ini berisikan EDA data informasi nasabah dengan kelayakan diberikan pinjaman')
st.markdown('---')

def run():
    # Load dataset
    st.write('### Data Loan Status Nasabah')
    df = pd.read_csv('train.csv')
    st.dataframe(df)


    st.markdown('---')
    st.title('Exploratory Data Analysis(EDA) Data Layak Pinjam Nasabah')

    # Plot Target
    st.write('### Pie Chart Loan Status Nasabah')
    fig,ax1 = plt.subplots(figsize=(5,5))
    df['Loan_Status'].value_counts().plot(kind='pie',labels=['yes', 'no'],
                                                        autopct='%.2f%%',ax=ax1, colors=['lime','red'])
    st.pyplot(fig)
    '''

    Pie chart tersebut merupakan perbandingan antara target yang layak dan tidak layak mendapatkan pinjaman, 

    yang mana hanya sekitar **68.73%** nasabah yang layak untuk mendapatkan pinjaman.

    '''
    st.markdown('---')

    # Plot ApplicantIncome
    st.write('### Histogram dan Box Plot Pendapatan Nasabah')
    fig = plt.figure(figsize=(15, 6))
    # Histogram
    plt.subplot(1, 2, 1)
    sns.histplot(data=df['ApplicantIncome'], palette='Set1', color='cyan')
    plt.title('Histogram Pendapatan Nasabah')
    plt.xlabel('Pendapatan')
    plt.ylabel('Total')
    # Boxplot
    plt.subplot(1, 2, 2)
    sns.boxplot(y=df['ApplicantIncome'], color='cyan')
    plt.title('Boxplot Pendapatan')
    plt.xlabel('Pendapatan')
    st.pyplot(fig)
    '''

    Berdasarkan visualisasi histogram dan boxplot menunjukkan bahwa:

    

        - Persebaran data pendapatan nasabah mayoritas ada pada rentang lebih dari 0 dan kurang dari sama dengan 10000

        - Terdapat banyak outlier yang terlihat dalam visualisasi boxplot

        - Persebaran data cenderung miring kanan/ skew, sehingga mungkin diperlukan cek skewness pada fitur ini

    '''
    st.markdown('---')

    # Plot Coapllicantincome
    st.write('### Histogram dan Box Plot Pendapatan Sampingan Nasabah')
    fig = plt.figure(figsize=(15, 6))
    # Scatterplot
    plt.subplot(1, 2, 1)
    sns.scatterplot(data=df['CoapplicantIncome'], palette='Set1', color='red')
    plt.title('Histogram Pendapatan Sampingan Nasabah')
    plt.xlabel('Pendapatan Sampingan')
    plt.ylabel('Total')
    # Boxplot
    plt.subplot(1, 2, 2)
    sns.boxplot(y=df['CoapplicantIncome'], color='red')
    plt.title('Boxplot Pendapatan Sampingan')
    plt.xlabel('Pendapatan Sampingan')
    st.pyplot(fig)
    '''

    Berdasarkan visualisasi histogram dan boxplot menunjukkan bahwa:



        - Persebaran data pendapatan nasabah mayoritas ada pada rentang 0 hingga kurang dari 10000

        - Terdapat banyak outlier yang terlihat dalam visualisasi boxplot

        - Persebaran data cenderung miring kanan/ skew, sehingga mungkin diperlukan cek skewness pada fitur ini

        - Jika dibandingkan dengan `ApplicantIncome`, pendapatan sampingan yang dimiliki oleh nasabah jauh lebih sedikit dibandingkan pendapatan utama

            '''
    st.markdown('---')


    # Plot Loan Amount
    st.write('### Histogram dan Box Plot Pinjaman Nasabah')
    fig = plt.figure(figsize=(15, 6))
    # Distogram
    plt.subplot(1, 2, 1)
    sns.distplot(df['LoanAmount'], color='grey')
    plt.title('Histogram Besar Pinjaman')
    plt.xlabel('Pinjaman')
    plt.ylabel('Total')
    # Boxplot
    plt.subplot(1, 2, 2)
    sns.boxplot(y=df['LoanAmount'], color='grey')
    plt.title('Boxplot Besar Pinjaman')
    plt.xlabel('Pinjaman')
    st.pyplot(fig)
    '''

    Berdasarkan visualisasi histogram dan boxplot menunjukkan bahwa:

    

        - Persebaran data mayoritas pinjaman yang diajukan oleh nasabah adalah mulai rentang lebih dari sama dengan 100 hingga kurang dari 200

        - Terdapat banyak outlier yang terlihat dalam visualisasi boxplot

        - Persebaran data cenderung miring kanan/ skew, sehingga mungkin diperlukan cek skewness juga pada fitur ini

    '''
    st.markdown('---')

    # EDA catgoeical
    st.write('### Pie Chart Informasi Status Nasabah')
    fig = plt.figure(figsize = (20,10))

    # Fitur Gender
    plt.subplot(1,4,1) 
    plt.pie(df['Gender'].value_counts(), labels=['Male', 'Female'], autopct='%1.0f%%',colors=['orange','grey'])
    plt.title('Perbandingan Jenis Kelamin Nasabah')
    # Fitur Married  
    plt.subplot(1,4,2) 
    plt.pie(df['Married'].value_counts(), labels=['Yes', 'No'], autopct='%1.0f%%',colors=['orange','grey'])
    plt.title('Perbandingan Status Nasabah')
    # Fitur Self Employed  
    plt.subplot(1,4,3) 
    plt.pie(df['Self_Employed'].value_counts(), labels=['No', 'Yes'], autopct='%1.0f%%',colors=['orange','grey'])
    plt.title('Perbandingan Status Pekerjaan Nasabah')
    # Fitur Credit_History
    plt.subplot(1,4,4) 
    plt.pie(df['Credit_History'].value_counts(), labels=['Yes', 'No'], autopct='%1.0f%%',colors=['orange','grey'])
    plt.title('Perbandingan Rekam Pinjaman Nasabah')
    st.pyplot(fig)
    '''

    Hasil visualisasi 4 fitur categorical `Gender`, `Married`, `Self_Employed`, dan `Credit_History` diperoleh beberapa hal berikut:



        - Sekitar 81% nasabah berjenis kelamin pria

        - Sekitar 65% nasabah sudah berkeluarga

        - Sekitar 86% nasabah tidak bekerja secara mandiri (bekerja kepada badan atau orang lain, sehingga berkemungkinan memiliki pendapatan yang tetap)

        - Sekitar 84% nasabah sudah pernah melakukan pinjaman sebelumnya 

    '''
    st.markdown('---')

    # Plot bar perbadingan status Dependents
    st.write('### Jumlah Tanggungan Nasabah')
    fig,ax1 = plt.subplots(figsize=(5,5))
    df['Dependents'].value_counts().sort_index().plot(kind='bar', rot=0, color='navy')
    plt.xlabel('Tanggungan (orang)')
    plt.ylabel('Jumlah')
    st.pyplot(fig)
    '''

    Berdasarkan visualisasi bar perbandingan jumlah tanggungan yang dimiliki nasabah diketahui bahwa:



        - Sebagian besar nasabah tidak memiliki tanggungan pembiayaan

    '''
    st.markdown('---')

    # Plot Loan Amount Term
    st.write('### Scatter Persebaran Rentang Waktu Peminjaman')
    fig = plt.figure(figsize=(10, 4))
    sns.scatterplot(data=df['Loan_Amount_Term'], palette='Set1', color='pink')
    plt.xlabel('Waktu(hari)')
    plt.ylabel('Jumlah')
    st.pyplot(fig)
    '''

    Berdasarkan visualisasi histagram diatas menunjukkan bahwa:



        - Rentang waktu peminjaman paling sering adalah dalam rentang 300 hingga 400 atau lebih tepatnya pada **360 hari** 

        - Dalam rentang waktu tersebut dapat juga berarti nasabah sebagian besar memiliki rentang waktu peminjaman selama 1 tahun lamanya.

    '''
    st.markdown('---')


if __name__ == '__main__':
    run()