Download thu thập dữ liệu toaan and more Schemes and Mind Maps Labour Law in PDF only on Docsity!
1. Thu thập dữ liệu
- Dữ liệu từ file Excel
- Link liên kết: Thực hành phân tích dữ liệu
- Nguồn : Từ dữ liệu bán hàng hằng ngày của canteen.
- Dữ liệu đang gặp lỗi :
Sai định dạng cột ‘Ngày’
Thiếu dữ liệu cột ‘Tổng giá trị’
Tính sai dữ liệu cột ‘Tổng giá trị’
2. Làm sạch dữ liệu
- Dữ liệu thu thập thường có thể bị thiếu, sai lệch hoặc trùng lặp. Các bước làm sạch
dữ liệu gồm:
- Xử lý giá trị thiếu
Các giá trị còn thiếu trong Số lượng bán và Đơn giá được điền bằng trung bình của
cột.
- Chuẩn hóa định dạng dữ liệu
Ngày tháng được chuẩn hóa thành định dạng dd/mm/yyyy.
Số liệu dạng số được chuyển sang kiểu float/int để dễ phân tích.
- Kiểm tra bất thường
Giá trị âm ở Số lượng bán hoặc Tổng giá trị được xem xét và loại bỏ nếu không
hợp lý.
- Ví dụ:
- Hàng có Số lượng bán = -1 sẽ được kiểm tra xem có phải lỗi nhập liệu hay không.
Chuyển đổi cột 'Ngày' sang kiểu datetime
df['Ngày'] = pd.to_datetime(df['Ngày'], dayfirst=True, errors='coerce')
Xử lý các giá trị bị thiếu trong cột 'Số lượng bán' và 'Đơn giá'
df['Số lượng bán'] = pd.to_numeric(df['Số lượng bán'], errors='coerce').fillna( 0 ) df['Đơn giá'] = pd.to_numeric(df['Đơn giá'],errors='coerce').fillna( 0 )
Tính lại cột 'Tổng giá trị'
df['Tổng giá trị'] = df['Số lượng bán'] * df['Đơn giá']
Xóa các dòng bị lỗi hoặc có giá trị âm
df = df[df['Tổng giá trị'] >= 0 ]
3. Khám phá dữ liệu
- Thống kê mô tả: tính trung vị, trung bình, độ lệch chuẩn, giá trị tối đa, tối thiểu
- Phân phối dữ liệu: vẽ biểu đồ xem phân phối, kiểm tra sự chênh lệch giữa các
nhóm dữ liệu
- Sử dụng ma trận tương quan xem xét mối quan hệ giữa các biến số.
Doanh thu trung bình mỗi ngày
doanh_thu_trung_binh = df['Tổng giá trị'].mean()
Tổng doanh thu trong tháng
tong_doanh_thu = df['Tổng giá trị'].sum()
Số lượng bán trung bình của mỗi sản phẩm
so_luong_ban_tb = df.groupby('Sản phẩm')['Số lượng bán'].mean()
4. Xây dựng mô hình
- Biến đầu vào; ngày bán hàng, sản phẩm, số lượng bán,đơn giá, ngày trong tuần.
- Biến đầu ra: tổng doanh thu= số lượng bán*đơn giá
- Sử dụng mô hình hồi quy tuyến tính để dự đoán doanh thu dựa trên số lượng bán,
đơn giá và ngày trong tuần
5. Trực quan hóa dữ liệu
- Biểu đồ phân phối dữ liệu; Box plot để kiểm tra dữ liêu bị lệch
- Biểu đồ xu hướng: lineplot để hiển thị sự thay đổi biến theo thời gian
plt.ylabel('Doanh thu (VND)', fontsize= 12 ) plt.xticks(rotation= 45 ) plt.grid(True, linestyle='--', alpha=0.7) plt.tight_layout() plt.show()
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
# Chuyển dữ liệu thành DataFrame
df = pd.DataFrame(df)
# Tách biến độc lập (X) và phụ thuộc (y)
X = df["Số lượng bán"].values.reshape(-4, 1) #Cột ngoài cùng bên phải của bảng =
y = df["Tổng giá trị"].values
# Xây dựng mô hình hồi quy tuyến tính
model = LinearRegression()
model.fit(X, y)
# Dự đoán giá trị
y_pred = model.predict(X)
# Tính toán các hệ số hồi quy
beta_0 = model.intercept_ # Hệ số chặn
beta_1 = model.coef_[0] # Hệ số dốc
# Đánh giá mô hình
r2 = r2_score(y, y_pred) # Hệ số xác định R^
mse = mean_squared_error(y, y_pred) # Sai số bình phương trung bình (MSE)
# Hiển thị kết quả
print(f"Phương trình hồi quy: y = {beta_0:.2f} + {beta_1:.2f}x")
print(f"Hệ số chặn (beta_0): {beta_0}")
print(f"Hệ số dốc (beta_1): {beta_1}")
print(f"Hệ số xác định (R^2): {r2}")
print(f"Sai số bình phương trung bình (MSE): {mse}")
# Vẽ biểu đồ
plt.scatter(X, y, color="blue", label="Dữ liệu thực tế")
plt.plot(X, y_pred, color="red", label="Dự đoán (hồi quy)")
plt.title("Hồi quy tuyến tính: Số lượng bán và Tổng giá trị")
plt.xlabel("Số lượng bán")
plt.ylabel("Tổng giá trị")
plt.legend()
plt.grid(True)
plt.show()
6. KL và QD
- Mô hình hồi quy tuyến tính có mức độ phù hợp tương đối tốt khi sử dụng số lượng
bán để dự đoán tổng giá trị bán hàng , nhưng vẫn còn tồn tại sai số đáng kể. Điều này
cho thấy, số lượng bán có tác động đến tổng giá trị bán hàng nhưng không phải yếu
tố duy nhất ảnh hưởng đến tổng doanh thu.
- Mô hình cho thấy số lượng bán có xu hướng ảnh hưởng tích cực tới tổng giá trị bán
hàng. Nếu số lượng bán tăng thêm 10 đơn vị, tổng giá trị bán có thể tăng thêm xấp xỉ
X đơn vị (theo hệ số hồi quy). Mức tăng này có thể chấp nhận được vì đây không
phải là yếu tố duy nhất quyết định tổng doanh thu, mà còn phụ thuộc vào đơn giá,
chương trình khuyến mãi, mùa vụ, vị trí bán hàng, v.v.
- Dữ liệu số lượng bán ra có sự phân tán lớn, do cửa hàng không tập trung vào một
nhóm sản phẩm cụ thể, dẫn đến sự chênh lệch lớn giữa các loại hàng hóa (từ sản
phẩm có giá trị thấp đến sản phẩm cao cấp). Điều này có thể làm giảm tính chính xác
của mô hình nếu không có sự phân nhóm hợp lý.