
Ringkasan
-
Python dan analisis statistik dapat digunakan untuk mengeksplorasi hubungan linier antara waktu layar dan masa pakai baterai pada perangkat seluler.
-
Seaborn, Panda, dan Python dapat digunakan untuk merencanakan regresi, sementara pingouin akan membangun model.
-
Penggunaan baterai linier untuk ponsel dan tablet, menunjukkan nilai praktis analisis statistik di Python.
Baru -baru ini, saya ingin mengetahui bagaimana waktu layar telepon dan tablet mempengaruhi pembuangan baterai. Anda mungkin tidak berpikir untuk pergi ke Python untuk itu, tetapi alat statistik dasarnya sebenarnya dapat memberikan jawabannya.
Mungkin saya salah satu dari orang -orang yang tampaknya menderita karena masa pakai baterai, meskipun saya tidak berpikir saya benar -benar perlu. Saya selalu memiliki lebih dari cukup pada akhir hari dengan ponsel android saya dan tablet dan bekerja dari rumah, saya tidak pernah jauh dari outlet.
Tampak jelas bahwa memiliki layar mungkin lebih menggunakan baterai, tetapi saya ingin tahu tentang bagaimana keduanya sebenarnya terkait. Mungkinkah itu hubungan linier? Mungkinkah itu eksponensial, di mana penggunaan baterai berakselerasi dengan cepat?
Saya tertarik pada analisis data baru -baru ini. Saya mengambil kursus dalam statistik dasar dan probabilitas di perguruan tinggi, dan pertama -tama saya akan menemukan konsep regresi linier, di mana titik data diplot di sepanjang dua sumbu dan garis ditarik melalui mereka, di laboratorium fisika.
Ketika saya memperhatikan bahwa ponsel dan tablet saya menyimpan statistik pada waktu layar dan penggunaan baterai, saya ingat pengalaman saya sebelumnya. Kalkulator grafik TI yang saya gunakan di perguruan tinggi adalah – di tempat lain di rumah saya, tetapi saya tidak perlu kalkulator lagi karena saya memiliki ular piton. Saya memutuskan untuk menggunakan serangkaian alat komputasi statistik Python untuk mengetahui hubungan apa, jika ada, waktu layar dan masa pakai baterai.
Merumuskan hipotesis
Salah satu bagian dari statistik adalah pengujian hipotesis. Ini adalah kunci sains yang baik. Ini mungkin berlebihan untuk proyek kecil seperti ini, tetapi saya ingin menjadi ahli statistik dan ilmuwan yang baik, bahkan jika hanya untuk sementara waktu.
Dalam statistik, Anda membentuk hipotesis nol dan hipotesis alternatif, juga dikenal sebagai “H0” dan “H1.”
Hipotesis nol seharusnya menjadi sesuatu yang dapat Anda tolak dan memilih hipotesis alternatif jika bukti dalam bentuk tes statistik, menjamin menolaknya.
Dalam hal waktu layar dan masa pakai baterai. Sehubungan dengan masa pakai baterai untuk ponsel dan tablet saya:
Hipotesis nol (H0) |
Tidak ada hubungan antara waktu layar dan masa pakai baterai. |
Hipotesis Alternatif (H1) |
Ada hubungan antara waktu layar dan masa pakai baterai. |
Dengan hipotesis nol dan alternatif yang ditentukan, saya dapat melanjutkan dengan mengumpulkan dan menganalisis data saya.
Mendapatkan data saya ke Python
Langkah pertama adalah mengatur data saya. OS python yang dimodifikasi di ponsel Samsung saya dan tablet mengawasi penggunaan baterai dan waktu layar selama seminggu terakhir.
Saya dengan patuh membalikkan tablet dan telepon saya ke halaman diagnostik mereka dan menyalin data ke spreadsheet libreoffice calc, lalu saya menyimpannya sebagai file CSV.
Saya membuat kolom untuk waktu layar-on yang dilaporkan untuk ponsel dan tablet saya, dengan dua kolom masing-masing untuk kedua perangkat. Saya pikir cara termudah untuk mengkode waktu layar-on adalah dengan melipatgandakan jam dengan 60 dan menambahkan menit ke sana, memberikan jumlah total menit layar ponsel. ;
Saya menggunakan pustaka pandas Python untuk dibaca dalam data. PANDAS dapat membaca banyak format data, termasuk file CSV. PANDAS memudahkan untuk bekerja dengan data yang diatur dalam baris dan kolom, yang membuatnya mudah untuk membuat lompatan dari spreadsheet ke Python.
Saya membuka buku catatan Jupyter dan menjalankan beberapa perintah Python untuk mengatur lingkungan:
import numpy as np
import pandas as pd
import seaborn as sns
import pingouin as pg
%matplotlib inline

