Strengthen your programming skills with tips and techniques from the experts
As you begin managing your SAS code and projects in Git, here are a few guidelines for how to organize your work and collaborate with others.
Strengthen your programming skills with tips and techniques from the experts
As you begin managing your SAS code and projects in Git, here are a few guidelines for how to organize your work and collaborate with others.
If you're a SAS Enterprise Guide user who is looking to move to SAS Studio, there is a lot to like about your new coding environment.
Intuitively, the skewness of a unimodal distribution indicates whether a distribution is symmetric or not. If the right tail has more mass than the left tail, the distribution is "right skewed." If the left tail has more mass, the distribution is "left skewed." Thus, estimating skewness requires some estimates about
지난 딥러닝 시리즈에서는 SAS Visual Data Mining and Machine Learning을 활용한 딥 러닝 모델 생성에 대한 내용 중 <기본 심층 신경망(DNN) 모델 아키텍처와 배치 정규화를 사용한 DNN 모델 구축>에 대해 소개해 드렸습니다. 이번 시리즈에서는 딥 러닝 성능을 개선할 수 있는 하이퍼파라미터를 조정에 대해 소개해 드립니다. 일정 기간에 걸쳐 성능이 향상되고
SAS' Leonid Batkhan explains the data cleansing task of removing unwanted repeated characters in SAS character variables.
The expected value of a random variable is essentially a weighted mean over all possible values. You can compute it by summing (or integrating) a probability-weighted quantity over all possible values of the random variable. The expected value is a measure of the "center" of a probability distribution. You can
When there are two equivalent ways to do something, I advocate choosing the one that is simpler and more efficient. Sometimes, I encounter a SAS program that simulates random numbers in a way that is neither simple nor efficient. This article demonstrates two improvements that you can make to your
A user commented on one of my previous maps ... "How can there be 820 cases of Coronavirus per 100,000 people? - There aren't even 100,000 people in my county!" Well, when you want to compare something like the number of COVID-19 cases between two areas that have differing populations,
When it comes to plotting mortgage rate data, I often look to Len Kiefer for inspiration. He recently posted a retro-looking graph on twitter that caught my eye ... and of course I had to see if I could create something similar using SAS. For lack of a better term,
A fundamental principle of data analysis is that a statistic is an estimate of a parameter for the population. A statistic is calculated from a random sample. This leads to uncertainty in the estimate: a different random sample would have produced a different statistic. To quantify the uncertainty, SAS procedures
딥 러닝은 인공 지능과 함께 유비쿼터스가 된 머신 러닝의 한 영역입니다. 딥 러닝 모델의 복잡하고 뇌와 유사한 구조는 대량의 데이터에서 복잡한 패턴을 찾는 데 사용됩니다. 이러한 모델은 일반 지도 학습 모델, 시계열, 음성 인식, 객체 탐지 및 분류, 감성 분석의 성능을 크게 향상시켰습니다. 사전 정의된 방정식을 실행하도록 데이터를 구성하는 대신
The triangulation theorem for polygons says that every simple polygon can be triangulated. In fact, if the polygon has V vertices, you can decompose it into V-2 non-overlapping triangles. In this article, a "polygon" always means a simple polygon. Also, a "random point" means one that is drawn at random
Here in the United States, we have our general election (where we elect the president) every four years - and 2020 happens to be one of those election years. This time we seem to have a lot more people voting early. I can't tell you the reason they're voting early
When you use SAS software, you might occasionally encounter an issue with SASUSER. This post helps you debug some of the more common issues: a warning message indicates that SASUSER.TEMPLAT is not an item store or that you cannot write to SASUSER.TEMPLAT a note in the log indicates that SAS
How can you efficiently generate N random uniform points in a triangular region of the plane? There is a very cool algorithm (which I call the reflection method) that makes the process easy. I no longer remember where I saw this algorithm, but it is different from the "weighted average"
A evolução do analytics e da ciência de dados gera constantes atualizações e transformações nas plataformas de análises. Este artigo tem o propósito de apresentar como o SAS tem acompanhado essa evolução. Ambiente Integrado: uma única plataforma, diversas tarefas O SAS oferece recursos que permitem acessar, explorar, transformar, analisar e
Now that we are many months into the COVID-19 pandemic, we can start to reexamine the data and look for trends. This time, I want to explore how COVID-19 has been spreading around the US. I do this by animating a county map over time. What is animation? Are you
SAS' Leonid Batkhan summarizes a lesser known but useful feature in SAS that allows you to bring Microsoft Excel functions into your SAS programs.
A previous article shows how to use a recursive formula to compute exact probabilities for the Poisson-binomial distribution. The recursive formula is an O(N2) computation, where N is the number of parameters for the Poisson-binomial (PB) distribution. If you have a distribution that has hundreds (or even thousands) of parameters,
When an election is on the horizon, I always feel compelled to plot some data! And this time I'm plotting North Carolina's voter registration data! State Data For this graph, I downloaded several of the data snapshots from the NC State Board of Elections' website, and plotted a line showing
The model management process, which is part of ModelOps, consists of registration, deployment, monitoring and retraining. This post is part of a series examining the model management process, orchestrated through the Model Manager (MM) APIs. The focus of part one is on model registration, specifically on using the APIs from
前回のブログでは、Microsoft AzureストレージサービスのブロックBlobストレージについて軽く紹介し、SASからBlobストレージ中の特定の一つのファイルにアクセスする方法を紹介しました。 第1回リンク:https://blogs.sas.com/content/sasjapan/2020/10/01/sas-azure-blob-1/ しかし、実際のビジネスシーンでは、特定の一つのファイルにだけアクセスする運用はやはり割合的には少ないと考えています。 そこで、今回のブログでは、より効率的に、複数データに同時にアクセスできる方法を紹介します。そしてこれは、Microsoft AzureのBlobストレージをファイルシステムとしてSASサーバにマウントし、SASサーバから便利にアクセスする方法です。 前回と同じように、下記の方法を使うためには、前提条件として、SAS ViyaサーバとBlobストレージがあるAzure間でネットワーク通信ができる必要がありますので、ネットワークセキュリティ条件を確認してから、下記の方法をお試しください。 方法②: BlobストレージをファイルシステムとしてSASサーバにマウントし、SASサーバからアクセスする方法。 Microsoft Azure側: 1.まず、Azureポータルに入り、「ストレージアカウント」をクリックします。(図2-1) 図2-1 2.その配下で、使用されている対象Blob用のストレージアカウントをクリックします。(図2-2) 図2-2 3.そして、表示された左ペインの中で、「アクセスキー」というメニューをクリックします。(図2-3) 図2-3 4.該当ページでは、このストレージアカウントにアクセスするためのキーの情報が含まれているので、その中の、「ストレージアカウント名」と「キー」をメモしてください。あとで接続設定情報を作る時に使用します。(図2-4) 図2-4 5.一層上に戻り、同じくストレージアカウントの左ペインで、Blobサービスの中の「コンテナー」をクリックします。(図2-5)アクセス先のコンテナー名前(例:folderfirst)をメモしてください。あとで接続設定情報を作る時に使用します。 図2-5 以上で、Azure側の準備作業が終わります。次は、SASサーバ側の準備作業を進めていきます。 SAS Viyaサーバ側: 今回、Blobストレージをファイルシステムとしてマウントするには、Blobfuseという仮想ファイルシステムドライバー機能を使います。そのため、事前にSAS ViyaがインストールされているLinuxサーバ側に、そのツールをインストールする必要があります。 このブログで使用しているSAS ViyaサーバはRHEL/CentOS 7.x系のLinuxサーバであるため、Blobfuseのインストールを含めた手順は下記となります。 6.使用するSASユーザで、SASサーバ側にMicrosoftパッケージリポジトリをインストールします。 sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm 7.BlobfuseをSASサーバ側にインストールします。 sudo yum install blobfuse 8.Azureでは、低いレイテンシーとパフォーマンスのため、SSDが提供され、今回はそれを使って、ディレクトリーを作成します。(SSD使わないことも可能ですので、その場合、別ディレクトリーで作成して頂いてかまいません。) sudo mkdir /mnt/resource/blobfusetmp -p sudo chown #YourUserName#:sas /mnt/resource/blobfusetmp
Finite-precision computations can be tricky. You might know, mathematically, that a certain result must be non-negative or must be within a certain interval. However, when you actually compute that result on a computer that uses finite-precision, you might observe that the value is slightly negative or slightly outside of the
If you're a SAS programmer who now uses SAS Viya and CAS, it's worth your time to optimize your existing programs to take advantage of the new environment. This post is a continuation of my SAS Global Forum 2020 paper Best Practices for Converting SAS® Code to Leverage SAS® Cloud
近年、クラウドベンダーが提供するサービスが充実し、より多くのクラウドサービスが誕生してきました。しかし、一つのニーズに対して、複数のサービスを選択できるようになってきているものの、どのサービスが最適なのかを判断することは逆に難しくなってきていると考えられます。最近、SASを活用しているお客様から、「Microsoft社のAzureを使っていますが、これからクラウドにデータを移行して、安くて使い勝手なストレージサービスは何かありませんか」と聞かれたこともありました。 このブログシリーズでは、クラウド上のストレージサービスの一種であるMicrosoft Azure CloudのBlobストレージサービスの概要を紹介した上で、SAS ViyaからそのBlock Blobストレージに格納されているデータへアクセスする方法をご紹介させていただきます。 このブログシリーズは合計2回です。今回のブログでは、まず特定の一つファイルへのアクセス方法をご紹介します。次回のブログでは、より汎用的なアクセス方法、つまり、Blobストレージを一つのファイルシステムとして、SASサーバと連携し、一度に複数のデータにアクセスする方法をご紹介します。ぜひ最後まで、お付き合いいただければと思います。 第1回:https://blogs.sas.com/content/sasjapan/2020/10/01/sas-azure-blob-1/ 第2回:https://blogs.sas.com/content/sasjapan/2020/10/05/sas-azure-blob-2/ Blobストレージとは何か? まず、Blobストレージとは何かを紹介する前に、Blobって何でしょうか、から始めます。聞きなれない方もいらっしゃるかと思いますので。実際、BlobはBinary Large OBjectの略称です。本来はデータベースで用いられているデータタイプの種類で、メディアファイルや、圧縮ファイル、実行ファイルなどのデータを格納する時に使用されているものです。 では、Blobストレージとは何か?Microsoft社の紹介では、こう書かれています。 「Blob Storage は、テキスト・データやバイナリ・データなどの大量の非構造化データを格納するために最適化されています。非構造化データとは、特定のデータ・モデルや定義に従っていないデータであり、テキスト・データやバイナリ・データなどがあります。」 少し言い換えますと、Blobストレージは、ログファイルから、画像ファイルやビデオ・オーディオファイルまで格納できます。もちろん、通常目的でのデータ利用にも対応しているため、データの格納場所として使っても問題ありません。(Microsoft Azureの資料によりますと、4.75 TiBまで可能です。) なぜBlobストレージなのか 前文で少し申し上げたSASのお客様から頂いた質問の中で、「安くて使い勝手の良いストレージサービスは」と聞かれた事に関して、安いというポイントに関しては、下記の図をご覧ください。 ソース:https://azure.microsoft.com/ja-jp/pricing/details/storage/(2020/09/09アクセス時点) ご覧のように、ブロックBlobのストレージサービスは、安価で、かつ非構造化データに対応し、一般目的でのデータストレージとして、非常に向いています。 もちろん、ビジネスケースによっては、様々考慮すべき点(既存環境にHadoop環境があるかどうか、スループット、ビッグデータ等々)もありますが、今回は、主にこのブロックBlobストレージを例として紹介します。 SAS ViyaからBlobストレージにアクセスする方法 ここからは、SAS ViyaからBlobストレージにアクセスする方法をご紹介します。下記の方法を使うために、前提条件として、SAS ViyaサーバとBlobストレージがあるAzure間でネットワーク通信ができる必要がありますので、ネットワークセキュリティ条件を確認してから、下記の方法をお試しください。 方法①: SASのPROC HTTPプロシージャを使って、Blobストレージ内の特定の一つのデータにアクセスする方法。 Microsoft Azure側: 1.まず、Azureポータルに入り、「すべてのリソース」をクリックします。(図1-1) 図1-1 2.その配下で、利用されているストレージアカウントをクリックします。(図1-2) 図1-2 3.次に、表示された左側のメニューの中で、「Blob Service」配下のコンテナーをクリックします。(図1-3) 図1-3 *豆知識: ここで、いきなりコンテナーが出てくることに関して、混乱している方もいらっしゃるかもしれないので、少し解説します。こちらのコンテナーとは、Dockerコンテナーの意味ではありません。Blobストレージサービス配下のデータ格納用のサブ階層のことであり、フォルダーのようなものとイメージしてください。(図1-4) 図1-4 4.上記図1-3のように、その中に一つ「folderfirst」というコンテナーが存在しており、それをクリックすると、中に保管されているデータが見えるようになります。(図1-5) 図1-5 5.ここからが重要なポイントです。特定のデータ、例えば、「sas7bdat」データにSAS Viyaからアクセスしたい場合は、該当ファイルの名前をクリックして、下記のようなプロパティ情報を表示させます。(図1-6) 図1-6
When working with a probability distribution, it is useful to know how to compute four essential quantities: a random sample, the density function, the cumulative distribution function (CDF), and quantiles. I recently discussed the Poisson-binomial distribution and showed how to generate a random sample. This article shows how to compute
Now that we are many months into the COVID-19 pandemic, I've started going back and reexamining the data for lessons or trends (you might say hindsight is 20/20). This time, I want to explore how COVID-19 has been spreading around the US. I do this by using a graphical idea
The Poisson-binomial distribution is a generalization of the binomial distribution. For the binomial distribution, you carry out N independent and identical Bernoulli trials. Each trial has a probability, p, of success. The total number of successes, which can be between 0 and N, is a binomial random variable. The distribution
Welcome back to my series on securely integrating custom applications into your SAS Viya platform. My goal today is to lay out some examples of the concepts I introduced in the previous posts. As a quick recap: In the first installment of this series I shared my experiences on a
When you get something new, the hope is that it will be better than the old thing it's replacing. As I often do, I asked my Facebook friends to provide a random picture for my blog - in this case, a picture of one of their new/recent purchases. My friend