El siguiente es un pequeño y divertido proyecto de data analytics que decidí hacer recientemente, principalmente como una forma de practicar SQL y hacer data analytics exploratorio (EDA).
En mis viajes por Internet, encontré Mode Analytics y vi que tenían una interfaz realmente agradable para escribir consultas SQL, así como una selección de conjuntos de datos para elegir (la interfaz se llama Mode Studio y estoy bastante seguro de que los datos se guardan en una base de datos PostgreSQL ).
Otra gran característica es que también puede integrar el data analytics de SQL con los portátiles Python . Soy un gran fanático de esto, ya que luchaba por encontrar otros recursos en línea donde pudiera acceder fácilmente a algunas bases de datos SQL gratuitas.
Tenía tres objetivos principales en mente al escribir este post:
- Practique mis habilidades de SQL e implemente un mini proyecto divertido
- Resuma el flujo de trabajo típico de un proyecto de data analytics exploratorio que se centra en la exploración de datos inicial. (al menos un flujo de trabajo típico para mí de todos modos).
- Proporcione un tutorial para aquellos que intentan aprender SQL o Python y demuestre que puede generar algunas ideas realmente poderosas e interesantes a partir de un poco de EDA y algunas preguntas relevantes.
Realmente disfruté analizando este conjunto de datos y descubrí que cuanto más lo exploraba, más preguntas tenía para mantener este post relativamente conciso y en el buen camino. voy a venir con 3 main temas / preguntas (a continuación) que quiero explorar y obtener algunas ideas.
Animo a todos los que sigan sus propias preguntas, ya que hay muchas más preguntas que las que discutimos aquí.
Conjunto de datos y preguntas iniciales
El conjunto de datos que veremos hoy es el Crunchbase conjunto de datos. Contiene información sobre financiamiento, adquisición e inversión en más de 40,000 empresas nuevas que se remontan a principios de 1900.
Usaré las versiones tutoriales de los conjuntos de datos y, por lo que puedo decir, son básicamente las mismas, excepto que la versión tutorial es un poco más corto que el original y algunas de las columnas se han limpiado, lo que es una buena noticia para nosotros, ya que no tenemos que perder tiempo limpiando los datos (sin embargo, este es un paso vital en cualquier data analytics y recomendaría sentirse cómodo) limpieza de diferentes tipos de datos).
La base de datos consta de tres tablas:
Los principales aspectos de los datos que quiero explorar son las tendencias en financiamiento, inversión y adquisiciones. Para ser un poco más explícito, voy a llegar a 3 preguntas generales para tratar de responder. Si lo hace, ayudará a enfocar nuestro data analytics exploratorio y aclarará nuestros objetivos finales.
- ¿Cuáles son las características clave de la financiación por parte de la industria y en todos los países?
- ¿Las adquisiciones tienden a hacerse dentro de la misma industria o entre industrias? es decir, ¿existe alguna evidencia de integración vertical u horizontal?
- ¿Existe alguna evidencia de burbujas de inversión?
Bien, hemos encontrado algunas preguntas. para explorar y en realidad hay bastante data analytics que podríamos hacer aquí. Inicialmente, consultaré la base de datos para responder algunas de estas preguntas y, por supuesto, para obtener los datos.
También usaré Python para hacer más data analytics exploratorio y visualizaciones. El modo hace que el cambio entre los dos sea bastante sencillo al convertir los resultados de nuestras consultas en objetos de Python y permitirnos acceder a ellos desde una instancia de notebook.
Para obtener una visión general de los datos, recomiendo revisar los enlaces de arriba para cada tabla.
Data analytics exploratorio (EDA)
Financiamiento
Simplemente voy a entrar directamente y averiguar si podemos responder nuestra primera pregunta Bueno, podemos dividirlo un poco, ya que hay varias partes en esta pregunta.
Veamos primero el monto promedio financiado, el financiamiento total y el número de compañías financiadas por la industria y limitemos los resultados a los 10 principales.
SELECT category_code, COUNT(*) AS number_of_companies, AVG (funding_total_usd ) AS avg_funding, SUM (funding_total_usd) AS total_funding FROM tutorial.crunchbase_companies WHERE funding_total_usd IS NOT NULL AND category_code IS NOT NULL 10;
Los resultados aquí son bastante interesantes, pero tal vez no sean tan inesperados, ya que las industrias que reciben la mayor financiación total parecen estar relacionadas con la tecnología, como biotecnología / software / comercio electrónico, etc.
También existe una correlación bastante estrecha entre industrias que aparecen en las 3 gráficas a continuación (las gráficas se realizaron utilizando mode studio btw).
Proporciono un enlace al final de esta publicación al informe completo que contiene gráficos interactivos para aquellos que desean echar un vistazo.
La mayor cantidad promedio de financiamiento parece estar en el sector de tecnología limpia, lo que es consistente con un impulso hacia la producción de tecnología que tiene menos impacto ambiental negativo. Aparentemente, este es un desarrollo muy positivo dado los estrictos objetivos de carbono que tienen muchos países.
¿Qué tipo de información obtenemos si examinamos? esto un poco mas cerca?
Bueno, si nos fijamos en la financiación con el tiempo llegamos a una conclusión diferente.
En la Figura 3 podemos ver que hubo un aumento significativo en la financiación total desde 2002 hasta 2006, alcanzando un máximo de alrededor de $ 8 mil millones. Después de 2006, sin embargo, hubo una fuerte reducción en la financiación en el sector.
Esto parece tener los distintivos de un auge y caída de la inversión o, en otras palabras, una burbuja. Después de hacer un poco de investigación, parece que hubo una serie de factores que podrían haber contribuido a este auge, incluidos los beneficios fiscales y las garantías de préstamos para la tecnología limpia en este período.
También hubo una serie de factores que podrían haber contribuido a la caída de la financiación en Cleantech en los años posteriores, como la caída de los precios del combustible y, por supuesto, la crisis financiera que comenzó en 2007/2008.
Esto proporcionó un incentivo financiero menor para destinar dinero a una tecnología más limpia y fuentes de combustible y también probablemente causó incertidumbre general de los inversionistas dado el clima económico prevaleciente.
Bueno, este es un buen comienzo para data analytics exploratorio y parece que va de alguna manera en la respuesta. ambas preguntas 1 y 3. Veamos qué otras ideas interesantes podemos extraer de los datos.
SELECT category_code, DATE_PART (& # 039; year & # 039 ;, first_funding_at :: DATE) AS year , SUM (total_funding_amt) AS sum_funding_amt FROM tutorial.crunchbase_companies WHERE category_code = & # 039; cleantech & # 039; AND first_funding_at IS NOT NULL GROUP BY 1,2 ORDER BY 2 ASC;
Ahora que hemos examinado una industria específica, ¿qué tal si recibimos un poco? más general y consulte a las empresas de todas las industrias que recibieron el mayor nivel de financiamiento acumulado a lo largo de los años y vea si reconocemos alguna de ellas.
Entonces, estoy seguro de que la mayoría de ustedes reconoce a estas empresas con empresas como Facebook, Groupon, Twitter, Verizon, etc. (Figura 4).
También podríamos ver en qué período de tiempo se financiaron las 10 principales empresas. ¿Se les dio una suma global una vez o se financiaron durante un período prolongado de tiempo? Podemos hacer esto simplemente restando la variable first_funded_at de la variable last_funded_a t para obtener la diferencia en días.
También podemos calcular la cantidad de rondas de financiamiento que cada uno recibió y usar esto para calcular el nivel promedio de financiamiento por ronda.
SELECT nombre, funding_total_usd, TO_DATE (first_funding_at, & # 039; DD / MM / YY & # 039;) AS first_month, TO_DATE (last_funding_at, & # 039; DD / MM / YY & # 039;) AS last_month, (TODATE) (last_funding_at, & # 039; DD / MM / YY & # 039;) - TO_DATE (first_funding_at, & # 039; DD / MM / YY & # 039;)) AS days_difference, funding_rounds, funding_total_usd / funding_round y funding_per_round
FROM tutorial.crunchbase_companies WHERE funding_total_usd IS NOT NULL ORDER BY 2 DESC LIMIT 10;
Podemos ver los resultados de esta consulta a continuación en la tabla 1.
Entonces, ¿qué hace esta tabla?
Parece que hubo 3 compañías, Sigmacare, Carestream y Terra-Gen Power que tuvieron una sola ronda de financiamiento.
El resto de las compañías en el top 10 parecían haber tenido múltiples rondas de financiamiento con un promedio de 5. Estas compañías también recibieron su financiamiento distribuido en varios años.
Aparte de las 3 compañías que pasaron por una sola ronda de financiamiento, el financiamiento promedio por ronda es de aproximadamente $ 567 millones, una cantidad asombrosa de dinero.
Esto se compara con un promedio de poco menos de $ 8 millones para el resto de las startups con más de una ronda de financiamiento (consulta a continuación).
con t1 como (SELECT funding_total_usd / funding_rounds AS funding_per_round
FROM tutorial.crunchbase_companies WHERE financiar fondos> 1) SELECT AVG (financiamiento_por_cerca) FROM t1;
También podemos trazar la distribución de los fondos que nos dará una buena visión general del monto de los fondos. Para fines de trazado, he eliminado una gran cantidad de inversiones, incluidas las cifras, para poder visualizar mejor el resto de los datos (código Python a continuación).
El promedio es de alrededor de $ 16 millones, mientras que la mediana es de $ 5 millones, lo que indica que todavía hay valores atípicos significativos dentro de esta muestra.
fund_dist = fund_dist [fund_dist['funding_total_usd'] <2.050000e + 08] plt.figure (figsize = (16, 6))
sns.distplot (fund_dist ['funding_total_usd']contenedores = 30)
Bien, ahora que tenemos una visión general bastante buena de los datos de financiamiento,
Veamos si hay ¿Una relación entre la cantidad de fondos que recibe una empresa y si todavía existen o no?
Vamos a echar un vistazo usando Python. En primer lugar, vamos a explorar el estado de las empresas.
El siguiente código obtiene los recuentos en bruto y el porcentaje de empresas en cada categoría. La gran mayoría de las empresas aún operan (82%), pero también hay un 8% que han cerrado durante el período.
Si observamos la tabla 3, podemos ver que el nivel promedio más alto de financiamiento lo generan las ofertas públicas iniciales (Oferta pública inicial en el mercado bursátil), lo cual es interesante dado que es la menos común de las categorías en la columna de estado.
conjuntos de datos [19659056] .value_counts () datasets [3]['status'] .value_counts (normalize = True)
datasets [3] .groupby (& # 039; status & # 039;) ['funding_total_usd'] .ag ['mean', 'sum'])
] Tabla 2: Categorías de estado
Dado que los fondos promedio más altos son recaudados por las OPI, echemos un vistazo rápido a las 10 principales OPI por fondos recaudados.
Hay algunas caras conocidas aquí de nuevo, como Verizon, Facebook y Tesla, todas las cuales generaron importantes cantidades de fondos de su OPI.
También calculé la financiación como una proporción del total generado por todas las OPI en el conjunto de datos y me sorprendió mucho ver que los dos primeros generaron el 16% del total. Obviamente, había mucho interés de los inversores en estas empresas en ese momento.
conjuntos de datos [3] [conjuntosdedatos[3]['status'] == & # 039; ipo & # 039;] [['name', 'category_code', 'funding_total_usd']]. Sort_values (by = & # 039 ; funding_total_usd & # 039 ;, ascendente = Falso) [:10]
Entonces, ¿qué podemos decir acerca de la diferencia en las compañías que aún operan y en las que ahora están cerradas?
Bueno, de la información anterior podemos decir que las compañías que ahora están cerradas recibieron menos fondos en promedio y menos fondos en total.
¿Entonces fue solo un problema de financiación?
Probablemente no. Es probable que haya muchas otras razones por las que estas compañías ya no operan.
Traté de encontrar alguna diferencia entre las características de las empresas operativas y cerradas, como la cantidad de rondas de financiamiento que recibieron y los países en los que operaban, pero realmente no encontraron ninguna diferencia.
Desafortunadamente, parece que no vamos a encontrar ninguna respuesta definitiva a esta pregunta en particular. Este es realmente un punto muy importante,
No siempre es posible encontrar las respuestas que desea con los datos que tiene. Esta es una de las razones por las que realizamos data analytics exploratorio, ya que nos permite averiguar a qué preguntas podemos esperar respuestas.
Realizar un data analytics exploratorio inicial de los datos es un paso muy importante para un proyecto analítico, ya que puede ayudar a formular objetivos realistas y también al analista a establecer y gestionar las expectativas para los resultados del proyecto.
Lo último que quiero ver en la tabla de financiamiento es la distribución del financiamiento total en los EE. UU. como sospecho que una gran proporción de ellos están en los Estados Unidos, particularmente en California.
Aquí es donde sobresale Python. He usado Plotly en un post anterior y esta es otra oportunidad perfecta para usarlo.
A continuación se muestra el código de Python para obtener los datos que necesitamos de nuestro objeto que se creó el modo y luego trazar una buena cloropleta interactiva (tuve que adjuntar un PNG ya que hay un límite de visualización en el nivel libre de Plotly).
import matplotlib .pyplot as plt
% matplotlib inline
de plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
importan plotly.pdf en este momento #no se pierda esta línea
de las herramientas de importación
comp_df = conjuntos de datos [3] # objeto creado por mode
temp_plot = comp_df [['funding_total_usd', 'country_code', 'state_code']]. dropna ()
grouped_data = temp_plot .groupby (& # 039; state_code & # 039;). sum (). reset_index ()
data = [dict( type = & # 039; choropleth & # 039;, locations = grouped_data [& # 039; state_code & # 039;] autocolorscale = True, z = grouped_data ['funding_total_usd'] locationmode = & # 039; USA-states & # 039;, marcador = dict ( línea = dict ( color = & # 039; rgb (255,255,255) & # 039;, width = 2 ) ), colorbar = dict ( title = & # 039; Millions USD & # 039; ) )] layout = dict ( title = & # 039; Financiamiento total para nuevas empresas en los Estados Unidos y # 039;, geo = dict ( scope = & # 039; usa & # 039;, projection = dict (type = & # 039; albers usa & # 039; ), showlakes = True, lakecolor = & # 039; rgb (255, 255, 255) & # 039;), ) fig = go.Figure (data = data, layout = diseño) py.offline.iplot (fig.)
Parece que mis sospechas eran correctas, el color rojo más intenso es el de California, lo que indica que los niveles más altos de financiamiento ocurrió allí principalmente debido a una alta densidad de empresas de tecnología en Silicon Valley.
También hay niveles sustanciales de financiamiento en otras áreas de los EE. UU., Como Nueva York, Massachusetts y Maryland. Quizás esto tampoco sea sorprendente, dadas las numerosas universidades y empresas de base tecnológica ubicadas en estos estados.
Ahora que hemos analizado los Estados Unidos,
¿por qué no echamos un vistazo rápido a la distribución global de fondos?
(Dejaré el código de Python aquí por brevedad, pero es muy similar al código anterior.)
Una vez más, la mayor parte del dinero se encuentra en los EE. UU. también hay altos niveles de financiamiento en China, India y el Reino Unido, aunque puede ser algo difícil de ver en el gráfico anterior (esto es más obvio en el informe interactivo que vinculo en la parte inferior).
Adquisiciones
Hemos dedicado bastante tiempo a analizar la tabla de empresas, pero
¿qué pasa con las otras tablas? ¿Cómo han sido las adquisiciones a lo largo de los años?
El objetivo principal de esta sección es observar los tipos de adquisiciones que se realizan, es decir, las adquisiciones que se realizan en todas las industrias o dentro de la misma industria.
Esto puede ayudarnos a tener una idea de los niveles de integración horizontal y vertical (estos son conceptos importantes en la economía de la competencia).
Podríamos comenzar observando algunas de las adquisiciones más grandes y ver si estaban en la misma industria o en industrias diferentes. Esto podría darnos una idea del nivel de concentración en cada industria.
Lo primero que podemos hacer es observar las tendencias generales en el número de adquisiciones a lo largo del tiempo y también examinar las adquisiciones más grandes en el conjunto de datos. Esto es relativamente sencillo de hacer en PostgreSQL.
La primera consulta es bastante sencilla y solo devuelve las 10 principales adquisiciones ordenadas por el precio. La segunda consulta devuelve el número de adquisiciones cada año, así como el número acumulado mediante una función de ventana.
SELECT name_company, company_category_code, adquiriónombre, acquirer_category_code, adquir_year, price_amount FROM tutorial.crunchbase_acquisitions WHERE price_amount IS NOT NULL ORDER BY por price_amount DESC LIMIT 10;
------------------ ------------------------------------------------ SELECT el adquir_year, AVG (quantity_price), COUNT (*), SUMA (COUNT (*)) OVER (ORDER BY adquir_year) AS total_count FROM tutorial.crunchbase_acquisitions WHERE priceamam IS NOT NULL AND adquir_year> 1995 GROUP BY POR 1 ORDER BY POR 1;
En cuanto a las 10 principales adquisiciones por precio total, parece que la mayoría de las adquisiciones son a través de industrias y no que dentro de la misma industria. Esto sugiere que no hay mucha integración horizontal, ya que las compañías que compran y compran tienden a estar en industrias separadas, al menos para las adquisiciones más grandes.
Curiosamente, parece que hay otras firmas de RP que están siendo adquiridas por otras compañías (Tabla 2).
¿Podría ser esto algo relacionado con la marca o las empresas que intentan mejorar su imagen?
También podemos ver que casi todas estas adquisiciones se han realizado en los últimos 10 años y casi todas las compañías han sido adquiridas por una compañía en una industria relacionada con la tecnología. Estas observaciones son bastante consistentes con lo que hemos visto hasta ahora.
La gráfica a continuación corresponde a la segunda consulta anterior y destaca la proliferación de adquisiciones a partir de la década de 2000. a 2014 (último año en el conjunto de datos).
Tomando todo esto en conjunto, está claro que ha habido una cantidad sustancial de actividad financiera en estas industrias.
En general, el crecimiento en el número de adquisiciones es bastante volátil con el tiempo, pero parece haber una tendencia general para un menor número de adquisiciones a partir de 2010 (aparte de 2013).
Curiosamente, aunque las cifras han disminuido, el tamaño de las adquisiciones en términos de costo promedio ha aumentado durante el mismo período. En otras palabras, ha habido una tendencia hacia adquisiciones más grandes en años más recientes.
Inversiones
En esta sección, deseo echar un breve vistazo a la tabla de inversiones .
Comencé por trazar la distribución de la cantidad recaudada para cada inversión para darnos una mejor idea de la difusión de los datos. La Figura 9 muestra un histograma del valor de inversión durante todo el período de tiempo. Podemos ver en la figura que la mayoría de las inversiones parecen estar en alrededor de $ 12 millones. También hay una serie de valores atípicos también.
Examinemos qué compañías recibieron inversiones muy grandes y veremos qué tipo de financiación fue alrededor. Los resultados revelan que casi todas las mayores inversiones fueron posteriores a la OPI. Esto presumiblemente significa que las inversiones fueron compras de acciones.
SELECT funding_round_type, raised_amount_usd FROM tutorial.crunchbase_investments WHERE funding_round_type IS NOT NULL ----------------------------------------
SELECT funding_round_type, COUNT (*) FROM tutorial.crunchbase_investments WHERE funding_round_type IS NOT NULL Y raised_amount_usd IS NOT NULL GROUP BY POR 1 ORDER BY 2 DESC;
- ————- —————————-
SELECT company_name, company_category_code, investor_name, investor_category_code,
funding_round_type, raised_amount_usd, funds_at
FROM tutorial.crunchbase_investments
WHERE raised_amount_usd IS NOT NULLREQUESTED BY 6 LIMITS OF DESC. 5;
¿Qué ocurre con el resto de la muestra? ¿Fueron financiados por capital, deuda o fue quizás inversionistas ángeles?
El recuento total de inversiones por tipo de rondas de financiamiento se representa en la Figura 10. El financiamiento de la Serie A parece ser el tipo más frecuente de financiamiento recibido por las compañías, seguido del capital de riesgo y la inversión ángel.
Como su nombre indica, la serie A es uno de los primeros tipos de financiamiento que puede recibir una empresa nueva. Después de esto usualmente vienen las rondas B y C.
El hecho de que la financiación de la serie A es probablemente más frecuente que las rondas subsiguientes, ya que muchas empresas de nueva creación no tienen éxito y, por lo tanto, no la convierten en la próxima ronda de financiación. Consulte aquí para obtener una explicación más detallada de los tipos de rondas de financiamiento.
con t1 AS (SELECT company_name, investor_name, funds_year, investor_category_code, company_category_code, SUM (raised_amount_usd) AS total_raised, rank () OVER (PARTITION BY investor_category_code ORDER BY SUM (jasp; guacheras_polloteagrupos) NULL AND investor_category_code IS NOT NULL GROUP BY 1, 2, 3, 4, 5 ORDER BY 5, 3 DESC) [1945902828] SELECT * FROM t1 WHERE clasifique <2 ORDER BY POR 6 DESC LIMIT 15;
La consulta anterior nos muestra la mayor inversión para cada industria y qué industria recibe la inversión. Solo hemos seleccionado las 15 inversiones principales para presentar los datos.
El top 15 está dominado por la industria móvil. Hay una gran afluencia de dinero que se dirige a la industria móvil, lo que plantea la pregunta:
¿esto va a una compañía o varias empresas y por qué el gran interés en este sector?
Tras un examen más detenido, parece que hay grandes inversiones en Clearwire en 2008, que es esencialmente lo que vimos en la Tabla 1. ¿Por qué todo el interés en Clearwire? Hubo varias compañías que invirtieron en Clearwire en 2008, entre ellas Sprint Nextel, Google, Intel y Comcast, entre otras, y parece que se utilizaron para lanzar la tecnología inalámbrica 4G.
Principales conclusiones
- No parece ser evidencia de integración horizontal particularmente con las mayores adquisiciones. Por lo tanto, no hay evidencia obvia de una falta de competencia. Por supuesto, esta no es la última palabra, ya que algunas industrias pueden estar ya concentradas. Esto sugiere que al menos no se ha concentrado más como resultado de las adquisiciones.
- Parece haber una tendencia general hacia adquisiciones más grandes que podrían ser indicativas de que las empresas aumentan el poder de monopolio .
- Encontramos alguna evidencia de burbujas de inversión específicamente en el sector de tecnología limpia. ¿Hay evidencia de otras burbujas? Lo dejaré para que lo encuentren.
- La mayor parte del dinero ha ingresado a los Estados Unidos, particularmente a California, que es realmente lo que hubiéramos esperado dada la proliferación de compañías tecnológicas en los últimos años en Silicon Valley .
- Los niveles más altos de financiación se han concentrado principalmente en industrias relacionadas con la tecnología como cleantech, biotech, mobile etc.
- Sin lugar a dudas, El tipo de financiamiento que genera la mayor cantidad de dinero es el IPO .
Gracias por leer a todos, espero que todos hayan encontrado esto interesante y hayan aprendido algo y nos vean en el próximo post. [19659012] Enlace para informar sobre Mode Analytics
fue publicado originalmente en [1945901212] [1945901212]] Hacia la ciencia de datos en Medium, donde las personas son continuas ng la conversación resaltando y respondiendo a esta historia.