Terkait
Cara memulai membuat buku catatan interaktif di Jupyter
Campurkan teks dan kode secara bebas dalam program Anda dalam gaya pemrograman baru.
Perintah -perintah ini mengatur perpustakaan yang akan saya gunakan. Numpy berguna untuk semua jenis operasi numerik, termasuk statistik. Ini seperti selimut pengaman statistik, jadi saya selalu mengimpornya setiap kali saya bekerja dengan data. Pernyataan kedua jelas mengimpor panda, tetapi disingkat “PD” supaya saya tidak harus terus mengetik “panda.” Seeborn adalah alat yang fantastis untuk membuat plot statistik, dan itulah yang saya gunakan untuk membuat plot dan regresi saya. Pingouin (Prancis untuk “Penguin”) adalah perpustakaan yang melakukan tes statistik, dan itulah yang saya gunakan untuk membangun model saya dan melihat seberapa baik mereka dengan data saya.
Baris terakhir di blok itu adalah membuat plot apa pun muncul inline dalam buku catatan Jupyter. Kalau tidak, mereka akan muncul di jendela terpisah.
Dengan semua perpustakaan yang diperlukan dimuat, saya bisa membuat pandaframe panda dengan data saya:
battery = pd.read_csv("data/device_batteries.csv")
Saya bisa memeriksa kerangka data baru saya dengan fungsi kepala:
battery.head()
Ini menunjukkan beberapa baris data pertama dan memungkinkan saya melihat bagaimana itu diatur. Tentu saja, saya sudah tahu itu sejak saya membuatnya. Perintah ini bermanfaat untuk dataset apa pun yang saya unduh dari tempat -tempat seperti Kaggle.
Langkah selanjutnya adalah mendapatkan beberapa statistik deskriptif dari dataset saya. Metode dijelaskan dari DataFrame saya melakukan hal itu:
batteries.describe()
Ini mencetak statistik deskriptif dasar seperti hitungan, rata -rata, standar deviasi, nilai minimum dan maksimum, serta kuartil bawah atau persentil ke -25, median (persentil ke -50), dan kuartil atas atau persentil ke -75 untuk semua kolom numerik dalam buka data. Semua statistik ini membantu saya merasakan tanah.
Merencanakan regresi
Sekarang dengan data saya dimasukkan dan diimpor, sudah waktunya untuk mengeksplorasi hubungan.
Saya mulai dengan membuat plot sebaran dari waktu layar ponsel saya vs pembuangan baterai di poin persentase:
sns.relplot(x='phone_screen_on',y='phone_battery',data=battery)
Ini memberi tahu Seaborn untuk membuat plot menggunakan waktu layar sebagai sumbu x dan baterai mengalir sebagai sumbu y. Jika Anda melihat lebih dekat, titik data tampaknya menyelaraskan hampir garis lurus. Saya memutuskan untuk merencanakan regresi dan melihat seberapa baik garis yang cocok:
sns.regplot(x='phone_screen_on',y='phone_battery',data=battery)>
Garis pas.
Tetapi bagaimana saya bisa memverifikasi kecocokan dan bagaimana saya bisa merekonstruksi persamaan yang digunakan untuk menghasilkan garis? Di situlah Pingouin masuk. Beberapa perpustakaan lain memungkinkan Anda melakukan tes statistik dan melakukan regresi tetapi Pingouin adalah favorit saya karena saya merasa paling mudah digunakan.
Saya menggunakan fungsi regresi linier Pingouin pada waktu layar vs. drain baterai:
pg.linear_regression(battery['phone_screen_on'],battery['phone_battery'])
Pingouin menghasilkan meja. Inilah artinya. Angka yang sangat penting ada di sisi kiri. Jika Anda ingat aljabar Anda, persamaan garis lurus adalah y = mx + b. Dengan regresi linier, kami membalikkan ini sedikit untuk membuat “persamaan normal” y = b + mx, atau lebih tepatnya y = a + bx. -Intersepsi-y, atau di mana garis melintasi sumbu y, adalah A, berlabel “intersep” adalah 5.339232, dan koefisien X atau waktu layar-on, adalah 0.201630, yang menentukan kemiringan atau curian garis. Jadi persamaan model kami adalah y = 5.339232 + 0.201630x.
Angka -angka lainnya memberi tahu kami seberapa baik garis ini. “SE” adalah singkatan dari “Standard Error” dan mengukur seberapa jauh garis dari titik data. Semakin rendah kesalahan standar, semakin baik kecocokan. Untuk waktu layar, nilainya sekitar 0,20, yang berarti garis cocok untuk titik data. Skor T adalah t-statistik dari langkah-langkah t-test siswa menguji hipotesis bahwa koefisien korelasi, yang disebutkan di bawah ini, adalah 0, yang berarti tidak ada korelasi. Nilai lebih dari 2 atau kurang dari -2 berarti hasilnya signifikan secara statistik. Nilai-p adalah probabilitas bahwa statistik sampel, dalam hal ini nilai-T, akan sama ekstremnya atau lebih ekstrem jika hipotesis nol itu benar. Sebagian besar ahli statistik menggunakan ambang batas tertentu, biasanya dengan maksimum 0,05, untuk menerima atau menolak hipotesis nol. Karena T-statistik lebih besar dari 2 dan p-value kurang dari 0,05, kita dapat menolak hipotesis nol bahwa tidak ada hubungan antara waktu layar dan pembuangan baterai pada tingkat signifikansi .05 dan 0,01.
“R2” dan “R2_Adusted” adalah kotak dari koefisien korelasi. Nilai tinggi di sini juga berarti garis sangat cocok. Beberapa kolom terakhir adalah interval kepercayaan, yang mewakili area di mana nilai -nilai persamaan dapat mendarat pada tingkat kepercayaan 2,7% dan 97,5%. Area teduh di plot regresi juga mewakili interval kepercayaan.
Sekarang kami memiliki model, kami dapat mencolokkan nilai ke variabel waktu layar untuk memprediksi berapa banyak baterai akan mengalir.
Saya dapat mendefinisikan fungsi python untuk ini:
def phone_battery_usage(minutes):
    return 5.339232 + 0.201630 * minutes
Untuk menghitung penggunaan selama tiga jam atau 180 menit:
phone_battery_usage(180)
Mari kita lakukan hal yang sama untuk tablet saya. Pertama plot pencar:
sns.relplot(x='tablet_screen_on',y='tablet_battery',data=battery)
Sekali lagi, tampaknya ada korelasi linier. Mari kita plot regresi:
sns.regplot(x='tablet_screen_on',y='tablet_battery',data=battery)
Cocok lagi. Mari kita coba regresi linier pingouin:
pg.linear_regression(battery['tablet_screen_on'],battery['tablet_battery'])
Model ini adalah penggunaan baterai = 5.017013 + 0.112511 (waktu layar). Ini cocok, dengan t = 6.202436, p = 0,001591, dan r² = 0,884979.
Apa yang saya pelajari dari proyek sains kecil saya
Satu hal yang mengejutkan saya adalah bagaimana hubungan linier bertahan di dunia nyata. Penggunaan baterai linier untuk ponsel dan tablet saya. Ini mungkin berbaris dengan beberapa penelitian yang saya lakukan pada pembuangan baterai baterai lithium-ion, di mana mereka mengalir lebih cepat ketika Anda mulai menggunakannya dan menjelang akhir muatan, tetapi kurva pelepasan tetap linier di antaranya, menurut baterai Ufine. Proyek ini membuktikan nilai analisis statistik.
Ini menawarkan cara yang lebih ketat untuk menjawab pertanyaan, tetapi dengan perangkat lunak modern seperti Python, SeaBorn, dan Pingouin, lebih mudah dari sebelumnya bagi para peneliti dan orang -orang biasa seperti saya untuk dijelajahi.